mysql_num_rows(): supplied argument is not a valid MySQL res


#1

Ik heb de database reeds enkele keren gedumpt. Het werkt alleen niet wanneer ik op nummer zoek :(.
de query SELECT * FROM white_phonenumber WHERE phone=‘003211801016’ rechtstreeks in phpmyadmin levert wel resultaat op?
de data klopt en er zit dus geen carriage return in.
ik gebruik:
PHP 5.1.2
MySQL 5.0.18
Apache 2.0.55
op een windows bak
ik heb ergens iets gelezen dat deze melding kan komen wanneer er geen verbinding is met de database maar wanneer de andere zoekopdrachten wel werken waarom deze dan niet. Bij zowel personen als bij bedrijven kan niet via nummer gezocht worden. :frowning:
Welke instelling op mijn machine staat niet goed, ik neem aan dat de code klopt en de dump correct is.


#2

Hoi Royk3,

Tip: Ga even met Megafoon zoeken op je MySQL database. Als je privat mail stuurt met mailadres dan stuur ik jou Megafoon.exe wel. Ik geloof dat de executable niet in de Foondump-distributie zit.

De vriendelijke groet Jan Marco


#3

Hi,

ook ik krijg de volgende foutmelding nadat ik de CDFoongids 2006 op juiste wijze gedumpt heb:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in E:\apachefriends\xampp\htdocs\foon\index.php on line 819
Geen vermeldingen gevonden.

Terwijl als ik op bv. op postcode, naam of woonplaats zoek, ik wel de query te zien krijg… ?

Ik gebruik PHP Version 5.1.4, maar ook Version 4.x geeft deze foutmelding met Apache 2.2.2 onder Xampp

alle querys onder PhpMyAdmin werken wel… wellicht dat er een mogelijke fout zit in de fs2005.php ??

Erg jammer, want de vorige versie van foondump 2004 werkte perfect en naar behoren.


#4

Hoi Aart,

Je bent niet overgegaan naar andere MySQL versie? Ik geloof niet dat dit de oorzaak zou kunnen zijn, echter ik weet dat nieuwere versie meer functies bezitten dan oudere versies.

Mogelijk tip, echter lijkt mij ook onwaarschijnlijk want het php script heeft toch wel gewerkt lijkt mij.

Ik kan mij nog herinneren dat mysql_num_rows() bij mij vroeger niet werkte als je de results niet stored. Als ik vaak mysql_num_rows() ging aanroepen m.b.v mysql_use_result() crashte het zelfs.

Lees ook: http://dev.mysql.com/doc/refman/5.1/en/mysql-num-rows.html

The use of mysql_num_rows() depends on whether you use mysql_store_result() or mysql_use_result() to return the result set. If you use mysql_store_result(), mysql_num_rows() may be called immediately. If you use mysql_use_result(), mysql_num_rows() does not return the correct value until all the rows in the result set have been retrieved.

De vriendelijke groet Jan Marco


#5

[quote=“alkema_jm”]Hoi Aart,

Je bent niet overgegaan naar andere MySQL versie? Ik geloof niet dat dit de oorzaak zou kunnen zijn, echter ik weet dat nieuwere versie meer functies bezitten dan oudere versies.

Mogelijk tip, echter lijkt mij ook onwaarschijnlijk want het php script heeft toch wel gewerkt lijkt mij.

Ik kan mij nog herinneren dat mysql_num_rows() bij mij vroeger niet werkte als je de results niet stored. Als ik vaak mysql_num_rows() ging aanroepen m.b.v mysql_use_result() crashte het zelfs.

Lees ook: http://dev.mysql.com/doc/refman/5.1/en/mysql-num-rows.html

The use of mysql_num_rows() depends on whether you use mysql_store_result() or mysql_use_result() to return the result set. If you use mysql_store_result(), mysql_num_rows() may be called immediately. If you use mysql_use_result(), mysql_num_rows() does not return the correct value until all the rows in the result set have been retrieved.[/quote]

Het gaat niet om de mysql functie mysql_num_rows(), maar om de php functie mysql_num_rows(resource result).
Ik heb fs2005.php bekeken en mysql_num_rows() krijgt de return value van mysql_query als parameter. Dat is of een result resource, die mysql_num_rows() verwacht, of FALSE als er iets mis gaat met mysql_query, wat er dus blijkbaar gebeurt.
Om te zien wat er precies mis gaat met mysql_query moet je op regel 816 even “OR die(mysql_error())” toevoegen voor de ;.


#6

Hoi Xim,

Bedankt Xim, Erg bedankt voor de aanvulling --)

De vriendelijke groet Jan Marco


#7

dankje, maar we zijn er nog niet. Die wijziging die ik aangaf lost het probleem nog niet op. Het maakt het debuggen alleen wat makkelijker.


#8

[quote=“alkema_jm”]Hoi Aart,

Je bent niet overgegaan naar andere MySQL versie? Ik geloof niet dat dit de oorzaak zou kunnen zijn, echter ik weet dat nieuwere versie meer functies bezitten dan oudere versies.

[/quote]

De versie van MySQL 5.0.21 die ik draaide is dus in dit geval de boosdoender waar fs2005.php bij het zoeken op telefoonnummer de mist in gaat.
Heb nu even een oude versie uit de kast gehaald van Xampp met MySQL 4.20 en zie daar: alles is gewoon zoals’t moet werken ! ?

Maar goed … 't zou toch beter zijn als het ook onder de nieuwere versie van MySQL 5.0.21 zou kunnen werken…
… en ik zie dat er toch al weer wat mensen zijn die zich hiermee bezig houden ! Mijn dank daarvoor…


#9

Hoi Aart,

Het zou eigenlijk de bedoeling moeten zijn dat jij de tip van Xim in de php source zou zetten bij MySQL 5.0.21. Je kan dan zien wat er fout gaat. En daar hebben andere Foondump gebruikers natuurlijk weer wat aan.

De vriendelijke groet Jan Marco


#10

Ik kwam dit tegen na lang zoeken…:

with MySQL 5.0 the processing of sql join queries was changed to follow the standards more strictly. As a result, queries that ran fine before MySQL 5.0.12 now give this 1054 - Unknown column ‘xxx’ in ‘on clause’

dus !

regel 679 moet als volgt veranderd worden in de fs2005.php

		$fromclause .= ",".$color."_phonenumber ";

moet zijn:

[b]$fromclause .= " JOIN ".$color."_phonenumber ";[/b]

… wellicht kan de maker van de .php file dit gelijk meenemen in de eerstvolgende download ?

bij voorbaat dank voor jullie help, want ook dat helpt om zelf verder te zoeken !

vr. gr. Aart

en… eh… oh ja… maar natuurlijk had ik die Tip opgevolgd en zodoende ben ik ook verder gekomen !