SQL Syntax error | Iemand een idee wat er niet klopt?
Kunnen jullie mij misschien helpen om te zoeken naar een oplossing voor mijn probleem.
Momenteel ben een klein admin panel aan het maken voor een site.
enkel nu heb ik het probleem dat ik een Syntax error krijg als ik een sql query uitvoer. het gaat om deze regel
zoals je ziet word er een via een Post formulier gewerkt op een andere pagina.
enkel bij deze regel krijg ik de fout:
Code (php)
1
Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELETE FROM Register WHERE Registratie=' at line 4
Op de server waar de website staat draai MySQL versie 5.1.66
ik hoop dat ik voldoende informatie heb gegeven.
mvg,
Probeer het eens correct te doen door te 'escapen'.
Google dat woord eens ;)
Hier onder staat de code van de pagina waar de Post formulier staat.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
include '../connect.php' ;
$query = "SELECT Registratie FROM Register";
$result = mysql_query($query);
?>
<form id="form1" name="Update" method="post" action="dereg_ac.php">
<select name="select1" style="width: 200px;">
<?php
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
?>
<option value="<?php echo $line['Registratie'];?>"> <?php echo $line['Registratie'];?> </option>
<?php
}
?>
</select>
<input name="" type="submit" value="send" />
</form>
include '../connect.php' ;
$query = "SELECT Registratie FROM Register";
$result = mysql_query($query);
?>
<form id="form1" name="Update" method="post" action="dereg_ac.php">
<select name="select1" style="width: 200px;">
<?php
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
?>
<option value="<?php echo $line['Registratie'];?>"> <?php echo $line['Registratie'];?> </option>
<?php
}
?>
</select>
<input name="" type="submit" value="send" />
</form>
Zoals je ziet haalt het formulier gegevens uit mijn MySQL database en weergeeft het op de pagina.
Daarbij kan je via een dropdownmenu menu een keuze maken uit een lijst van registratie's zoals "PH-MICHEL"
Als dit gedaan is druk ik op send en dan word het formulier door gegeven aan de "uitvoer pagina" waar de error vandaan komt
Gewijzigd op 13/01/2013 18:52:35 door Michel Rakhorst
Laat die complete DELETE regel eens zien.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?
include '../connect.php' ;
$sql="INSERT INTO Uitgeschreven (Registratie, Houder, Type, Serienummer, Bouwjaar, Bvlv, ICAOCode, ICAOType)
SELECT (Registratie, Houder, Type, Serienummer, Bouwjaar, Bvlv, ICAOCode, ICAOType)
FROM Register WHERE Registratie <'$_POST[select1]'>
DELETE FROM Register WHERE Registratie '".$_POST['select1']."'";
if (!mysql_query($sql))
{
die ('Error: ' . mysql_error());
}
echo "Record added";
mysql_close()
?>
include '../connect.php' ;
$sql="INSERT INTO Uitgeschreven (Registratie, Houder, Type, Serienummer, Bouwjaar, Bvlv, ICAOCode, ICAOType)
SELECT (Registratie, Houder, Type, Serienummer, Bouwjaar, Bvlv, ICAOCode, ICAOType)
FROM Register WHERE Registratie <'$_POST[select1]'>
DELETE FROM Register WHERE Registratie '".$_POST['select1']."'";
if (!mysql_query($sql))
{
die ('Error: ' . mysql_error());
}
echo "Record added";
mysql_close()
?>
There you go.... Je kan niet twee queries uitvoeren in 1 keer. In elk geval niet op die manier. De insert en delete zal je los moeten doen.
Is er dan een andere manier hiervoor om toch het hele proces in 1 keer te laten draaien ?
Ik ben niet zo'an held in PHP maar d.m.v. op internet te zoeken zoals op dit forum kom ik toch verder.
Ja:=dat je de logica kunt verplaatsen naar je dataabase dmv een trigger;
Nee:=je kumt dat beter op phpniveau afvangen