login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Markt Probleem (Opgelost)

Offline ArcanA - 31/08/2007 20:29 (laatste wijziging 31/08/2007 22:39)
Avatar van ArcanAPHP beginner Hallo,
Ik ben een markt aan het maken maar ik heb een probleem:
Als ik de hond gekogt hebt gaat er helemaal geen geld af.(opgelost)
en de verkoper krijgt zijn geld niet (nogniet opgelost)
Er komt ook geen geld bij de verkoper bij.
Wie kan me helpen?

  1. <?php
  2. // Maak verbinding met server
  3. include("includes/db-connect.php");
  4. // Selecteer database
  5. mysql_select_db("desite");
  6. // Selecteer tabel + query
  7. $query = "SELECT id, prijs, manier FROM honden WHERE id = '".$_GET['id']."'";
  8. // Resultaat
  9. $resultaat = mysql_query($query) or die (mysql_error());
  10. while ($obj = mysql_fetch_object($resultaat)) {
  11. if($obj->manier == "bieden") {
  12. echo "Je kunt deze hond niet direct kopen, je kunt <a href=\"index.php?pagina=bieden&amp;id=".$_GET['id']."\">hier</a> wel een bod uitbrengen.";
  13. } else {
  14. $query = "UPDATE gebruikers SET geld=geld - ".$obj->prijs." WHERE gebruikersnaam='".$_SESSION['gebruikersnaam']."'";
  15. $Sql = mysql_query ($query) or die (mysql_error ()); // 1ste Maal
  16. $query = "UPDATE honden SET eigenaar = '".$_SESSION['gebruikersnaam']."', tekoop = '0' WHERE id = '".$obj->id."'";
  17. $Sql = mysql_query ($query) or die (mysql_error ()); // 2de Maal
  18. echo "Je bent nu succesvol eigenaar geworden van deze hond";
  19. }
  20. }
  21. ?>

19 antwoorden

Gesponsorde links
Offline Chupskie - 31/08/2007 20:42
Avatar van Chupskie MySQL beginner Je voert je query helemaal niet goed uit, bij update
  1. mysql_query or die($query.'<br />'.mysql_error());


Maak die query eens hetzelfe als je bovestaande query uitvoert:
  1. $resultaat = mysql_query($query) or die (mysql_error());


En ik zou voor elke query een andere naam kiezen dus: query1, query2. En zo verder. Zo kun je dus per query zien wat er mis gaat.

Succes
Offline DenMette - 31/08/2007 20:52
Avatar van DenMette PHP gevorderde Nu wil ik niets zeggen maar je moet 2 maal een mysql_query ($query) or die (mysql_error ()); doen hoor.

even je code wat aangepast
  1. <?php
  2. // Maak verbinding met server
  3. include("includes/db-connect.php");
  4. // Selecteer database
  5. mysql_select_db("desite");
  6. // Selecteer tabel + query
  7. $query = "SELECT id, prijs, manier FROM honden WHERE id = '".$_GET['id']."'";
  8. // Resultaat
  9. $resultaat = mysql_query($query) or die (mysql_error());
  10.  
  11. while ($obj = mysql_fetch_object($resultaat)) {
  12. if($obj->manier == "bieden") {
  13. echo "Je kunt deze hond niet direct kopen, je kunt <a href=\"index.php?pagina=bieden&amp;id=".$_GET['id']."\">hier</a> wel een bod uitbrengen.";
  14. } else {
  15. $query = "UPDATE gebruikers SET geld=geld - ".$obj->prijs." WHERE gebruikersnaam='".$_SESSION['gebruikersnaam']."'";
  16. $Sql = mysql_query ($query) or die (mysql_error ()); // 1ste Maal
  17. $query = "UPDATE honden SET eigenaar = '".$_SESSION['gebruikersnaam']."', tekoop = '0' WHERE id = '".$obj->id."'";
  18. $Sql = mysql_query ($query) or die (mysql_error ()); // 2de Maal
  19. echo "Je bent nu succesvol eigenaar geworden van deze hond";
  20. }
  21. }
  22. ?>


Als ik van jou was zou ik eerst ook eens een tut bekijken van hoe vorm ik mijn mysql_query ();.
Offline ArcanA - 31/08/2007 20:53 (laatste wijziging 31/08/2007 21:11)
Avatar van ArcanA PHP beginner Denmette:

Hij werkt Erg bedankt!!
Het geld gaat van de koper af, maar het gaat nog altijd niet naar de verkoper. Maar ziet er wel logish uit, enig idee hoe ik dat doe? Nogmaals bedankt!  

