"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

php/mysql: problem mit mysql query

semteX 30.09.2004 - 20:59 1126 21
Posts

semteX

begehrt die rostschaufel
Avatar
Registered: Oct 2002
Location: Pre
Posts: 14594
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
Bearbeitet von semteX am 01.10.2004, 12:28

gerhardtt

Big d00d
Registered: Aug 2000
Location:
Posts: 333
mysql_num_rows($res)

grüsse

Hatzki

Pinky in action
Avatar
Registered: Apr 2000
Location: Dort wo DU nicht..
Posts: 1017
ähm könnts daran liegen das im mysql_num_rows() in der Klammer die Variable fehlt? :o

edit: ge0wnt! :D

semteX

begehrt die rostschaufel
Avatar
Registered: Oct 2002
Location: Pre
Posts: 14594
nützt nix. selber fehler.

gerhardtt

Big d00d
Registered: Aug 2000
Location:
Posts: 333
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

Here to stay
Avatar
Registered: Feb 2002
Location: Wien
Posts: 4282
sicher daß $_SESSION["chcknumber"] exisitert und auch nen wert hat?

ansonsten versuch mal bei prod_checknumber='' die ' wegzulassen

semteX

begehrt die rostschaufel
Avatar
Registered: Oct 2002
Location: Pre
Posts: 14594
UPDATE: wenn ich das WHERE prod_chcknumber='...' weglass GEHT es!


$_SESSION["chcknumber"] HAT ne value!

kleinerChemiker

Here to stay
Avatar
Registered: Feb 2002
Location: Wien
Posts: 4282
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

begehrt die rostschaufel
Avatar
Registered: Oct 2002
Location: Pre
Posts: 14594
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

Here to stay
Avatar
Registered: Feb 2002
Location: Wien
Posts: 4282
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

Big d00d
Registered: Aug 2000
Location:
Posts: 333
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

begehrt die rostschaufel
Avatar
Registered: Oct 2002
Location: Pre
Posts: 14594
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...
Bearbeitet von semteX am 30.09.2004, 21:58

gerhardtt

Big d00d
Registered: Aug 2000
Location:
Posts: 333
schau dir mal an obs einen mysql_error gibt:

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

semteX

begehrt die rostschaufel
Avatar
Registered: Oct 2002
Location: Pre
Posts: 14594
die fehlerzeile ist immer die mit dem mysql_num_result

kleinerChemiker

Here to stay
Avatar
Registered: Feb 2002
Location: Wien
Posts: 4282
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
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz