php/mysql: problem mit mysql query

Seite 1 von 2 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/php_mysql_problem_mit_mysql_query_125941/page_1 - zur Vollversion wechseln!


semteX schrieb am 30.09.2004 um 20:59

ich hab ein problem der kategorie: "den wald vor lauter bäumen nicht sehn".

Code: PHP
      $sql = "SELECT * FROM produkte WHERE prod_chcknumber='".$_SESSION["chcknumber"]."'";
      $res = mysql_query($sql);
      $num = mysql_num_rows();

ICH FIND IHN NED :(

fehler ist: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in

danke.

UPDATE: der fehler liegt am WHERE ....

wenn man das WHERE weglässt gibts keine probleme!

DB dump:
prod_id int(10) UNSIGNED Nein auto_increment
prod_bezeichnung varchar(100) Nein
prod_kuerzel varchar(10) Nein
prod_art varchar(255) Nein
prod_preis varchar(50) Nein
prod_chcknumber varchar(50) Nein


gerhardtt schrieb am 30.09.2004 um 21:24

mysql_num_rows($res)

grüsse


Hatzki schrieb am 30.09.2004 um 21:28

ähm könnts daran liegen das im mysql_num_rows() in der Klammer die Variable fehlt? :o

edit: ge0wnt! :D


semteX schrieb am 30.09.2004 um 21:35

nützt nix. selber fehler.


gerhardtt schrieb am 30.09.2004 um 21:38

Zitat von semteX
nützt nix. selber fehler.

$num = mysql_num_rows($res);

bring absolut den gleichen fehler???

edit: und füg bei der sql anfrage einen ";" ein.

grüsse


kleinerChemiker schrieb am 30.09.2004 um 21:39

sicher daß $_SESSION["chcknumber"] exisitert und auch nen wert hat?

ansonsten versuch mal bei prod_checknumber='' die ' wegzulassen


semteX schrieb am 30.09.2004 um 21:42

UPDATE: wenn ich das WHERE prod_chcknumber='...' weglass GEHT es!


$_SESSION["chcknumber"] HAT ne value!


kleinerChemiker schrieb am 30.09.2004 um 21:47

hast ein
echo $_SESSION["chcknumber"];
vorm $sql=... gemacht?

versuch mal eine chcknumber aus der db dir zu notieren und dann direkt einsetzen, also
$sql = "SELECT * FROM produkte WHERE prod_chcknumber='was_du_notiert_hast'";

ansonsten versuche mal mit/ohne ' bzw. "
oder füge abstände ein prod_chcknumber = ''


semteX schrieb am 30.09.2004 um 21:50

in der DB steht noch GAR KEINE checknumber. der zweck ist ja den eintrag zu verweigern falls die checknumber schon vorhanden ist.

die "geechote" query schaut so aus: SELECT * FROM produkte WHERE prod_chcknumber='8221.521109'


kleinerChemiker schrieb am 30.09.2004 um 21:53

wenn in der db nix steht, dann gibts kein ergebnis bei der query, ich glaub das wird so wie ein fehler behandelt, also als ungültige resource/keine resource.

MIK


gerhardtt schrieb am 30.09.2004 um 21:55

und welchen wert hat "chknumber"? sind magic_quotes ausgeschalten?

zum debuggen würd ich wirlich mal statt der $_SESSION['chknumber'] eine konstante zahl eingeben.


semteX schrieb am 30.09.2004 um 21:56

Zitat von kleinerChemiker
wenn in der db nix steht, dann gibts kein ergebnis bei der query, ich glaub das wird so wie ein fehler behandelt, also als ungültige resource/keine resource.

MIK

mhm. also mal die db vorsorglin mit default werden füllen

edit: des macht ja keinen sinn.. nur weil prod_chcknumber leer ist...


gerhardtt schrieb am 30.09.2004 um 21:58

schau dir mal an obs einen mysql_error gibt:

$res = mysql_query($sql) or die(mysql_error());


semteX schrieb am 30.09.2004 um 21:58

die fehlerzeile ist immer die mit dem mysql_num_result


kleinerChemiker schrieb am 30.09.2004 um 22:00

defaultwerte werden nichts bringen. wenn er keine zeile findet, die dein where erfüllt, hat er nix zum zurückschicken -> supplied argument is not a valid MySQL result resource




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025