login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[opgelost] Herhalings probleem (while)

Offline skillat - 27/10/2005 18:09 (laatste wijziging 27/10/2005 20:40)
Avatar van skillatOnbekend Probleem: editwar.php is een formulier stuurt gegevens naar editwar2.php.. hieronder zie je dat de database het update.
Oplossing: variabelen buiten quotes
  1. <? pid=".$_GET['editid'] ?>


  1. <? mysql_query("UPDATE wars SET land='".$land."',enemy='".$enemy."',scorestatus='".$scorestatus."',score='".$score."',matchtype='".$matchtype."',competition='".$competition."',landcompetition='".$landcompetition."' WHERE pid=".$_GET['editid']) or die (mysql_error()); ?>



edit: Werkt, het was 1 extra bracket toevoegen.

}

bedankt rensjuh en ulti 

12 antwoorden

Gesponsorde links
Offline Rens - 27/10/2005 18:13 (laatste wijziging 27/10/2005 18:13)
Avatar van Rens Gouden medaille

Crew algemeen
Je geeft wel al je id mee in de url, dus word het wat makkelijker:)
Door $_GET['editid'] te doen, kun je het ID ophalen dat in je url staat.

  1. <?php
  2. // kijken of er een id is geset en of id een getal is
  3. if(IsSet($_GET['editid']) && Is_Numeric($_GET['editid']))
  4. {
  5. // query aanmaken
  6. // let op: WHERE pid=$_GET['editid'];
  7. $query = "SELECT pid, datum, land, enemy, scorestatus, score, matchtype, competition, landcompetition FROM wars WHERE pid=".$_GET['editid'];
  8.  
  9. // kijken of hij uitgevoerd kan worden
  10. if(!$res = mysql_query($query))
  11. {
  12. // nee, er is een error
  13. echo "Kan de query niet uitvoeren!<br />";
  14. } else
  15. {
  16. // goed uitgevoerd
  17. // while loop
  18. while ($obj = mysql_fetch_object($res))
  19. {
  20. ?>
  21.  
  22. Hier staat het EDIT-Form.
  23.  
  24. <?php
  25. }
  26. // while afsluiten
  27. }
  28. }
  29. ?>


Tutorial: http://www.site...amp;id=117
Offline skillat - 27/10/2005 18:20 (laatste wijziging 27/10/2005 19:43)
Avatar van skillat Onbekend ok, bedankt

edit: nu verstuur ik het formulier naar editwar2.php
Alleen krijg ik deze error:
Parse error: parse error, unexpected T_VARIABLE in /home/sneldesign.com/www/phpshit/editwar2.php on line 47
Dit is lijn 47:
  1. mysql_query("UPDATE wars SET land='$land',enemy='$enemy',scorestatus='$scorestatus',score='$score',matchtype='$matchtype',competition='$competition',landcompetition='$landcompetition' WHERE pid="$_GET['editid']); or die (mysql_error());


Dat is dit bestand,
  1. <body>
  2. <?php
  3. // kijken of er wel gesubmit is
  4. if(isset($_POST['verzenden']))
  5. {
  6.  
  7. // als het vak enemy leeg is
  8. if(empty($enemy)) {
  9. echo "Geen enemy ingevuld. <br>";
  10. echo "<a href='warsadmin.php'>Klik hier</a> om terug te gaan."; }
  11. else {
  12.  
  13. // als het vak score leeg is
  14. if(empty($score)) {
  15. echo "Geen score ingevuld.";
  16. echo "<a href='warsadmin.php'>Klik hier</a> om terug te gaan. <br>"; }
  17. else {
  18.  
  19. $datum = addslashes($_POST['datum']);
  20. $datum = date("d-m-Y");
  21. $land = addslashes($_POST['land']);
  22. $enemy = addslashes($_POST['enemy']);
  23. $scorestatus = addslashes($_POST['scorestatus']);
  24. $score = addslashes($_POST['score']);
  25. $matchtype = addslashes($_POST['matchtype']);
  26. $competition = addslashes($_POST['competition']);
  27. $landcompetition = addslashes($_POST['landcompetition']);
  28.  
  29. mysql_query("UPDATE wars SET land='$land',enemy='$enemy',scorestatus='$scorestatus',score='$score',matchtype='$matchtype',competition='$competition',landcompetition='$landcompetition' WHERE pid="$_GET['editid']); or die (mysql_error());
  30.  
  31. echo 'War succesvol toegevoegd.<br>';
  32. echo 'Je wordt nu doorgestuurd naar de Admin pagina.';
  33. header('refresh: 2; url=admin.php');
  34.  
  35. }
  36. }
  37. }
  38. // else voor als er niet gesubmit is
  39. else { }
  40. ?>
  41.  
  42. </body>
  43. </html>
  44. <?php
  45. ?>
Offline Rens - 27/10/2005 19:45 (laatste wijziging 27/10/2005 19:45)
Avatar van Rens Gouden medaille

