"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 1127 21
Posts

gerhardtt

Big d00d
Registered: Aug 2000
Location:
Posts: 333
Zitat von semteX
die fehlerzeile ist immer die mit dem mysql_num_result

jo aber mit dem "die" würdest zumindest den fehler darauf beschränken das eine mysqlanweisung einfach nicht stimmt.

semteX

begehrt die rostschaufel
Avatar
Registered: Oct 2002
Location: Pre
Posts: 14595
ok. und wie kann ich das in meinem problem ausnützen?
also wie müsste dann das if ausschaun?

$result = mysql_query(..)
if(!$result)
{
echo "nix gefunden";
}

kleinerChemiker

Here to stay
Avatar
Registered: Feb 2002
Location: Wien
Posts: 4282
jo, sollte gehen.
oder gleich
if (mysql_query()) {}
oder if ($result=mysql_query()) {} falls du das $result brauchst, falls es existiert.

semteX

begehrt die rostschaufel
Avatar
Registered: Oct 2002
Location: Pre
Posts: 14595
gut dieses problem ist mal solved.

THX

ein anders hab ich zwar noch aber das ist sowieso strange

folgendes INSERT:

Code: PHP
$query = "INSERT INTO produkte (prod_bezeichnung, prod_kuerzel, prod_art, prod_preis, prod_chcknumber) VALUES ('".$p_bezeichnung."','".$p_kuerzel."', '".$p_art."', '".$p_preis."', '".$_SESSION["chcknumber"]."')";

und dann mysql_query or die(mysql_error()) liefert:

Unknown column 'prod_chcknumber' in 'field list'
Bearbeitet von semteX am 30.09.2004, 22:40

kleinerChemiker

Here to stay
Avatar
Registered: Feb 2002
Location: Wien
Posts: 4282
wenn du $query = "...." schreibst, mußt du eigentlich die " nciht immer schließen, da innerhalb von " variablen ausgewertet werden.

versuch mal einen fixen wert einzufügen, statt $_SESSION["chcknumber"]

ansonsten eventuel andere syntax versucen: insert into produkte set prod_bezeichnung=$p_bezeichnung, .....

gue

Addicted
Avatar
Registered: Feb 2003
Location: Linz
Posts: 400
Zitat von semteX
gut dieses problem ist mal solved.

THX

ein anders hab ich zwar noch aber das ist sowieso strange

folgendes INSERT:

Code: PHP
$query = "INSERT INTO produkte (prod_bezeichnung, prod_kuerzel, prod_art, prod_preis, prod_chcknumber) VALUES ('".$p_bezeichnung."','".$p_kuerzel."', '".$p_art."', '".$p_preis."', '".$_SESSION["chcknumber"]."')";

und dann mysql_query or die(mysql_error()) liefert:

Unknown column 'prod_chcknumber' in 'field list'
Die letzte Fehlermeldung ist doch nicht so schwer zu verstehen, oder?
Hast du in deiner Tabelle überhaupt eine Spalte prod_chcknumber? Ich wette, nicht! Das erklärt auch den Fehler beim ersten Query ;)
Btw. ist es besser, wenn du beim ersten Query nicht "SELECT * FROM blabla WHERE ..." und dann mysql_num_rows() machst, sondern wenn du "SELECT COUNT(*) as num FROM blabla WHERE ..." machst und dann das Ergebnis direkt herausliest. In dem Fall ist es zwar egal, weil es sowieso nur maximal eine Zeile gibt aber wenn es mal um 100-200 Einträge geht (z.B. wenn du aus einer Tabelle forum_posts zählen willst, wieviele Einträge von einem bestimmten User sind), so ist die Variante mit COUNT() besser.

semteX

begehrt die rostschaufel
Avatar
Registered: Oct 2002
Location: Pre
Posts: 14595
gut, 2 sachen

a) war das ned mein fehler. ich habs für nen freund gemacht und KEINEN zugriff auf die DB. Ich denke der hat irgendwie nen schas gebaut mit dem prod_chcknumber.

DARUM ist auch immer der "invalid resource" fehler gekommen. Ich hab ihm gesagt er soll das ganze ding LÖSCHEN und neu anlegen. hat er gemacht. und auf einmal war selbst bei KEINEM treffer die resource valid => mysql_num_rows hat 0 zurückgeliefert => alles hat gefunkt

der fehler lag also offenbar an der DB. wie der enstehen konnte ist mir schleierhaft da ich eben selbst keinen zugriff hatte.

b) i know, SELECT COUNT(prod_id) FROm... mit mysql_query(..) und danach mysql_result( ) geht viel schneller..

danke für eure hilfe, für mich hab ich beschlossn ich helf nimmer wenn ich ned vollen zugriff auf die Datenbank erhalte :mad:
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz