login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Wat doe ik fout ?

Offline prass - 16/02/2005 01:23 (laatste wijziging 16/02/2005 09:44)
Avatar van prassNieuw lid Heey ik ben net begonnen met mysql maar ik kom er nu al niet uit neem nou hier een ratingscript van deze site staat bij poll en stem systeemen nou heb ik daarvan ook de tabel gemaakt
  1. <?
  2. //mysql database gevens, deze veranderen.
  3. mysql_connect("lycos","prassje","*******");
  4. mysql_select_db("prassje_nl_db");
  5.  
  6. //gegevens uit de database ophalen
  7. $result = mysql_query("SELECT * FROM rating WHERE id=" . $_GET['1'] . "");
  8. $row = mysql_fetch_array($result);
  9. $cookie = "gestemd" . $_GET['id'];
  10. $cookieSET = $_COOKIE[$cookie];
  11.  
  12. //als er gestemd is
  13. if (isset($_POST['cijfer'])) {
  14. //het aantal stemmen met 1 verhogen en het cijfer dat gegeven word optellen bij de rest
  15. mysql_query("UPDATE rating SET aantal=aantal+1, cijfer=cijfer+" . $cijfer . " WHERE id=" . $_GET['1'] . "") or die(mysql_error());
  16. //cookie voor een maand zetten
  17. Setcookie($cookie, "gestemd".$_POST['cijfer'], Time()+3600*24*31);
  18. header("location:rating.php?id=" . $_GET['id'] . "");
  19. }
  20. ?>
  21. <html>
  22. <head><title>Rating</title></head>
  23. <body>
  24. Rate: <? echo $row['naam']; ?><br>
  25. <?
  26. if ($row['aantal'] >= 1) {
  27. echo "Er&nbsp;";
  28. if ($row['aantal'] < 2){
  29. echo "heeft <b>" . $row['aantal'] . "</b> persoon gestemd";
  30. } elseif ($row['aantal'] >= 2) {
  31. echo "hebben <b>" . $row['aantal'] . "</b> personen gestemd";
  32. }
  33. }
  34. ?>
  35. <table>
  36. <?
  37. //kijken of de cookie al gezet is of niet
  38. if(!isset($cookieSET)) {
  39. ?>
  40. <tr>
  41. <td>
  42. <form method="post" action="">
  43. <select name="cijfer" onchange="javascript:this.form.submit();">
  44. <option value="">Cijfer:</option>
  45. <option value="1">1</option>
  46. <option value="2">2</option>
  47. <option value="3">3</option>
  48. <option value="4">4</option>
  49. <option value="5">5</option>
  50. <option value="6">6</option>
  51. <option value="7">7</option>
  52. <option value="8">8</option>
  53. <option value="9">9</option>
  54. <option value="10">10</option>
  55. </select>
  56. </form>
  57. </td>
  58. </tr>
  59. <?
  60. }
  61. ?>
  62. <tr>
  63. <td>
  64. <?
  65. //is er nog geen cijfer gegeven
  66. if ($row['aantal'] < 1) {
  67. echo "Er is nog geen cijfer gegeven";
  68. } else {
  69. //is er wel al een cijfer geven
  70. // het gemiddelde berekennen door het totaal te delen door het aantal
  71. $total = $row['cijfer'] / $row['aantal'];
  72. $total = round($total,1);
  73. echo "Aantal sterren:";
  74. //uitrekennen hoeveel sterren het artikel, script of wat dan ook krijgt
  75. if ($total <= 2.5) {
  76. echo "<img src=\"1.gif\">";
  77. } elseif ($total <= 3.5) {
  78. echo "<img src=\"1h.gif\">";
  79. } elseif ($total <= 4.5) {
  80. echo "<img src=\"2.gif\">";
  81. } elseif ($total <= 5.5) {
  82. echo "<img src=\"2h.gif\">";
  83. } elseif ($total <= 6.5) {
  84. echo "<img src=\"3.gif\">";
  85. } elseif ($total <= 7.5) {
  86. echo "<img src=\"3h.gif\">";
  87. } elseif ($total <= 8.5) {
  88. echo "<img src=\"4.gif\">";
  89. } elseif ($total <= 9.5) {
  90. echo "<img src=\"4h.gif\">";
  91. } elseif ($total <= 10.5) {
  92. echo "<img src=\"5.gif\">";
  93. }
  94. }
  95. ?>
  96. </td>
  97. </tr>
  98. </table>
  99. </body>
  100. </html>


Waarschijnlijk is dat lycos fout maar wat moet er dan staan ??
Hij staat hier online : http://members.lycos.nl/prassje/rating.php
En hij geeft deze 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 '' at line 1


Iemand hulp ?
Lataz:D

Crew edit:
Geef een passende titel!

13 antwoorden