ArcanA
Offline Simon - 31/08/2007 21:25
Avatar van Simon PHP expert "UPDATE gebruikers SET geld=geld + ".$obj->prijs." WHERE gebruikersnaam='".$obj->verkoper."'";
Offline ArcanA - 31/08/2007 21:43
Avatar van ArcanA PHP beginner Het wilt niet lukken, omg ik ben egt noob. :S

moet je die verkoper veranderen in eigenaar dan?

  1. --
  2. -- Tabel structuur voor tabel `honden`
  3. --
  4.  
  5. CREATE TABLE `honden` (
  6. `id` int(11) NOT NULL AUTO_INCREMENT,
  7. `ras` varchar(30) NOT NULL DEFAULT '',
  8. `geslacht` varchar(4) NOT NULL DEFAULT '',
  9. `naam` varchar(20) NOT NULL DEFAULT '',
  10. `tekoop` char(1) NOT NULL DEFAULT '',
  11. `prijs` varchar(10) NOT NULL DEFAULT '',
  12. `manier` varchar(7) NOT NULL DEFAULT '',
  13. `foto` BINARY(3) NOT NULL DEFAULT '\0\0\0',
  14. `eigenaar` varchar(20) NOT NULL DEFAULT '',
  15. `geboortedatum` varchar(14) NOT NULL DEFAULT '',
  16. PRIMARY KEY (`id`),
  17. FULLTEXT KEY `ras` (`ras`)
  18. ) ENGINE=MyISAM AUTO_INCREMENT=1118 DEFAULT CHARSET=latin1 AUTO_INCREMENT=1118 ;


ArcanA
Offline DenMette - 31/08/2007 22:16
Avatar van DenMette PHP gevorderde Waarom gebruik je eigenlijk een while lus?
Ik geloof toch dat je maar 1 bepaalde rij uit de database neemt.
Ik zal er snel nog eens naar kijken.
Offline ArcanA - 31/08/2007 22:18
Avatar van ArcanA PHP beginner Bedankt 
Dan kan ik aan het volgende beginnen want ik ben al telang aan die markt bezig 

ArcanA
Offline DenMette - 31/08/2007 22:26
Avatar van DenMette PHP gevorderde He,
  1. <?php
  2. // Maak verbinding met server
  3. include("includes/db-connect.php");
  4. // Selecteer database
  5. mysql_select_db("desite");
  6. // Selecteer tabel + query
  7. $query = "SELECT id, prijs, manier FROM honden WHERE id = '".$_GET['id']."'";
  8. // Resultaat
  9. $resultaat = mysql_query($query) or die (mysql_error());
  10. // Ophalen van gegevens
  11. $obj = mysql_fetch_object($resultaat);
  12.  
  13. // Update
  14. if ($obj->manier == "bieden") {
  15. echo "Je kunt deze hond niet direct kopen, je kunt <a href='index.php?pagina=bieden&amp;id=".$_GET['id']."'>hier</a> wel een bod uitbrengen.";
  16. } else {
  17. $query = "UPDATE gebruikers SET geld=geld - ".$obj->prijs." WHERE gebruikersnaam='".$_SESSION['gebruikersnaam']."'";
  18. $Sql = mysql_query ($query) or die (mysql_error ()); // 1ste Maal
  19. $query = "UPDATE honden SET eigenaar = '".$_SESSION['gebruikersnaam']."', tekoop = '0' WHERE id = '".$_GET['id']."'";
  20. $Sql = mysql_query ($query) or die (mysql_error ()); // 2de Maal
  21. if (mysql_num_rows ($Sql) >= 1)
  22. echo "Je bent nu succesvol eigenaar geworden van deze hond";
  23. else
  24. echo "Niet gelukt";
  25. }
  26. ?>


Laat dit even lopen en zeg eens wat je krijgt.
Offline ArcanA - 31/08/2007 22:29 (laatste wijziging 31/08/2007 22:31)
Avatar van ArcanA PHP beginner Oke secontje.


edit:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/vhosts/hondencity.eu/httpdocs/spel/paginas/kopen.php on line 21
Niet gelukt

Alles ervoor was goed hoor, er moest enkel nog bij dat de verkoper zijn geld ook moest krijgen. Want dat stond nog niet in het script.

