login  Naam:   Wachtwoord: 
Registreer je!
 Forum

GET id (Opgelost)

Offline IndexS - 17/12/2008 00:12 (laatste wijziging 17/12/2008 00:39)
Avatar van IndexSMySQL interesse Ik wil een nieuwe prijs in de database zetten en dat koppelen aan de id van de klant. Dit id staat ook in de url. Tot nu toe lukte het steeds met $_GET['id'] om zo de id te krijgen. Maar in me query lukt het me niet om één of andere redenen. Waarschijnlijk zie ik iets stoms over het hoofd, maar ik weet het ff niet meer. Wie kan me helpen???

  1. include "config.php";
  2.  
  3. $id = $_GET['id'];
  4.  
  5. if ($_POST['submit'])
  6. {
  7. if(isset($_POST['nieuw_prijs']))
  8. {
  9. $query = "UPDATE tabel SET prijs= '".$_POST['nieuw_prijs']."' WHERE id= ???? ";
  10. $sql = mysql_query($query) or die(mysql_error() );
  11. echo "Nieuwe prijs is: " . $_POST['nieuw_prijs'];
  12. }
  13. else
  14. {
  15. echo "U heeft niets ingevuld";
  16. }
  17. }

16 antwoorden

Gesponsorde links
Offline Wim - 17/12/2008 00:20
Avatar van Wim Crew algemeen en met welke reden gebruik je in een gewone query ??? ipv $_GET['id'] of $id in uw geval?
Offline IndexS - 17/12/2008 00:28
Avatar van IndexS MySQL interesse Die ??? heb ik er neer gezet omdat daar de oplossing moet komen. Ik heb $_GET['id'] en $id geprobeerd, maar dan pakt ie het niet. Er wordt dan niks veranderd.
Offline Abbas - 17/12/2008 00:40
Avatar van Abbas Gouden medaille

Crew .NET
Doe dan eens eerst een echo van je $_GET["id"] om te kijken of die niet leeg is! 
Offline IndexS - 17/12/2008 01:00
Avatar van IndexS MySQL interesse Heb ik gedaan en dan geeft ie gewoon netjes de id van de klant weer.
Offline Abbas - 17/12/2008 01:08 (laatste wijziging 17/12/2008 01:09)
Avatar van Abbas Gouden medaille

Crew .NET
Doe eens:

  1. $query = "UPDATE tabel SET prijs= '".$_POST['nieuw_prijs']."' WHERE id= '".$_GET["id"]."' ";
  2. echo $query;

En zie eens wat dat als resultaat geeft. En deze regel:

  1. $sql = mysql_query($query) or die(mysql_error() );

mag je volgens mij vervangen door:

  1. mysql_query($query) or die(mysql_error() );

Offline IndexS - 17/12/2008 01:18 (laatste wijziging 17/12/2008 01:19)
Avatar van IndexS MySQL interesse Dit is de uitkomst:
UPDATE klantkaart SET punten= '111' WHERE id= ''

De id wordt dus niet gepakt.

Wat ik nu heb is het volgende. Ik zoek op een naam en de resultaten worden weer gegeven. De naam wordt een link zoals onderstaande

localhost/klantenkaart/?page=formulier&id=2

Als je de link opent dan komt de pagina waar de code uit het eerste bericht in staat. De pagina waar je dus de prijzen kunt veranderen. Als ik in de query een getal als id opgeef, zoals bijvoorbeeld 2 dan veranderd ie wel de prijs.
Offline Abbas - 17/12/2008 01:20
Avatar van Abbas Gouden medaille

Crew .NET
  1. $query = "UPDATE tabel SET prijs= '".$_POST['nieuw_prijs']."' WHERE id= ".$_GET["id"]." ";


Notice dat de single quotes op het einde van de query er niet meer zijn. 
Offline IndexS - 17/12/2008 09:27
Avatar van IndexS MySQL interesse UPDATE tabel SET prijs= '198' WHERE id=

Dat is wat ik dan krijg 
Offline zointer - 17/12/2008 09:49
Avatar van zointer HTML gevorderde Hmm raar, klopt je link wel?
Als je vb ?page=formulier&id=2 hebt zal het niet werken en krijg je een lege id.
Offline Abbas - 17/12/2008 09:50 (laatste wijziging 17/12/2008 09:50)
Avatar van Abbas Gouden medaille

Crew .NET
Jah, dan zal er toch iets mis gaan met je $_GET['id']..
Offline IndexS - 17/12/2008 10:21
Avatar van IndexS MySQL interesse klantenkaart/?page=formulier&id=2

