login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Stem opnemen

Offline Stijn - 02/02/2005 19:11 (laatste wijziging 02/02/2005 19:16)
Avatar van StijnPHP expert hallo,

ik ben al een tijdje bezig met een scriptlibary en men kan dus ook stemmen op een script of ze het nuttig vonden of niet.

Hier is mijn script:
  1. <?
  2. if($_GET['actie'] == "score")
  3. {
  4. $id = $_GET[id];
  5. //de score updaten
  6. if($_POST['score'] == "nuttig")
  7. {
  8. $update_score = mysql_query("UPDATE guides SET voted=voted+1 WHERE id='$id' AND actief='1'") or die(mysql_error());
  9. if(!$update_score)
  10. {
  11. start_inhoud("Stem opgenemen mislukt");
  12. echo "<div class=\"tekst\">Je stem kon niet worden geregistreer. Bij voortdurend probleem plaats een rapport of contacteer de webmaster.</div>";
  13. close_inhoud();
  14. }else{
  15. start_inhoud("Stem opgenomen");
  16. echo "<div class=\"tekst\">Je stem werd geregistreerd. Klik <a href=\"Javascript:history.go(-1)\">hier</a> om terug te keren naar het script.</div>";
  17. close_inhoud();
  18. }
  19. }
  20. if($_POST['score'] == "onnuttig")
  21. {
  22. start_inhoud("Stem opgenomen");
  23. echo "<div class=\"tekst\">Je stem werd geregistreerd. Klik <a href=\"Javascript:history.go(-1)\">hier</a> om terug te keren naar het script.</div>";
  24. close_inhoud();
  25. }
  26. }
  27. ?>


Jammer genoeg wil hij de tabel niet updaten om de één of andere redenen. 
Kan iemand mij helpen de fout te zoeken??  

greetz stijn

4 antwoorden

Gesponsorde links
Offline numlockrond - 02/02/2005 19:19 (laatste wijziging 02/02/2005 19:20)
Avatar van numlockrond Onbekend als je ff php tags om je code zet en netjes inspringt zal het een stuk makkelijker zijn om fouten te zoeken.

Verder kan het ook handig zijn om te vertellen wat er fout gaat: krijg je een error of gebeurt er gewoon niks??

  1. <?php
  2. $update_score = mysql_query("UPDATE guides SET voted=voted+1 WHERE id='$id' AND actief='1'") or die(mysql_error());
  3. if(!$update_score)
  4. ?>
Als mysql_query FALSE teruggeeft wordt die(mysql_error()) uitgevoerd, dus die if zal nooit uitgevoerd worden.

Edit: ik was een beetje langzaam en de tags heb je dus al gedaan. Nu de rest nog...
Offline Stijn - 02/02/2005 19:23
Avatar van Stijn PHP expert Er gebeurt niets 

De standaardwaarde van de kolom 'voted' is 0 en type is varchar(255)

denk niet dat het daaraan ligt?!

Ik heb al een poll gemaakt met ongeveer dezelfde UPDATE en dat doet hij perfect:

code van poll:
  1. <?
  2. $stem_id = $_GET[id];
  3. $je_stem = $_POST['je_stem'];
  4. $update_stem = mysql_query("UPDATE poll SET voted=voted+1 WHERE poll_id='$stem_id' AND options='$je_stem'");
  5. if(!$update_stem)
  6. ?>


Hij wil de waarde niet verhogen met +1 

Weet je soms hoe het komt???
Offline numlockrond - 02/02/2005 19:32 (laatste wijziging 02/02/2005 19:33)
Avatar van numlockrond Onbekend
  1. <?php
  2. $id = $_GET[id];
  3. ?>

Moet
  1. <?php
  2. $id = $_GET['id'];
  3. ?>

zijn. Maar het is helemaal overbodig.

Er wordt niks geupdate omdat er geen rij is die aan de WHERE clause voldoet. Misschien bestaat er geen rij met $id als id of staat die rij niet op actief='1'.

Je moet iig variabelen buiten quotes houden:
  1. <?php
  2. $update_score = mysql_query("UPDATE guides SET voted=voted+1 WHERE id=".intval($_GET['id'])." AND actief='1'") or die(mysql_error());
  3. /* integer (wat je id kolom wss is) moet niet tussen quotes, maar dan moet je wel zeker weten dat het een getal is, vandaar de intval() */
  4. ?>


Edit:
Citaat:
De standaardwaarde van de kolom 'voted' is 0 en type is varchar(255)
Uhh... voor getallen gebruik je het type int. Varchar is voor strings.
Offline twopeak - 02/02/2005 19:34
Avatar van twopeak Gouden medaille

PHP ver gevorderde
er gebeurt niets?
dus je klikt op de knop, en alles blijft hetzelfde?
je browser gaat niet iets laden (of doorsturen)
de gegevens blijven in het veld waar ze staan?

Probeer je query even in je sql-programma (mysql of phpmyadmin)
En blijf zoeken tot die werkt, en voer ze dan in je php script!
Zal veel gemakkelijker zijn want dan weet je of je phpscript nu werkt of niet. (en kun je je query beter debuggen)

en zoals numlockround zegt: leer degelijk scripten!
Spring in in structuren;
laat eens een enter door tussen verschillende delen
enzoverder.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.243s