ArcanA
Offline DenMette - 31/08/2007 22:31 (laatste wijziging 31/08/2007 22:32)
Avatar van DenMette PHP gevorderde
  1. <?php
  2. // Maak verbinding met server
  3. include("includes/db-connect.php");
  4. // Selecteer database
  5. mysql_select_db("desite");
  6. // Selecteer tabel + query
  7. $query = "SELECT id, prijs, manier FROM honden WHERE id = '".$_GET['id']."'";
  8. // Resultaat
  9. $resultaat = mysql_query($query) or die (mysql_error());
  10. // Ophalen van gegevens
  11. $obj = mysql_fetch_object($resultaat);
  12.  
  13. // Update
  14. if ($obj->manier == "bieden") {
  15. echo "Je kunt deze hond niet direct kopen, je kunt <a href='index.php?pagina=bieden&amp;id=".$_GET['id']."'>hier</a> wel een bod uitbrengen.";
  16. } else {
  17. $query = "UPDATE gebruikers SET geld=geld - ".$obj->prijs." WHERE gebruikersnaam='".$_SESSION['gebruikersnaam']."'";
  18. $Sql = mysql_query ($query) or die (mysql_error ()); // 1ste Maal
  19. $que = "UPDATE honden SET eigenaar = '".$_SESSION['gebruikersnaam']."', tekoop = '0' WHERE id = '".$_GET['id']."'";
  20. $Sql_1 = mysql_query ($que) or die (mysql_error ()); // 2de Maal
  21. if (mysql_num_rows ($Sql_1) >= 1)
  22. echo "Je bent nu succesvol eigenaar geworden van deze hond";
  23. else
  24. echo "Niet gelukt";
  25. }
  26. ?>
Ik denk dat het ligt aan de laatste query die klopt ergens niet maar dat is een SQL fout. Het kan goed liggen aan een domme iets. maar dan zou je al lang de error hebben kunne zeggen.

Probeer ook zelf te zoeken.
Offline ArcanA - 31/08/2007 22:32 (laatste wijziging 31/08/2007 22:34)
Avatar van ArcanA PHP beginner Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/vhosts/hondencity.eu/httpdocs/spel/paginas/kopen.php on line 21
Niet gelukt


dit..

Maar ligt het niet hier aan?

if (mysql_num_rows ($Sql_1) >= 1)
Offline DenMette - 31/08/2007 22:35 (laatste wijziging 31/08/2007 22:42)
Avatar van DenMette PHP gevorderde nee want dan zou het sowiso geupdate moeten zijn het ligt aan je SQL
  1. <?php
  2. $Sql_1 = mysql_query ($que) or die (mysql_error ());
  3. echo $Sql_1;
  4. ?>
en zeg dan wat je terug krijgt

ArcanA,
Als alles wordt geupdatekan je die mysql_num_rows () weg halen nu wordt hij enkel gebruikt om de fout te zoeken.

De fout ligt in je SQL, deze moet je zelf zoeken er is iets dat niet klopt maar wat dat weet ik niet. het kan goed zijn dat de fout al eerder gebeurd is.
Offline ArcanA - 31/08/2007 22:41
Avatar van ArcanA PHP beginner Parse error: syntax error, unexpected T_ELSE in /home/vhosts/hondencity.eu/httpdocs/spel/paginas/kopen.php on line 23
Offline DenMette - 31/08/2007 22:43
Avatar van DenMette PHP gevorderde waar heb je die echo $Sql_1 geplaatst?
die moet gwn vlak inder de mysql_query staan he zo als ik het daar gaf
Offline ArcanA - 31/08/2007 22:45
Avatar van ArcanA PHP beginner
  1. <?php
  2. // Maak verbinding met server
  3. include("includes/db-connect.php");
  4. // Selecteer database
  5. mysql_select_db("desite");
  6. // Selecteer tabel + query
  7. $query = "SELECT id, prijs, manier FROM honden WHERE id = '".$_GET['id']."'";
  8. // Resultaat
  9. $resultaat = mysql_query($query) or die (mysql_error());
  10. // Ophalen van gegevens
  11. $obj = mysql_fetch_object($resultaat);
  12.  
  13. // Update
  14. if ($obj->manier == "bieden") {
  15. echo "Je kunt deze hond niet direct kopen, je kunt <a href='index.php?pagina=bieden&amp;id=".$_GET['id']."'>hier</a> wel een bod uitbrengen.";
  16. } else {
  17. $query = "UPDATE gebruikers SET geld=geld - ".$obj->prijs." WHERE gebruikersnaam='".$_SESSION['gebruikersnaam']."'";
  18. $Sql = mysql_query ($query) or die (mysql_error ()); // 1ste Maal
  19. $que = "UPDATE honden SET eigenaar = '".$_SESSION['gebruikersnaam']."', tekoop = '0' WHERE id = '".$_GET['id']."'";
  20. $Sql_1 = mysql_query ($que) or die (mysql_error ()); // 2de Maal
  21. echo $Sql_1;
  22. echo "Je bent nu succesvol eigenaar geworden van deze hond";
  23. else
  24. echo "Niet gelukt";
  25. }
  26. ?>



