login  Naam:   Wachtwoord: 
Registreer je!
 Forum

syntax fout

Offline eric - 15/06/2005 19:51
Avatar van ericHTML interesse ik heb een hele vreemde fout, het script hieronder werkt op mn ene host wel en bij de andere server van dezelfde host niet daar zegt die dit: 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 '' at line 1
  1. <?php
  2. if(isset($_GET['id'])){
  3. $id = $_GET["id"];
  4.  
  5. $query="SELECT * FROM nieuws WHERE id = '$id'";
  6.  
  7. $result = mysql_query($query) or die (mysql_error());
  8.  
  9. $show = mysql_fetch_object($result);
  10. echo "<table border='1' bordercolor='#000000' cellspacing='0' style='border-collapse: collapse;' cellspacing='0' width='90%'>\n";
  11. echo " <tr>\n";
  12. echo " <td colspan='2'><b>$show->titel</b></td>\n";
  13. echo " </tr>\n";
  14. echo " <tr>\n";
  15. echo " <td colspan='2'>".nl2br($show->bericht)."</td>\n";
  16. echo " </tr>\n";
  17. echo " <tr>\n";
  18. echo " <td width='250'><a href='javascript:history.back()'>Terug</a></td>\n";
  19. echo " <td width='250' align='left'>Gepost op: $show->datum</td>\n";
  20. echo " </tr>\n";
  21. echo "</table>\n<br>\n";
  22.  
  23. if (isset($_POST['submit'])) {
  24. $nid = $_POST["nid"];
  25. $naam = $_POST["naam"];
  26. $email = $_POST["email"];
  27. $reactie = $_POST["reactie"];
  28.  
  29. if ($naam=="")
  30. { $error=$error."<table cellspacing='0' width='90%'><tr><td align='center'><span style='color:red'><font>Je hebt geen <b>naam</b> ingevuld!</font></span></td></tr></table>\n"; }
  31. if ($email=="")
  32. { $error=$error."<table cellspacing='0' width='90%'><tr><td align='center'><span style='color:red'><font>Je hebt geen <b>email</b> ingevuld!</font></span></td></tr></table>\n"; }
  33. if ($reactie=="")
  34. { $error=$error."<table cellspacing='0' width='90%'><tr><td align='center'><span style='color:red'><font>Je hebt geen <b>reactie</b> ingevuld!</font></span></td></tr></table>\n"; }
  35.  
  36. if ($error) {
  37. ?>
  38.  
  39. <table border='1' bordercolor='#000000' cellspacing='0' style='border-collapse: collapse;' cellpadding='0' cellspacing='0' width='90%'>
  40. <tr>
  41. <td>Reageer</td>
  42. </tr>
  43. <tr>
  44. <td><?php echo $error; ?></td>
  45. </tr>
  46. </table>
  47.  
  48. <?php
  49. }else {
  50. $query="INSERT INTO nieuwsreacties (nid, naam, email, reactie) VALUES ('$nid', '$naam', '$email', '$reactie');";
  51. mysql_query($query) or die(mysql_error());
  52. ?>
  53.  
  54. <table border='1' bordercolor='#000000' cellspacing='0' style='border-collapse: collapse;' cellpadding='0' cellspacing='0' width='90%'>
  55. <tr>
  56. <td>Reageer</td>
  57. </tr>
  58. <tr>
  59. <td align='center'>Reactie is succesvol toegevoegd!<br><a href='<?php echo $_SERVER["REQUEST_URI"]; ?>'>Klik hier</a> om naar het nieuwsbericht te gaan.</td>
  60. </tr>
  61. </table>
  62.  
  63. <?php
  64. }
  65. }else {
  66. $query="SELECT * FROM nieuwsreacties WHERE nid = '$id'";
  67.  
  68. $result = mysql_query($query) or die (mysql_error());
  69.  
  70. while ($show = mysql_fetch_object($result)) {
  71. echo "<table border='1' bordercolor='#000000' cellspacing='0' style='border-collapse: collapse;' cellpadding='0' cellspacing='0' width='90%'>\n";
  72. echo " <tr>\n";
  73. echo " <td>Door: <a href='mailto:$show->email'>$show->naam</a></td>\n";
  74. echo " </tr>\n";
  75. echo " <tr>\n";
  76. echo " <td>$show->reactie</td>\n";
  77. echo " </tr>\n";
  78. echo "</table>\n<br>\n";
  79. }
  80. echo "<form action='' method='post'>\n";
  81. echo "<table border='1' bordercolor='#000000' cellspacing='0' style='border-collapse: collapse;' cellpadding='0' cellspacing='0' width='90%'>\n";
  82. echo " <tr>\n";
  83. echo " <td>Reageer</td>\n";
  84. echo " </tr>\n";
  85. echo " <tr>\n";
  86. echo " <td>\n";
  87. echo " <table border='0' cellpadding='0' cellspacing='0' width='100%'>\n";
  88. echo " <tr>\n";
  89. echo " <td width='250'>Naam:</td>\n";
  90. echo " <td width='250'><input type='text' name='naam' size='31'></td>\n";
  91. echo " </tr>\n";
  92. echo " <tr>\n";
  93. echo " <td width='250'>Email:</td>\n";
  94. echo " <td width='250'><input type='text' name='email' size='31'></td>\n";
  95. echo " </tr>\n";
  96. echo " <tr>\n";
  97. echo " <td width='250' valign='top'>Reactie:</td>\n";
  98. echo " <td width='250'><textarea name='reactie' rows='4' cols='25'></textarea></td>\n";
  99. echo " </tr>\n";
  100. echo " </table>\n";
  101. echo " <center><input type='hidden' value='$id' name='nid'><input type='submit' value='Reageer' name='submit'>&nbsp;<input type='reset' value='Leegmaken' name='reset'></center>\n";
  102. echo " </td>\n";
  103. echo " </tr>\n";
  104. echo "</table>\n";
  105. echo "</form>\n";
  106. }
  107. }else {
  108. $query = "SELECT * FROM nieuws ORDER BY id DESC LIMIT 0," . $limit . "";
  109.  
  110. $result = mysql_query($query) or die (mysql_error());
  111.  
  112. while ($show = mysql_fetch_object($result)) {
  113. echo "<table border='1' bordercolor='#000000' style='border-collapse: collapse;' cellspacing='0' width='90%'>\n";
  114. echo " <tr>\n";
  115. echo " <td colspan='2'><b>$show->titel</b></td>\n";
  116. echo " </tr>\n";
  117. echo " <tr>\n";
  118. echo " <td colspan='2'>";
  119. $langbericht = $show->bericht;
  120. $maxlengte = 250;
  121. if (strlen($langbericht) > $maxlengte) {
  122. $afgekortbericht = substr($langbericht,0,247)."...";
  123. } else {
  124. $afgekortbericht = $langbericht;
  125. }
  126. echo nl2br($afgekortbericht);
  127. echo "</td>\n";
  128. echo " </tr>\n";
  129. echo " <tr>\n";
  130. echo " <td width='250'><a href='?id=$show->id'>Lees verder</a></td>\n";
  131. echo " <td width='250' align='left'>Gepost op: $show->datum</td>\n";
  132. echo " </tr>\n";
  133. echo "</table>\n<br>\n";
  134. }
  135. }
  136. ?>

