login  Naam:   Wachtwoord: 
Registreer je!
 Forum

foutmelding mysql_num_rows

Offline farida - 22/07/2009 21:28 (laatste wijziging 22/07/2009 21:29)
Avatar van faridaNieuw lid Ik heb een script waar men een bod in kan voeren. Ik wil dat als men het bod invoert en verzend, dat bij het invoeren in de database het bod de juiste advertentie_id krijgt.

in tabel 'advertentie', zit kolom advertentie_id en in tabel 'Bod' zit ook een kolom advertentie_id.


Kan iemand mij helpen? Alvast bedankt.

Ik krijg de volgende foutmelding:
  1. mysql_num_rows(): supplied argument is not a valid MySQL result resource (regel 34)


dit is regel 34:
  1. <?php
  2. for ($i=0;$i<mysql_num_rows($resultaat0);$i++)
  3. ?>


complete script zie hieronder:
  1. <?php
  2. if(empty($_POST['bod']) || empty($_POST['to'])) {
  3. // laat de error zien
  4. echo "U heeft niet alle velden ingevuld.<br /><br />";
  5. // verlaat decode.
  6. }
  7.  
  8. $sql0 = "SELECT * FROM advertentie";
  9. $resultaat0 = mysql_query($sql0);
  10. for ($i=0;$i<mysql_num_rows($resultaat0);$i++)
  11. {
  12. $dbinfo=mysql_fetch_array($resultaat0);
  13. echo "<input type='hidden' name='advertentie_id' value='".$dbinfo['advertentie_id']."'>";
  14.  
  15.  
  16.  
  17.  
  18. $id=$dbinfo['advertentie_id'];
  19. $bod=mysql_real_escape_string($_POST['bod']);
  20. $email=mysql_real_escape_string($_POST['to']);
  21. $naam=mysql_real_escape_string($_POST['naam']);
  22.  
  23. $query = "INSERT INTO bod (bod_bod, bod_email, bod_naam, advertentie_id, bod_datum) VALUES ('$bod','$email','$naam','$id',CURDATE() WHERE advertentie_id=".$dbinfo['advertentie_id'].")";
  24. // SQL query verwerken in database.
  25. $result = mysql_query($query);
  26. //als SQL query niet juist is, laat error zien.
  27.  
  28. if(!$result)
  29. {
  30. echo "bod is niet toegevoegd, neem contact op met de webmaster. " . mysql_error();
  31. } else
  32. {
  33. echo "bod is toegevoegd";
  34. }
  35.  
  36. }
  37.  
  38. ?>

10 antwoorden

Gesponsorde links
Offline avdg - 22/07/2009 21:35 (laatste wijziging 22/07/2009 21:42)
Avatar van avdg PHP gevorderde opnieuw: gebruik het resultaat van mysql_query  

o, ik was te rap 
kijk best na of dat mysql_query geen false doorgaf
Offline Martijn - 22/07/2009 22:00
Avatar van Martijn Crew PHP doe dit is:
  1. $resultaat0 = mysql_query($sql0) or die(mysql_error());
Offline farida - 22/07/2009 22:01
Avatar van farida Nieuw lid
avdg schreef:
kijk best na of dat mysql_query geen false doorgaf


wat bedoel je precies?
Offline Martijn - 22/07/2009 22:05
Avatar van Martijn Crew PHP probeer is mijn zin. Ik weet 99% zeker dat er iets mis is met je query, die fout geeft namelijk dat $resultaat0 niet de juiste waarde heeft, en die word maar op 1 punt gedefineerd
Offline avdg - 22/07/2009 22:06
Avatar van avdg PHP gevorderde
  1. if($resultaat === false){
  2. //mysql_query gaf false door
  3. }


ma devioursoul's code zal wel werken 
Offline Martijn - 22/07/2009 22:15
Avatar van Martijn Crew PHP je kunt wel kijken of ie false is, maar daar kom je geen drol mee verder, want je weet niet waarom ie false is. Met mijn regeltje krijg je een melding ipv een bevestiging dat ie false is, want dat kan ik je zo ook wel vertelen
Offline farida - 22/07/2009 22:19
Avatar van farida Nieuw lid
DeviourSoul schreef:
probeer is mijn zin. Ik weet 99% zeker dat er iets mis is met je query, die fout geeft namelijk dat $resultaat0 niet de juiste waarde heeft, en die word maar op 1 punt gedefineerd


Mijn query klopt niet.
foutmelding: Notice: Undefined index: advertentie_id in
Offline Martijn - 22/07/2009 22:39
Avatar van Martijn Crew PHP dat is iig niet van mijn code. Als je met mijn code geen error krijgt, is je query goed. Dit betekent gewoon dat je $var geen waarde heeft
Offline farida - 23/07/2009 21:46 (laatste wijziging 23/07/2009 21:49)
Avatar van farida Nieuw lid Hallo DeviourSoul.

Nee ik krijg geen foutmelding met de query zoals jij hem hebt geschreven. Alleen de notice.

Weet je zo hoe ik er voor kan zorgen dat de variabelen wel een waarde heeft. ik dacht namelijk dat ik het zo goed had gedaan,.

gr.
Offline snxs - 24/07/2009 04:28 (laatste wijziging 24/07/2009 04:38)
Avatar van snxs Nieuw lid PHP.net: mysql_now_rows werkt alleen wanneer er minimaal 1 result is. (1 geaffecteerde rij) Anders is de query namelijk 'false', en heb je geen goede resource voor die functie.

Van de pagina van PHP.net: mysql_query:
Citaat:
For SELECT, SHOW, DESCRIBE, EXPLAIN and other statements returning resultset, mysql_query() returns a resource on success, or FALSE on error.


Van te voren altijd even controleren of een query niet 'false' is, dan doorgaan met je code. Want alle mysql functies waar een query in moet hebben allemaal een resultset nodig. Een 'false' is volledig nutteloos. Zoals je misschien wel zou snappen.

Je hebt in de tussentijd denk ik wat toegegoed aan je advertentie tabel.

Maar goed, nu verder met het debuggen van de rest:

Boven deze regel:
  1. #
  2. echo "<input type='hidden' name='advertentie_id' value='".$dbinfo['advertentie_id']."'>";


Plaats deze code:
  1. echo "<pre>";
  2. print_r($dbinfo);
  3. echo "</pre>";


Kun je die print even hier plaatsen? Het lijkt er op dat de key advertentie_id helemaal niet bestaat.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.224s