Crew algemeen
Nogal logisch he...
  1. <?PHP // even voor highlight
  2. // dan zie je de fout duidelijker
  3. mysql_query("UPDATE wars SET land='$land',enemy='$enemy',scorestatus='$scorestatus',score='$score',matchtype='$matchtype',competition='$competition',landcompetition='$landcompetition' WHERE pid="$_GET['editid']); or die (mysql_error());
  4. ?>

Als je een variabele erbij wil zetten en hem buiten quotes wilt halen, moet je de . (punt) erbij zetten.
  1. <?PHP // even voor highlight
  2. // dan zie je de fout duidelijker
  3. mysql_query("UPDATE wars SET land='".$land."',enemy='".$enemy."',scorestatus='".$scorestatus."',score='".$score."',matchtype='".$matchtype."',competition='".$competition."',landcompetition='".$landcompetition."' WHERE pid=".$_GET['editid']) or die (mysql_error());
  4. ?>

(ook meteen even de rest van je variabelen buiten quotes gehaald)

En er staat een ; teveel...
Offline skillat - 27/10/2005 20:00
Avatar van skillat Onbekend hmm, iets klopt niet.

Ik krijg nu 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
Offline Rens - 27/10/2005 20:02
Avatar van Rens Gouden medaille

Crew algemeen
Doe het eens zo:

  1. $sQuery = "UPDATE wars SET land='".$land."',enemy='".$enemy."',scorestatus='".$scorestatus."',score='".$score."',matchtype='".$matchtype."',competition='".$competition."',landcompetition='".$landcompetition."' WHERE pid=".$_GET['editid'];
  2. echo $sQuery;


Kijk eens wat je krijgt.
Kan best zijn dat je dan een foutje ziet...
Zo niet, plaats dan eens wat je krijgt hier...
Offline skillat - 27/10/2005 20:04 (laatste wijziging 27/10/2005 20:06)
Avatar van skillat Onbekend
Citaat:
UPDATE wars SET land='de',enemy='Mouseports',scorestatus='draw',score='12-12',matchtype='',competition='Cup',landcompetition='be' WHERE pid=

War succesvol geweizigd.
Je wordt nu doorgestuurd naar de Admin pagina.


- Waarom werkt het nu wel ?
Offline Rens - 27/10/2005 20:09
Avatar van Rens Gouden medaille

Crew algemeen
Het werkt nu ook niet hoor^^
Alleen nu word de query niet uitgevoerd, hij word alleen op het scherm gezet.
Dit is af en toe (nu bijvoorbeeld dus) makkelijk om een probleem op te lossen.

Kijk maar eens naar:
  1. WHERE pid=War succesvol geweizigd.

Dat "War succesvol geweizigd." is een bericht, en niet je ID van de war.
Zoals je ziet, is pid dus leeg, dus is $_GET['editid'] niet geset.
Ik gok erop dat je form action verkeerd staat.
Het zal nu staan op editwar.php.
Verander het eens in editwar.php?editid=$_GET['editid'].
Offline skillat - 27/10/2005 20:16
Avatar van skillat Onbekend Dat van, war succesvol geweizigd hoorde er nog onder, maar er stond geen enter tussen (<br>).

Ik heb het geweizigd, alleen krijg een error.
  1. <form method="post" action="<?php echo "editwar2.php?editid=$_GET"; ?>['editid']" name="editwar">


Citaat:
Parse error: parse error, unexpected $ in /home/sneldesign.com/www/phpshit/editwar.php on line 126
Offline Rens - 27/10/2005 20:18
Avatar van Rens Gouden medaille

Crew algemeen
  1. <form method="post" action="<?php echo "editwar2.php?editid=".$_GET['editid']; ?>" name="editwar">

Zo zal het beter werken...
Offline skillat - 27/10/2005 20:21 (laatste wijziging 27/10/2005 20:25)
Avatar van skillat Onbekend
Citaat:
Parse error: parse error, unexpected $ in /home/sneldesign.com/www/phpshit/editwar.php on line 126


125 is het einde van mn script.
Hier moet de fout zitten want eerst deed ie het gewoon.
  1. <form method="post" action="<?php echo "editwar2.php?editid=".$_GET['editid']; ?>" name="editwar">
Offline Rens - 27/10/2005 20:22 (laatste wijziging 27/10/2005 20:30)
Avatar van Rens Gouden medaille

Crew algemeen
Geef eens wat meer code dan...
Geef regel 120 t/m 130 eens (pas je vorige post even aan... onzinnig om daar een nieuwe post voor te maken).

Probeer het eens zo:

  1. <form method="post" action="<?php echo 'editwar2.php?editid='.$_GET['editid']; ?>" name="editwar">


En als het dan niet werkt geef je wat meer code^^

@Ultimatum: Ik zeg niet dat het niet kan, maar het lijkt me onwaarschijnlijk.
Meestal geeft ie (bij mij dan) unexpected end, en niet iets met een $ erin...
Offline Ultimatum - 27/10/2005 20:28
Avatar van Ultimatum PHP expert dan ben je wat } vergete, donder gwoon helemaal onderaan je script een }, als hij weer zeikt donder je er nog 1 net zo lang totdat hij het wel doet

of je telt eerst alle open tag ({) en dan zoveel (}) onderaan kwakken 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.308s