11 antwoorden

Gesponsorde links
Offline nathanael - 15/06/2005 19:59 (laatste wijziging 15/06/2005 19:59)
Avatar van nathanael Gouden medaille

HTML gevorderde
ik kan zo ff niet de vaud vinden, maar ff iets anders...

op lijn 54 staat 2x cellspacing='0'
Offline Fenrir - 15/06/2005 20:17
Avatar van Fenrir PHP expert Ergens wordt een variabele niet goed in de query gezet. Dus controleer of alle variabelen kloppen die je in query's zet:

  1. $query="INSERT INTO nieuwsreacties (nid, naam, email, reactie) VALUES ('$nid', '$naam', '$email', '$reactie');";


Hebben deze variabelen ($nid, $naam, $email, $reactie) wel goede waarden?
Offline Tuinstoel - 15/06/2005 20:17
Avatar van Tuinstoel PHP expert addslashes() vergeten, ben het wel zeker.
Offline MechaVore - 15/06/2005 20:18
Avatar van MechaVore Gouden medaille

PHP gevorderde
"ik kan zo ff niet de vaud vinden, maar ff iets anders..."

lol dat zijn 4 spelfouten in een woord van 4 letter . dat heb je dus Fout geschreven 
Offline simontjeuh - 15/06/2005 20:29 (laatste wijziging 15/06/2005 20:29)
Avatar van simontjeuh HTML interesse ik denk dat de fout hier zit:
$query="INSERT INTO nieuwsreacties (nid, naam, email, reactie) VALUES ('$nid', '$naam', '$email', '$reactie');"; <-- die eerste ; dus