Gesponsorde links
Offline webstab - 30/11/1999 00:00
Avatar van webstab PHP ver gevorderde [code]$result = mysql_query(SELECT FROM rating WHERE id=$_GET[1]); rn$row = mysql_fetch_array($result);[code] rnWss zit de fout dan in uw query.rnIk weet dat ze niet zo mooi is opgelost,maar ik denk dat ze wel werkt
Offline Wijnand - 30/11/1999 00:00 (laatste wijziging 30/11/1999 00:00)
Avatar van Wijnand Moderator mysql_query(UPDATE rating SET aantal=aantal+1, cijfer=cijfer+ . $cijfer . WHERE id= . $_GET['1'] . ) or die(mysql_error());rnrnhier zit de fout ]rnrnals je nauwkeurige script dan is dat beterrnrn[code]phprn$aantal = $aantal + 1;rncijfer = $cijfer + 1;rn$get = $_GET['1'];rnmysql_query(UPDATE rating SET aantal = '.$aantal.', cijfer='.$cijfer.' WHERE id='.$get.' ) or die(mysql_error());rn[code]rnrnWat ik het aangepast... ik heb die aantal+1 en cijfer+ uit de query gehaald omdat daar ook wel is problemen mee ontstaan. En het tweede wat ik gedaan heb waardoor waarschijnlijk de error ontstond is die . aan het eind vervangen. Omdat er niets tussenstond gaat MySQL flippen. Ik vind dit heel raar van MySQL maar bij mij is dat zo.rn
Offline leendertW - 30/11/1999 00:00 (laatste wijziging 30/11/1999 00:00)
Avatar van leendertW PHP beginner [quote]$aantal = $aantal + 1;rncijfer = $cijfer + 1;rn[quote] rnDat moetrn[code]rn$aantal = $aantal + 1;rn$cijfer = $cijfer + 1;rn[code]rnrn
Offline xSc - 30/11/1999 00:00 (laatste wijziging 30/11/1999 00:00)
Avatar van xSc Onbekend $get = $_GET['1'];rnrnornrnJongens, neem het volgende van mij aanrnrnKopieer 'kale' $_POST-, $_GET-, $_SERVER-, $_SESSION-, $_COOKIE-, etc. variabelen [b]niet[b] naar een andere variabele.rnrnVoorbeeldrnrn[code]phprnrn echo 'Hallo, ik heet ' . $_GET['naam'];rnrn en nietrnrn $sNaam = $_GET['naam'];rnrn echo 'Hallo, ik heet ' . $sNaam;rnrn[code]rnrnis volstrekt onnodig!rnrnVerder houden we nummers buiten quotes. Dat geldt in PHP, MySQL, etc.rnrnDusrnrn[code]phprnrn $sMijnSQL (string), $iAantal (integer), $fCijfer (float)rnrn $sMijnSQL = UPDATE rating SET aantal = . $iAantal . , cijfer = . $fCijfer . WHERE id = . $_GET['id'];rnrn if ( !mysql_query( $sMijnSQL ) )rn {rnrn echo 'Er is een fout opgetreden tijdens het uitvoeren van ' . $sMijnSQL . '. MySQL retourneerde ' . mysql_errno() . ' ' . mysql_error() . '.';rnrn }rnrn Let op de afhandeling van de fouten. Gebruik niet or die(), maar een ifelse-constructiern[code]rnrnVolgens mij is het niet mogelijk om met bijv. $_GET[0] het eerste element uit de $_GET-array op te halen.
Offline Wijnand - 30/11/1999 00:00
Avatar van Wijnand Moderator Henri ik ben het niet met je eens. Als je van $_GET een duidelijke variabele maakt dan werkt dat naar mijn mening heel gemakkelijk. Dit doe ik altijd in het begin van een verwerking. rnrnJongens, neem dus van mij het volgende aanrnrnKopieer 'kale' $_POST-, $_GET-, $_SERVER-, $_SESSION-, $_COOKIE-, etc. variabelen [b]WEL[b] naar een andere variabele. Dit kan bepaalde dingen vergemakkelijken bv errors opzoeken en in query's zit je dan niet te klooien met die single-quotes.rn
Offline xSc - 30/11/1999 00:00 (laatste wijziging 30/11/1999 00:00)
Avatar van xSc Onbekend @Wijnand, waarom die singlequotes Variabelen heb je toch altijd buiten de quotes, dus daar heb je toch geen last van ...rnrnVerderrnrnIk heb altijd geleerd dat het onnodig is om dat te doen. Als jij je variabelen (ook $_POST, $_GET, etc.) goede namen geeft, is het kopieren niet nodig.
Offline Wijnand - 30/11/1999 00:00
Avatar van Wijnand Moderator nee maar de meeste beginners wel. En ik zelf heb er hele positieve ervaringen mee om alles in duidelijke en korte var's te zetten. Maar goed, iedereen doet het toch anders.
Offline riekele - 30/11/1999 00:00
Avatar van riekele PHP beginner dat lycos moet localhost zijn en bij lycos heb je tog geen wachtwoord nodig bij je database
Offline prass - 30/11/1999 00:00
Avatar van prass Nieuw lid Heeyz ik heb er van allemaal wat bij gedaan maar nu 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 '= + 1;8 = 8 + 1; 8 WHERE id=' at line 1 rnrnEn dit is de code [code] rnmysql database gevens, deze veranderen. rnmysql_connect(localhost,prassje,); rnmysql_select_db(prassje_nl_db); rnrngegevens uit de database ophalen rn$result = mysql_query(SELECT FROM rating WHERE id=$_GET[1]); rn$row = mysql_fetch_array($result); rn$cookie = gestemd . $_GET['id']; rn$cookieSET = $_COOKIE[$cookie]; rnrnals er gestemd is rnif (isset($_POST['cijfer'])) { rn het aantal stemmen met 1 verhogen en het cijfer dat gegeven word optellen bij de rest rn mysql_query(UPDATE rating SET $aantal = $aantal + 1;$cijfer = $cijfer + 1;rn . $cijfer . WHERE id= . $_GET['1'] . ) or die(mysql_error()); rn cookie voor een maand zetten rn Setcookie($cookie, gestemd.$_POST['cijfer'], Time()+36002431); rn header(locationrating.phpid= . $_GET['id'] . ); rn}rn rnhtml rnheadtitleRatingtitlehead rnbody rnRate echo $row['naam']; brrnrnif ($row['aantal'] = 1) {rn echo Er&nbsp;;rn if ($row['aantal'] 2){rn echo heeft b . $row['aantal'] . b persoon gestemd;rn } elseif ($row['aantal'] = 2) {rn echo hebben b . $row['aantal'] . b personen gestemd;rn }rn}rnrntable rn rnkijken of de cookie al gezet is of niet rnif(!isset($cookieSET)) { rnrntr rntd rnform method=post action=rnselect name=cijfer onchange=javascriptthis.form.submit(); rnoption value=Cijferoption rnoption value=11option rnoption value=22option rnoption value=33option rnoption value=44option rnoption value=55option rnoption value=66option rnoption value=77option rnoption value=88option rnoption value=99option rnoption value=1010option rnselect rnform rntdrntrrnrn}rn rntrrntdrn rnis er nog geen cijfer gegeven rnif ($row['aantal'] 1) { rn echo Er is nog geen cijfer gegeven; rn} else {rn is er wel al een cijfer gevenrn het gemiddelde berekennen door het totaal te delen door het aantalrn $total = $row['cijfer'] $row['aantal'];rn $total = round($total,1);rn echo Aantal sterren;rn uitrekennen hoeveel sterren het artikel, script of wat dan ook krijgtrn if ($total = 2.5) {rn echo img src=1.gif;rn } elseif ($total = 3.5) {rn echo img src=1h.gif;rn } elseif ($total = 4.5) {rn echo img src=2.gif;rn } elseif ($total = 5.5) {rn echo img src=2h.gif;rn } elseif ($total = 6.5) {rn echo img src=3.gif;rn } elseif ($total = 7.5) {rn echo img src=3h.gif;rn } elseif ($total = 8.5) {rn echo img src=4.gif;rn } elseif ($total = 9.5) {rn echo img src=4h.gif;rn } elseif ($total = 10.5) {rn echo img src=5.gif;rn }rn}rnrntdrntrrntablernbodyrn[code] rnrnWat nu
Offline Wijnand - 30/11/1999 00:00
Avatar van Wijnand Moderator nope zal niet werkenrnrnmysql_query(UPDATE rating SET $aantal = $aantal + 1;$cijfer = $cijfer + 1;rn . $cijfer . WHERE id= . $_GET['1'] . ) rnrnje kan niet zeggen $aantal = $aantal +1 in de query doen. Dat moet dus in PHP zeg maar.rnrnuhh.. ik ben nu druk maar als ik zometeen even tijd heb dan zal ik een duidelijk antwoordscript schrijven. Of iemand anders moet het eerder gedaan hebben.
Offline Rens - 30/11/1999 00:00
Avatar van Rens Gouden medaille

Crew algemeen
Er staat een ; (puntkomma) in de query, maak daar eens een , (komma) van.rnrnVoor de rest klopt er volgens mij niet veel van die query...rn$cijfer=$cijfer+1.$cijfer rnrnmysql_query(UPDATE rating SET $aantal = $aantal + 1, $cijfer = $cijfer + 1, . $cijfer . WHERE id= . $_GET['1'] . ) or die(mysql_error()); rnrnWaarom staat er trouwens nog een $cijfer net voor het WHERE blokje
Offline xSc - 30/11/1999 00:00
Avatar van xSc Onbekend @Prass, je kunt beter eerst goed PHP leren. Je script doet soms gewoon zeer aan m'n ogen, maar blijkbaar interesseert het je geen lor wat ik zeg. Ook prima.
Offline prass - 30/11/1999 00:00
Avatar van prass Nieuw lid Ik heb het script gewoon hier vandaan hoor bij scripts S
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.297s