Maar wat is de bedoeling ervan?
Offline Simon - 31/08/2007 22:49 (laatste wijziging 31/08/2007 22:50)
Avatar van Simon PHP expert Hier een goeie code, met uitleg en dergelijke
  1. <?php
  2. // Maak verbinding met server
  3. include("includes/db-connect.php");
  4. // Selecteer database
  5. mysql_select_db("desite");
  6.  
  7. /* is er wel een hond gekozen? */
  8. if(isset($_GET['id']) && is_numeric($_GET['id'])) {
  9. $qHond = mysql_query("SELECT * FROM honden WHERE id = '".$_GET['id']."'") or die (mysql_error());
  10. /* controleer of de hond wel bestaat */
  11. if(mysql_num_rows($qHond) > 0) {
  12. /* fetch het resultaat met _assoc (liefst) */
  13. $fHond = mysql_fetch_assoc($qHond);
  14. if($fHond['manier'] == "bieden") {
  15. echo "Je kunt deze hond niet direct kopen, je kunt <a href=\"index.php?pagina=bieden&amp;id=".$_GET['id']."\">hier</a> wel een bod uitbrengen.";
  16. }
  17. else {
  18. /* update geld koper */
  19. $uKoper = mysql_query ("UPDATE gebruikers SET geld = geld - ".$fHond['prijs']." WHERE gebruikersnaam='".$_SESSION['gebruikersnaam']."'") or die ('Er ging iets fout bij het wijzigen van de database: <br />'.mysql_error ());
  20. /* update geld verkoper */
  21. $uVerkoper = mysql_query ("UPDATE gebruikers SET geld = geld + ".$fHond['prijs']." WHERE gebruikersnaam='".$fHond['eigenaar']."'") or die ('Er ging iets fout bij het wijzigen van de database: <br />'.mysql_error ());
  22. /* set nieuwe eigenaar */
  23. $Sql = mysql_query ("UPDATE honden SET eigenaar = '".$_SESSION['gebruikersnaam']."', tekoop = '0' WHERE id = '".$obj->id."'") or die ('Er ging iets fout bij het wijzigen van de database: <br />'. mysql_error ());
  24. /* display message */
  25. echo "Je bent nu succesvol eigenaar geworden van deze hond.";
  26. }
  27. }
  28. }
  29. else {
  30. echo 'Je moet wel een hond kiezen.';
  31. }
  32. ?>
Offline DenMette - 31/08/2007 22:52
Avatar van DenMette PHP gevorderde die IF mocht dus nog niet weg
de echo $Sql_1 kon mij verder uitleg geven waarom er niets gebeurde.

Als ik 1 vraag mag stellen:
- Hoelang ben je al bezig met PHP & MySql?

Als je nog niet lang bezig bent met MySql raad ik u aan om de tuts van Sima eens door te nemen van SQL.
Daar wordt je dan misschien iest wijzer van. Ik heb u die trouwens al eens aangeraden. Als je er al lang mee bezig bent oefen dan maar eerst wat vooralleer zo'n zaken te proberen. De fout zit in de $que. dit is een ongeldige SQL, maar dan ook weer niet. Je zult de fout zelf moeten zoeken we zullen hier allemaal te weinig info vinden.

Ik denk trouwens dat er te weinig info wordt upgedate en het kan zijn dat die hond al lang van jou is maar gwn nog niet duidelijk wordt weergegeven op de andere pagina. Ik hoop dus wel dat je de Database na kijkt en niet enkel de pagina waar je je honden koopt.

Groetjes DenMette
Offline ArcanA - 31/08/2007 22:54 (laatste wijziging 31/08/2007 22:55)
Avatar van ArcanA PHP beginner Het werkt, bedankt Simon! 

DenMette: jij bent ook heel erg bedankt voor de moeite!! 

Edit: At hierboven, ja ik heb me wrs belachelijk gemaakt, maar ik ga me een php boek kopen die ik ga doornemen als begin. Daarna gaik hier nog enkele tuts volgen.

ArcanA
Offline DenMette - 31/08/2007 22:55
Avatar van DenMette PHP gevorderde danku
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.299s