ik denk dat het zo moet zijn:
$query="INSERT INTO nieuwsreacties (nid, naam, email, reactie) VALUES ('$nid', '$naam', '$email', '$reactie')";

(ik heb opzettelijk geen [ code] gebruikt zodat je goed zou zien waar de fout zit)
Offline eric - 15/06/2005 20:39 (laatste wijziging 16/06/2005 12:53)
Avatar van eric HTML interesse Heb het een beetje aan zitten passen maar werkt nog niet.

@tuinstoel waar zou ik dan addslashes() moeten gebruiken?

En het vreemde is dus dat die het op de ene server wel doet en op de andere niet. En als ik een id opgeef werkt het script wel gewoon :S
Offline TFOL - 16/06/2005 15:30 (laatste wijziging 16/06/2005 15:31)
Avatar van TFOL PHP beginner zet de variabelen in die query is tussen '". ."' ipv ' '

dit dus:
  1. <?php
  2.  
  3. //onderstaand stukje script:
  4.  
  5. $query="INSERT INTO nieuwsreacties (nid, naam, email, reactie) VALUES ('$nid', '$naam', '$email', '$reactie')";
  6.  
  7. //moet worden:
  8.  
  9. $query="INSERT INTO nieuwsreacties ('nid', 'naam', 'email', 'reactie') VALUES ('".$nid."', '".$naam."', '".$email."', '".$reactie."')";
  10.  
  11. /* --------------------------------------------- \\
  12. | -> bij alle variabelen in query's moet dit <- |
  13. \\ --------------------------------------------- */
  14. ?>


Grtn Robin
Offline eric - 17/06/2005 17:24
Avatar van eric HTML interesse Krijg nog steeds dezelfde fout. Ben er wel achter gekomen dat als ik het script in een iframe het wel werkt :S
Offline leendertW - 17/06/2005 17:25 (laatste wijziging 17/06/2005 17:29)
Avatar van leendertW PHP beginner @TFOL

variabelen NIET tussen quotes!!
[edit]

probleem is blijkbaar al opgelost
Offline nemesiskoen - 17/06/2005 17:28 (laatste wijziging 17/06/2005 17:29)
Avatar van nemesiskoen Gouden medaille

PHP expert
waarom nog zoveel reacties (foute) als de oplossing al is gegeven: tuinstoel had gelijk met zijn addslashes()

@leendertW
  1. $query="SELECT * FROM nieuws WHERE id = " $id;

dat is ook fout
  1. $query="SELECT * FROM nieuws WHERE id = ". $id;
Offline leendertW - 17/06/2005 17:29 (laatste wijziging 17/06/2005 17:30)
Avatar van leendertW PHP beginner nemesiskoen

@leendertW
#####
$query="SELECT * FROM nieuws WHERE id = " $id;

dat is ook fout

$query="SELECT * FROM nieuws WHERE id = ". $id;

####

ja typ foutje:p

waarom wordt dat dan niet vermeld.?
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.226s