dit is een url bijvoorbeeld.
Offline Koen - 17/12/2008 10:31
Avatar van Koen PHP expert
  1. include "config.php";
  2.  
  3. $id = intval($_GET['id']);
  4.  
  5. if ($_POST['submit'])
  6. {
  7. if(isset($_POST['nieuw_prijs']))
  8. {
  9. $query = "UPDATE `tabel` SET `prijs` = '".$_POST['nieuw_prijs']."' WHERE `id` = ".$id;
  10. mysql_query($query) or die(mysql_error());
  11. echo "Nieuwe prijs is: " . $_POST['nieuw_prijs'];
  12. }
  13. else
  14. {
  15. echo "U heeft niets ingevuld";
  16. }
  17. }


En zo dan?
Offline IndexS - 17/12/2008 15:29 (laatste wijziging 17/12/2008 15:32)
Avatar van IndexS MySQL interesse
  1. <?php
  2. include "config.php";
  3.  
  4. $id = intval($_GET['id']);
  5.  
  6. echo $id;
  7.  
  8. if ($_POST['submit'])
  9. {
  10.  
  11. if(isset($_POST['nieuw_prijs']))
  12. {
  13. $query = "UPDATE klantkaart SET prijs = '".$_POST['nieuw_prijs']."' WHERE id='$id' ";
  14. mysql_query($query) or die(mysql_error());
  15. echo $query;
  16.  
  17. echo $id;
  18.  
  19. }
  20. else
  21. {
  22. echo "U heeft niets ingevuld";
  23. }
  24. }
  25.  
  26. else
  27. {
  28. ?>
  29.  
  30. <form name="wijzig_prijs" action="formulier.php" method="post">
  31. Nieuw prijs:
  32. <input type="text" name="nieuw_prijs" />
  33. <input type="submit" name="submit" value="Wijzigen" />
  34. </form>
  35. <?php
  36. }
  37. ?>


Dit is de hele code op de pagina. Als ik via de zoekmachine een gevonden klant aanklik dan wordt de pagina goed weergegeven. Ik zie de juiste id die bij de klant hoort en ik kan een nieuwe prijs invoeren. Als ik op de wijzig knop druk dan is dit het resultaat:

0
UPDATE klantkaart SET punten = '25' WHERE id='0'
0

De 3 nullen zijn echo's van de id. Voordat ik op de knop druk wordt er nog wel het goed id gezien.
Offline Martijn - 17/12/2008 15:54
Avatar van Martijn Crew PHP ik heb het topic niet echt gevolg, maar ik denk zomaar dat dat komt omdat de pagina opnieuw laad (wat namelijk gebeurd als je de submit drukt) en dan issie zn waarde kwijt. Wat zou kunnen is dat je een hidden field met de value van je id maakt, en dan niet op het id zoekt, maar de value van dat hidden field 
Offline zointer - 17/12/2008 15:56 (laatste wijziging 17/12/2008 16:01)
Avatar van zointer HTML gevorderde Zoals ik al eerder zei klopt je link niet, de form action moet zijn formulier.php?page=formulier&id=<?= $id; ?>


  1. <?php
  2. include "config.php";
  3.  
  4. $id = $_GET['id'];
  5.  
  6. echo $id;
  7.  
  8. if ($_POST['submit'])
  9. {
  10.  
  11. if(isset($_POST['nieuw_prijs']))
  12. {
  13. $query = "UPDATE klantkaart SET prijs = '".$_POST['nieuw_prijs']."' WHERE id='".$id."' ";/*variabelen buiten de quotes houden - id='".$id."' - ;-) */
  14.  
  15. echo $query;
  16.  
  17. echo $id;
  18.  
  19. }
  20. else
  21. {
  22. echo "U heeft niets ingevuld";
  23. }
  24. }
  25.  
  26. else
  27. {
  28. ?>
  29. <!--form actie aangepast-->
  30. <form name="wijzig_prijs" action="formulier.php?page=formulier&id=<?= $id; ?>" method="post">
  31. Nieuw prijs:
  32. <input type="text" name="nieuw_prijs" />
  33. <input type="submit" name="submit" value="Wijzigen" />
  34. </form>
  35. <?php
  36. }
  37. ?>


Edit: waar haal jij je id vandaan, Via een ander link?
Kan zijn dat je formulier.php mag weg laten weet niet hoe je systeem werkt 
Offline IndexS - 17/12/2008 16:39
Avatar van IndexS MySQL interesse @zointer

Je had helemaal gelijk. Ik zat steeds te kijken naar de url die deze pagina aanroept.  
Onderstaande link werkt. En formulier.php mag idd weg blijven 

  1. echo "<form name=\"wijzig_prijs\" action=\"?page=formulier&id=$id\" method=\"post\">";


Allemaal super bedankt voor de reacties   
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.501s