Vraag & Antwoord

Webprogrammeren & scripting

Query Fout

19 antwoorden
  • Hallo, Ik heb een klein systeempje gemaakt om mijn top 40 te updaten op mijn site (http://www.hf-online.nl) Nou is het probleem dat ik een query fout krijg: Warning: sqlite_query() [function.sqlite-query]: near "20": syntax error in /home/contracts/CN20051076/www/top40/top40_invoegen.php on line 100 Kan iemand mij helpen, ben alles 3 keer na gelopen, maar kan de fout nergens vinden. Ik vermoed dat de fout niet zit in het vergeten of overslaan van een titel of artiest nummer, maar het vergeten van een belangrijke php functie. Heb hier het script en de sqlite tabel structuur: Formulier: [code:1:0835ebd2b9] <html> <head> <title>Top 40</title> </head> <body> <h2>Top 40 invoeren</h2> <form method="post" action="top40_invoegen.php" name="form1"> 1. <input type="Text" name="titel1" size="40"> - <input type="Text" name="artiest1" size="40"><br> 2. <input type="Text" name="titel2" size="40"> - <input type="Text" name="artiest2" size="40"><br> 3. <input type="Text" name="titel3" size="40"> - <input type="Text" name="artiest3" size="40"><br> 4. <input type="Text" name="titel4" size="40"> - <input type="Text" name="artiest4" size="40"><br> 5. <input type="Text" name="titel5" size="40"> - <input type="Text" name="artiest5" size="40"><br> 6. <input type="Text" name="titel6" size="40"> - <input type="Text" name="artiest6" size="40"><br> 7. <input type="Text" name="titel7" size="40"> - <input type="Text" name="artiest7" size="40"><br> 8. <input type="Text" name="titel8" size="40"> - <input type="Text" name="artiest8" size="40"><br> 9. <input type="Text" name="titel9" size="40"> - <input type="Text" name="artiest9" size="40"><br> 10. <input type="Text" name="titel10" size="40"> - <input type="Text" name="artiest10" size="40"><br> 11. <input type="Text" name="titel11" size="40"> - <input type="Text" name="artiest11" size="40"><br> 12. <input type="Text" name="titel12" size="40"> - <input type="Text" name="artiest12" size="40"><br> 13. <input type="Text" name="titel13" size="40"> - <input type="Text" name="artiest13" size="40"><br> 14. <input type="Text" name="titel14" size="40"> - <input type="Text" name="artiest14" size="40"><br> 15. <input type="Text" name="titel15" size="40"> - <input type="Text" name="artiest15" size="40"><br> 16. <input type="Text" name="titel16" size="40"> - <input type="Text" name="artiest16" size="40"><br> 17. <input type="Text" name="titel17" size="40"> - <input type="Text" name="artiest17" size="40"><br> 18. <input type="Text" name="titel18" size="40"> - <input type="Text" name="artiest18" size="40"><br> 19. <input type="Text" name="titel19" size="40"> - <input type="Text" name="artiest19" size="40"><br> 20. <input type="Text" name="titel20" size="40"> - <input type="Text" name="artiest20" size="40"><br> 21. <input type="Text" name="titel21" size="40"> - <input type="Text" name="artiest21" size="40"><br> 22. <input type="Text" name="titel22" size="40"> - <input type="Text" name="artiest22" size="40"><br> 23. <input type="Text" name="titel23" size="40"> - <input type="Text" name="artiest23" size="40"><br> 24. <input type="Text" name="titel24" size="40"> - <input type="Text" name="artiest24" size="40"><br> 25. <input type="Text" name="titel25" size="40"> - <input type="Text" name="artiest25" size="40"><br> 26. <input type="Text" name="titel26" size="40"> - <input type="Text" name="artiest26" size="40"><br> 27. <input type="Text" name="titel27" size="40"> - <input type="Text" name="artiest27" size="40"><br> 28. <input type="Text" name="titel28" size="40"> - <input type="Text" name="artiest28" size="40"><br> 29. <input type="Text" name="titel29" size="40"> - <input type="Text" name="artiest29" size="40"><br> 30. <input type="Text" name="titel30" size="40"> - <input type="Text" name="artiest30" size="40"><br> 31. <input type="Text" name="titel31" size="40"> - <input type="Text" name="artiest31" size="40"><br> 32. <input type="Text" name="titel32" size="40"> - <input type="Text" name="artiest32" size="40"><br> 33. <input type="Text" name="titel33" size="40"> - <input type="Text" name="artiest33" size="40"><br> 34. <input type="Text" name="titel34" size="40"> - <input type="Text" name="artiest34" size="40"><br> 35. <input type="Text" name="titel35" size="40"> - <input type="Text" name="artiest35" size="40"><br> 36. <input type="Text" name="titel36" size="40"> - <input type="Text" name="artiest36" size="40"><br> 37. <input type="Text" name="titel37" size="40"> - <input type="Text" name="artiest37" size="40"><br> 38. <input type="Text" name="titel38" size="40"> - <input type="Text" name="artiest38" size="40"><br> 39. <input type="Text" name="titel39" size="40"> - <input type="Text" name="artiest39" size="40"><br> 40. <input type="Text" name="titel40" size="40"> - <input type="Text" name="artiest40" size="40"><br> <br> Week: <input type="Text" name="week" size="40"> <br> <hr> <input type="submit" value="Invoegen"><input type="Reset" value="Leegmaken"><br><hr> </body> </html> [/code:1:0835ebd2b9] hier het verwerkingsscript: [code:1:0835ebd2b9] <?php error_reporting(E_ALL); // variabelen initialiseren: $dbnaam="top40.sdb"; $db=sqlite_open($dbnaam) or die (sqlite_last_error()); if (empty($_POST)){ // eerst controleren of pagina wel is aangeroepen vanuit formulier echo("Vul eerst <a href=\"top40.html\">gegevens voor de top 40 </a> in"); exit(); }else{ // Query opbouwen met variabelen in $_POST // in het 'echt' eerst valideren of het formulier wel // geldige waarden bevat. $query="INSERT INTO top40 (titel1, artiest1, titel2, artiest2, titel3, artiest3, titel4, artiest4, titel5, artiest5, titel6, artiest6, titel7, artiest7, titel8, artiest8, titel9, artiest9, titel10, artiest10, titel11, artiest11, titel12, artiest12, titel13, artiest13, titel14, artiest14, titel15, artiest15, titel16, artiest16, titel17, artiest17, titel18, artiest18, titel19, artiest19, titel20, artiest 20, titel21, artiest21, titel22, artiest22, titel23, artiest23, titel24, artiest24, titel25, artiest25, titel26 artiest26, titel27, artiest27, titel28, artiest28, titel29, artiest29, titel30, artiest30, titel31, artiest31, titel32, artiest32, titel33, artiest33, titel34, artiest34, titel35, artiest35, titel36, artiest36, titel37, artiest37, titel38, artiest38, titel39, artiest39, titel40, artiest40, week)"; $query .= "VALUES ('"; $query .= $_POST["titel1"] ."', '" ; $query .= $_POST["artiest1"] ."', '" ; $query .= $_POST["titel2"] ."', '" ; $query .= $_POST["artiest2"] ."', '" ; $query .= $_POST["titel3"] ."', '" ; $query .= $_POST["artiest3"] ."', '" ; $query .= $_POST["titel4"] ."', '" ; $query .= $_POST["artiest4"] ."', '" ; $query .= $_POST["titel5"] ."', '" ; $query .= $_POST["artiest5"] ."', '" ; $query .= $_POST["titel6"] ."', '" ; $query .= $_POST["artiest6"] ."', '" ; $query .= $_POST["titel7"] ."', '" ; $query .= $_POST["artiest7"] ."', '" ; $query .= $_POST["titel8"] ."', '" ; $query .= $_POST["artiest8"] ."', '" ; $query .= $_POST["titel9"] ."', '" ; $query .= $_POST["artiest9"] ."', '" ; $query .= $_POST["titel10"] ."', '" ; $query .= $_POST["artiest10"] ."', '" ; $query .= $_POST["titel11"] ."', '" ; $query .= $_POST["artiest11"] ."', '" ; $query .= $_POST["titel12"] ."', '" ; $query .= $_POST["artiest12"] ."', '" ; $query .= $_POST["titel13"] ."', '" ; $query .= $_POST["artiest13"] ."', '" ; $query .= $_POST["titel14"] ."', '" ; $query .= $_POST["artiest14"] ."', '" ; $query .= $_POST["titel15"] ."', '" ; $query .= $_POST["artiest15"] ."', '" ; $query .= $_POST["titel16"] ."', '" ; $query .= $_POST["artiest16"] ."', '" ; $query .= $_POST["titel17"] ."', '" ; $query .= $_POST["artiest17"] ."', '" ; $query .= $_POST["titel18"] ."', '" ; $query .= $_POST["artiest18"] ."', '" ; $query .= $_POST["titel19"] ."', '" ; $query .= $_POST["artiest19"] ."', '" ; $query .= $_POST["titel20"] ."', '" ; $query .= $_POST["artiest20"] ."', '" ; $query .= $_POST["titel21"] ."', '" ; $query .= $_POST["artiest21"] ."', '" ; $query .= $_POST["titel22"] ."', '" ; $query .= $_POST["artiest22"] ."', '" ; $query .= $_POST["titel23"] ."', '" ; $query .= $_POST["artiest23"] ."', '" ; $query .= $_POST["titel24"] ."', '" ; $query .= $_POST["artiest24"] ."', '" ; $query .= $_POST["titel25"] ."', '" ; $query .= $_POST["artiest25"] ."', '" ; $query .= $_POST["titel26"] ."', '" ; $query .= $_POST["artiest26"] ."', '" ; $query .= $_POST["titel27"] ."', '" ; $query .= $_POST["artiest27"] ."', '" ; $query .= $_POST["titel28"] ."', '" ; $query .= $_POST["artiest28"] ."', '" ; $query .= $_POST["titel29"] ."', '" ; $query .= $_POST["artiest29"] ."', '" ; $query .= $_POST["titel30"] ."', '" ; $query .= $_POST["artiest30"] ."', '" ; $query .= $_POST["titel31"] ."', '" ; $query .= $_POST["artiest31"] ."', '" ; $query .= $_POST["titel32"] ."', '" ; $query .= $_POST["artiest32"] ."', '" ; $query .= $_POST["titel33"] ."', '" ; $query .= $_POST["artiest33"] ."', '" ; $query .= $_POST["titel34"] ."', '" ; $query .= $_POST["artiest34"] ."', '" ; $query .= $_POST["titel35"] ."', '" ; $query .= $_POST["artiest35"] ."', '" ; $query .= $_POST["titel36"] ."', '" ; $query .= $_POST["artiest36"] ."', '" ; $query .= $_POST["titel37"] ."', '" ; $query .= $_POST["artiest37"] ."', '" ; $query .= $_POST["titel38"] ."', '" ; $query .= $_POST["artiest38"] ."', '" ; $query .= $_POST["titel39"] ."', '" ; $query .= $_POST["artiest39"] ."', '" ; $query .= $_POST["titel40"] ."', '" ; $query .= $_POST["artiest40"] ."', '" ; $query .= $_POST["week"] ."');" ; $result = sqlite_query($db, $query) or die; } ?> [/code:1:0835ebd2b9] de tabelstructuur: create table top40 ( id integer primary key, titel1 varchar (40), artiest1 varchar (40), titel2 varchar (40), artiest2 varchar (40), titel3 varchar (40), artiest3 varchar (40), titel4 varchar (40), artiest4 varchar (40), titel5 varchar (40), artiest5 varchar (40), titel6 varchar (40), artiest6 varchar (40), titel7 varchar (40), artiest7 varchar (40), titel8 varchar (40), artiest8 varchar (40), titel9 varchar (40), artiest9 varchar (40), titel10 varchar (40), artiest10 varchar (40), titel11 varchar (40), artiest11 varchar (40), titel12 varchar (40), artiest12 varchar (40), titel13 varchar (40), artiest13 varchar (40), titel14 varchar (40), artiest14 varchar (40), titel15 varchar (40), artiest15 varchar (40), titel16 varchar (40), artiest16 varchar (40), titel17 varchar (40), artiest17 varchar (40), titel18 varchar (40), artiest18 varchar (40), titel19 varchar (40), artiest19 varchar (40), titel20 varchar (40), artiest20 varchar (40), titel21 varchar (40), artiest21 varchar (40), titel22 varchar (40), artiest22 varchar (40), titel23 varchar (40), artiest23 varchar (40), titel24 varchar (40), artiest24 varchar (40), titel25 varchar (40), artiest25 varchar (40), titel26 varchar (40), artiest26 varchar (40), titel27 varchar (40), artiest27 varchar (40), titel28 varchar (40), artiest28 varchar (40), titel29 varchar (40), artiest29 varchar (40), titel30 varchar (40), artiest30 varchar (40), titel31 varchar (40), artiest31 varchar (40), titel32 varchar (40), artiest32 varchar (40), titel33 varchar (40), artiest33 varchar (40), titel34 varchar (40), artiest34 varchar (40), titel35 varchar (40), artiest35 varchar (40), titel36 varchar (40), artiest36 varchar (40), titel37 varchar (40), artiest37 varchar (40), titel38 varchar (40), artiest38 varchar (40), titel39 varchar (40), artiest39 varchar (40), titel40 varchar (40), artiest40 varchar (40), week integer );
  • alvast bedankt voor jullie reactie 8) groeten, Bas van Vliet
  • De fout in de query ontstaat denk ik doordat je er geen rekening mee houdt dat een van de geposte waardes een ' kan bevatten, waardoor een stringwaarde voortijdig wordt beeindigd: '...', '...', 'it's my life', ... Je gebruikt daarvoor de functie addslashes(), om deze query aan de db te geven: '...', '...', 'it\'s my life', ... dus iets van: $query .= addSlashes($_POST["artiest1"]) ."', '" ; Als ik jou was zou ik er een relationele database van maken, je slaat de gegevens nu wel erg plat op: Artiesten (Artiest_ID, Artiestnaam) Songs (Song_ID, Artiest_ID, Titel) Rankings (Ranking_ID, Weeknummer, Ranking, Song_ID)
  • het klopt dat het wel heel eenvoudig in elkaar zit, heb nog nauwelijks ervaring ;) Ook bedankt voor de tip met addslashes. Toch heb ik het probleem ook als ik geen slashes gebruik. :oops:
  • Het komt ook niet omdat je slashes gebruikt, maar een ' (apostrof), die juist escaped moet worden met een slash.
  • Als je problemen met een query hebt kun je altijd: echo $query; doen om de query naar het scherm te sturen, zodat je hem kan lezen (zien wat er fout is).
  • Bedankt voor de tip! ik heb de addslashes toegevoegd en de query echo uitgevoerd: Dit was het resultaat ( ik heb gewoon elke keer titel: Nummer en artiest: Artiest ingevoerd, en als laatste het weeknummer): INSERT INTO top40 (titel1, artiest1, titel2, artiest2, titel3, artiest3, titel4, artiest4, titel5, artiest5, titel6, artiest6, titel7, artiest7, titel8, artiest8, titel9, artiest9, titel10, artiest10, titel11, artiest11, titel12, artiest12, titel13, artiest13, titel14, artiest14, titel15, artiest15, titel16, artiest16, titel17, artiest17, titel18, artiest18, titel19, artiest19, titel20, artiest 20, titel21, artiest21, titel22, artiest22, titel23, artiest23, titel24, artiest24, titel25, artiest25, titel26 artiest26, titel27, artiest27, titel28, artiest28, titel29, artiest29, titel30, artiest30, titel31, artiest31, titel32, artiest32, titel33, artiest33, titel34, artiest34, titel35, artiest35, titel36, artiest36, titel37, artiest37, titel38, artiest38, titel39, artiest39, titel40, artiest40, week)VALUES ('Nummer', 'Artiest', 'Nummer', 'Artiest', 'Nummer', 'Artiest', 'Nummer', 'Artiest', 'Nummer', 'Artiest', 'Nummer', 'Artiest', 'Nummer', 'Artiest', 'Nummer', 'Artiest', 'Nummer', 'Artiest', 'Nummer', 'Artiest', 'Nummer', 'Artiest', 'Nummer', 'Artiest', 'Nummer', 'Artiest', 'Nummer', 'Artiest', 'Nummer', 'Artiest', 'Nummer', 'Artiest', 'Nummer', 'Artiest', 'Nummer', 'Artiest', 'Nummer', 'Artiest', 'Nummer', 'Artiest', 'Nummer', 'Artiest', 'Nummer', 'Artiest', 'Nummer', 'Artiest', 'Nummer', 'Artiest', 'Nummer', 'Artiest', 'Nummer', 'Artiest', 'Nummer', 'Artiest', 'Nummer', 'Artiest', 'Nummer', 'Artiest', 'Nummer', 'Artiest', 'Nummer', 'Artiest', 'Nummer', 'Artiest', 'Nummer', 'Artiest', 'Nummer', 'Artiest', 'Nummer', 'Artiest', 'Nummer', 'Artiest', 'Nummer', 'Artiest', 'Nummer', 'Artiest', 'Nummer', 'Artiest', 'Nummer', 'Artiest', '41'); Warning: sqlite_query() [function.sqlite-query]: near "20": syntax error in /home/contracts/CN20051076/www/top40/top40_invoegen.php on line 101
  • Oh zo, je probeert het weeknummer als stringwaarde toe te voegen, terwijl het een integer is. Het laatste stukje: 'Nummer', 'Artiest', '41'); moet zijn 'Nummer', 'Artiest', 41); dus in je script de laatste regels: $query .= $_POST["artiest40"] ."', '" ; $query .= $_POST["week"] ."');" ; veranderen naar $query .= $_POST["artiest40"] ."', " ; $query .= $_POST["week"] .");" ; Maar met addslashes heb ik iig alvast je volgende vraag voorkomen ;-)
  • Oh, pff, ik post te snel :-) ik zie ook nog: week)VALUES ( wat misschien week) VALUES ( moet zijn, weet ik niet zeker, maar is wel zo netjes.
  • Heb nu het een en ander aangepast, krijg nu: INSERT INTO top40 (titel1, artiest1, titel2, artiest2, titel3, artiest3, titel4, artiest4, titel5, artiest5, titel6, artiest6, titel7, artiest7, titel8, artiest8, titel9, artiest9, titel10, artiest10, titel11, artiest11, titel12, artiest12, titel13, artiest13, titel14, artiest14, titel15, artiest15, titel16, artiest16, titel17, artiest17, titel18, artiest18, titel19, artiest19, titel20, artiest 20, titel21, artiest21, titel22, artiest22, titel23, artiest23, titel24, artiest24, titel25, artiest25, titel26 artiest26, titel27, artiest27, titel28, artiest28, titel29, artiest29, titel30, artiest30, titel31, artiest31, titel32, artiest32, titel33, artiest33, titel34, artiest34, titel35, artiest35, titel36, artiest36, titel37, artiest37, titel38, artiest38, titel39, artiest39, titel40, artiest40, week) VALUES ('', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ); Warning: sqlite_query() [function.sqlite-query]: near "20": syntax error in /home/contracts/CN20051076/www/top40/top40_invoegen.php on line 101 en de code die ik nu gebruik: <?php error_reporting(E_ALL); // variabelen initialiseren: $dbnaam="top40.sdb"; $db=sqlite_open($dbnaam) or die (sqlite_last_error()); if (empty($_POST)){ // eerst controleren of pagina wel is aangeroepen vanuit formulier echo("Vul eerst <a href=\"top40.html\">gegevens voor de top 40 </a> in"); exit(); }else{ // Query opbouwen met variabelen in $_POST // in het 'echt' eerst valideren of het formulier wel // geldige waarden bevat. $query="INSERT INTO top40 (titel1, artiest1, titel2, artiest2, titel3, artiest3, titel4, artiest4, titel5, artiest5, titel6, artiest6, titel7, artiest7, titel8, artiest8, titel9, artiest9, titel10, artiest10, titel11, artiest11, titel12, artiest12, titel13, artiest13, titel14, artiest14, titel15, artiest15, titel16, artiest16, titel17, artiest17, titel18, artiest18, titel19, artiest19, titel20, artiest 20, titel21, artiest21, titel22, artiest22, titel23, artiest23, titel24, artiest24, titel25, artiest25, titel26 artiest26, titel27, artiest27, titel28, artiest28, titel29, artiest29, titel30, artiest30, titel31, artiest31, titel32, artiest32, titel33, artiest33, titel34, artiest34, titel35, artiest35, titel36, artiest36, titel37, artiest37, titel38, artiest38, titel39, artiest39, titel40, artiest40, week) "; $query .= "VALUES ('"; $query .= addSlashes($_POST["titel1"]) ."', '" ; $query .= addSlashes($_POST["artiest1"]) ."', '" ; $query .= addSlashes($_POST["titel2"]) ."', '" ; $query .= addSlashes($_POST["artiest2"]) ."', '" ; $query .= addSlashes($_POST["titel3"]) ."', '" ; $query .= addSlashes($_POST["artiest3"]) ."', '" ; $query .= addSlashes($_POST["titel4"]) ."', '" ; $query .= addSlashes($_POST["artiest4"]) ."', '" ; $query .= addSlashes($_POST["titel5"]) ."', '" ; $query .= addSlashes($_POST["artiest5"]) ."', '" ; $query .= addSlashes($_POST["titel6"]) ."', '" ; $query .= addSlashes($_POST["artiest6"]) ."', '" ; $query .= addSlashes($_POST["titel7"]) ."', '" ; $query .= addSlashes($_POST["artiest7"]) ."', '" ; $query .= addSlashes($_POST["titel8"]) ."', '" ; $query .= addSlashes($_POST["artiest8"]) ."', '" ; $query .= addSlashes($_POST["titel9"]) ."', '" ; $query .= addSlashes($_POST["artiest9"]) ."', '" ; $query .= addSlashes($_POST["titel10"]) ."', '" ; $query .= addSlashes($_POST["artiest10"]) ."', '" ; $query .= addSlashes($_POST["titel11"]) ."', '" ; $query .= addSlashes($_POST["artiest11"]) ."', '" ; $query .= addSlashes($_POST["titel12"]) ."', '" ; $query .= addSlashes($_POST["artiest12"]) ."', '" ; $query .= addSlashes($_POST["titel13"]) ."', '" ; $query .= addSlashes($_POST["artiest13"]) ."', '" ; $query .= addSlashes($_POST["titel14"]) ."', '" ; $query .= addSlashes($_POST["artiest14"]) ."', '" ; $query .= addSlashes($_POST["titel15"]) ."', '" ; $query .= addSlashes($_POST["artiest15"] )."', '" ; $query .= addSlashes($_POST["titel16"]) ."', '" ; $query .= addSlashes($_POST["artiest16"]) ."', '" ; $query .= addSlashes($_POST["titel17"]) ."', '" ; $query .= addSlashes($_POST["artiest17"]) ."', '" ; $query .= addSlashes($_POST["titel18"]) ."', '" ; $query .= addSlashes($_POST["artiest18"]) ."', '" ; $query .= addSlashes($_POST["titel19"]) ."', '" ; $query .= addSlashes($_POST["artiest19"]) ."', '" ; $query .= addSlashes($_POST["titel20"]) ."', '" ; $query .= addSlashes($_POST["artiest20"]) ."', '" ; $query .= addSlashes($_POST["titel21"]) ."', '" ; $query .= addSlashes($_POST["artiest21"]) ."', '" ; $query .= addSlashes($_POST["titel22"]) ."', '" ; $query .= addSlashes($_POST["artiest22"] )."', '" ; $query .= addSlashes($_POST["titel23"]) ."', '" ; $query .= addSlashes($_POST["artiest23"]) ."', '" ; $query .= addSlashes($_POST["titel24"]) ."', '" ; $query .= addSlashes($_POST["artiest24"]) ."', '" ; $query .= addSlashes($_POST["titel25"]) ."', '" ; $query .= addSlashes($_POST["artiest25"]) ."', '" ; $query .= addSlashes($_POST["titel26"]) ."', '" ; $query .= addSlashes($_POST["artiest26"]) ."', '" ; $query .= addSlashes($_POST["titel27"]) ."', '" ; $query .= addSlashes($_POST["artiest27"]) ."', '" ; $query .= addSlashes($_POST["titel28"]) ."', '" ; $query .= addSlashes($_POST["artiest28"]) ."', '" ; $query .= addSlashes($_POST["titel29"]) ."', '" ; $query .= addSlashes($_POST["artiest29"]) ."', '" ; $query .= addSlashes($_POST["titel30"]) ."', '" ; $query .= addSlashes($_POST["artiest30"]) ."', '" ; $query .= addSlashes($_POST["titel31"]) ."', '" ; $query .= addSlashes($_POST["artiest31"]) ."', '" ; $query .= addSlashes($_POST["titel32"]) ."', '" ; $query .= addSlashes($_POST["artiest32"]) ."', '" ; $query .= addSlashes($_POST["titel33"]) ."', '" ; $query .= addSlashes($_POST["artiest33"]) ."', '" ; $query .= addSlashes($_POST["titel34"]) ."', '" ; $query .= addSlashes($_POST["artiest34"]) ."', '" ; $query .= addSlashes($_POST["titel35"]) ."', '" ; $query .= addSlashes($_POST["artiest35"]) ."', '" ; $query .= addSlashes($_POST["titel36"]) ."', '" ; $query .= addSlashes($_POST["artiest36"]) ."', '" ; $query .= addSlashes($_POST["titel37"]) ."', '" ; $query .= addSlashes($_POST["artiest37"]) ."', '" ; $query .= addSlashes($_POST["titel38"]) ."', '" ; $query .= addSlashes($_POST["artiest38"]) ."', '" ; $query .= addSlashes($_POST["titel39"]) ."', '" ; $query .= addSlashes($_POST["artiest39"]) ."', '" ; $query .= addSlashes($_POST["titel40"]) ."', '" ; $query .= addSlashes($_POST["artiest40"]) ."', " ; $query .= addSlashes($_POST["week"]) .");" ; echo $query; $result = sqlite_query($db, $query) or die(); } ?>
  • Hmm, gaat iets niet goed met [url=http://nl3.php.net/addslashes]addslashes[/url]... moet misschien met kleine letter s? Dus niet addSlashes(), maar addslashes(), mijn php is niet zo geweldig. En ik zie je hem ook gebruiken voor het weeknummer, maar daar is ie niet nodig, want een weeknummer zal nooit een apostrof oid bevatten. De query geeft nu een fout omdat je geen weeknummer in de query hebt.
  • geen idee hoe het verder zit maar ik zag toevalig dit foutje in je query: INSERT INTO top40 (titel1, artiest1, titel2, artiest2, titel3, artiest3, titel4, artiest4, titel5, artiest5, titel6, artiest6, titel7, artiest7, titel8, artiest8, titel9, artiest9, titel10, artiest10, titel11, artiest11, titel12, artiest12, titel13, artiest13, titel14, artiest14, titel15, artiest15, titel16, artiest16, titel17, artiest17, titel18, artiest18, titel19, artiest19, titel20, artiest 20, titel21, artiest21, titel22, artiest22, titel23, artiest23, titel24, artiest24, titel25, artiest25, titel26 artiest26, titel27, artiest27, titel28, artiest28, titel29, artiest29, titel30, artiest30, titel31, artiest31, titel32, artiest32, titel33, artiest33, titel34, artiest34, titel35, artiest35, titel36, artiest36, titel37, artiest37, titel38, artiest38, titel39, artiest39, titel40, artiest40, week) VALUES ('', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''[b:a956b8e35e],[/b:a956b8e35e]); Die laatste comma moet dus weg
  • Nee, die komma moet niet weg, er moet een numerieke waarde achter, anders komt het aantal velden weer niet overeen met het aantal waarden.
  • Dit is het als ik alles zou invullen: INSERT INTO top40 (titel1, artiest1, titel2, artiest2, titel3, artiest3, titel4, artiest4, titel5, artiest5, titel6, artiest6, titel7, artiest7, titel8, artiest8, titel9, artiest9, titel10, artiest10, titel11, artiest11, titel12, artiest12, titel13, artiest13, titel14, artiest14, titel15, artiest15, titel16, artiest16, titel17, artiest17, titel18, artiest18, titel19, artiest19, titel20, artiest 20, titel21, artiest21, titel22, artiest22, titel23, artiest23, titel24, artiest24, titel25, artiest25, titel26 artiest26, titel27, artiest27, titel28, artiest28, titel29, artiest29, titel30, artiest30, titel31, artiest31, titel32, artiest32, titel33, artiest33, titel34, artiest34, titel35, artiest35, titel36, artiest36, titel37, artiest37, titel38, artiest38, titel39, artiest39, titel40, artiest40, week) VALUES ('A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 42); Warning: sqlite_query() [function.sqlite-query]: near "20": syntax error in /home/contracts/CN20051076/www/top40/top40_invoegen.php on line 101
  • Warning: sqlite_query() [function.sqlite-query]: near "20": syntax error near "20": ..., artiest 20, ... Dat moet aan elkaar. Was helemaal in het begin al de fout :-) Lukt ie nou met dat addslashes? Ik kwam er gister nog achter dat het bij mij niks uitmaakt of ik dat met een hoofdletter schrijf, maar dat ik de functie ook niet nodig heb, omdat de postdata al met slashes wordt aangeleverd (??). Volgens marientje moet het echter met kleine letters, doe maar dus, maar probeer eerst eens helemaal zonder die functie.
  • En ik zie ook nog: ... , titel26 artiest26, ... Moet nog een komma tussen.
  • volgens mij doet hij het nu :D probleem was dus die artiest 20, daarna kreeg ik de melding dat er iets fout was met ")" dus toen heb $query .= $_POST["artiest40"] ."', " ; $query .= $_POST["week"] .");" ; weer terugveranderd naar: $query .= $_POST["artiest40"] ."', '" ; $query .= $_POST["week"] ."');" ; ga nu even testen met het selecteren van gegevens uit de tabel Bedankt voor jullie reacties (vooral Paulus, ook nog voor de addslashes! ;) ) Heb weer een hoop geleerd over zorgvuldigheid. groeten, Bas
  • Toch nog een vraagje: Bij deze code: [code:1:baa6c8998e] <table width="553" border="0" bgcolor="#FFFFFF"> <tr> <th width="22" scope="row"><span class="style10">01</span></th> <td width="100"><span class="style11"></span></td> <td width="322" bgcolor="#FFFFFF"><span class="style8"> <?php while ($rij = sqlite_fetch_array($result)) { echo ("". $rij['titel1'] . " - " . "" . $rij['artiest1'] . "". ""); } ?> </span></td> <td width="287"><span class="style12"><a href="/top40/01.rar">Download!</a></span></td> </tr> <tr> <th bgcolor="#33CCFF" scope="row"><span class="style10">02</span></th> <td bgcolor="#33CCFF"> </td> <td bgcolor="#33CCFF"><span class="style10"> <?php while ($rij = sqlite_fetch_array($result)) { echo ("". $rij2['titel2'] . " - " . "" . $rij2['artiest2'] . "". ""); } ?> [/code:1:baa6c8998e] titel2 en artiest2 zijn niet te zien. Hoe los ik dat op?
  • Ik denk omdat je naar $rij2 verwijst, terwijl je in $rij het queryresultaat stopt. Probeer eens: [code:1:47fc3e8ee6] <?php while ($rij = sqlite_fetch_array($result)) { echo ("". $rij['titel2'] . " - " . "" . $rij['artiest2'] . "". ""); } ?> [/code:1:47fc3e8ee6] Nadeel van je huidige opzet is dat je per positie een queryresultaat moet opbouwen. Als je een losse tabel hebt met alleen songs en een veld met de positie, dan kun je een query maken als: SELECT * FROM Tabel WHERE Weeknummer = ... ORDER BY Ranking en dan heb je ook echt een while {} nodig. Nu volstaat denk ik ook wel: [code:1:47fc3e8ee6] <?php $rij = sqlite_fetch_array($result); echo ($rij['titel2'] . " - " . $rij['artiest2']); ?> [/code:1:47fc3e8ee6] Al dat . "" . "" voegt niks toe, je zegt ermee dat er twee keer niks ge-echood moet worden.

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.