Seite 2 von 2
Verfasst: 07.04.2007 22:28
von edel
tja , wenn man die Rueckgabe eines Querys pruefen wuerde , haette man schnell eine Antwort.
Verfasst: 07.04.2007 22:34
von bluejoke
Ich dachte die ` wären optional und sozusagen die Anführungs-Zeichen für Datenbank, Tabellen und Feldnamen u.s.w.
Code: Alles auswählen
$Connection = (mysql_select_db($db_name, mysql_connect($db_host, $db_user, $db_pass)));
Ich habs nicht getestet, aber ich denke, dass durch die äußersten Klammern der ganze Ausdruck als booleanisch verstanden wird, das heißt wenn mysql_select_db einen Wert ungleich 0 zurückliefert, ist der Ausdruck true, bei 0 false. Wenn du die Klammern weglässt, sollte mysql_close unten wieder funktionieren - $Connection ist ja sozusagen eine Art Pointer zur DB-Verbindung, muss also den Wert von mysql_select_db bekommen und nicht true / false.
------
Zu der Anfangsfrage: Wenn du nur die Datensätze auslesen magst, bei denen zwei Bedingungen erfüllt sind, kannst du die WHERE-Klausel einfach mit AND erweitern, funktioniert analog zu gewöhnlichen Kontrollstrukturen.
Sonst hab ich glaub nicht verstanden was du eigtl. willst. Schau dir bitte ganz dringend - wie edel schon geschrieben hat -
http://tut.php-q.net an.
Verfasst: 08.04.2007 11:20
von Tsuki-Namida
@bluejoke
das kann ich ja nicht machen da ich ja "mysql_select_db " brauche sonnst kann ich die tabelle ja nicht aufrufen.
wenn ich nur eine datenbang auf dem server hätte wäre es fileicht anderst aber ich brauche beide....
und wenn ich das so mache:
$Connection = (mysql_connect($db_host, $db_user, $db_pass));
mysql_select_db($db_name);
bekomme ich denn noch den fehler in dieser zeile...
while ($Zeile = mysql_fetch_array($Result)){
wenn ich aber jetzt
hier nach schaue sieht das genauso aus wieder quellentext... deshalb verstehe ich den fehler ja auch nicht...
Verfasst: 08.04.2007 15:17
von edel
Was sagt denn mysql_error() ?
Verfasst: 08.04.2007 20:26
von bluejoke
1) Wie edel sagt: Mach mal ne Fehlerabfrage. tut.php-q.net!!! wird sonst ärgerlich.
2) Hast du ein MySQL query???
3) Mit den äußeren Klammern war nicht die if-Abfrage gemeint, sondern der ausdruck bei $Connection - so glaub ich nicht, dass mysql_close je funktionieren wird, für den Rest ist es aber unerheblich.
Simon
Verfasst: 11.04.2007 11:27
von Tsuki-Namida
hmmm ich weis nicht ob ich "MySQL query" habe.... wo und wie kann ich das feststellen?
die fehlermeldung ist:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /usr/export/www/vhosts/funnetwork/hosting/rpgfantasy/page/test.php on line 15
ich habe noch weiter probiert und tutprials gelesen... aber nichts hat mir wirklich weitergeholfen

Verfasst: 11.04.2007 15:32
von edel
Da steht doch genau das was nicht geht : Die uebergebene Variable, bei
mysql_fetch_array(), ist nicht gueltig. Kann ja wohl nicht so schwer sein
da mal ne IF abfrage einzubauen ...
Verfasst: 11.04.2007 18:58
von Tsuki-Namida
okay... das wusste ich nicht... mein englisch lässt halt zu wünschen übrig... aber okay...
aber ich brauche es unbedingt... also "mysql_fetch_array()" da ich ein vergleich machen muss dashalb ist es auch in einer schleife...
Verfasst: 11.04.2007 20:09
von Lukaso
Magix-Soft <Kain> hat geschrieben:danke erst mal

und die seiten werden mir bestimmt noch sehr hilfreich sein
aber ich bekomme einen fehler ausgegeben in dier zeile...
while ($Zeile = mysql_fetch_array($Result))
der fehler lautet:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /usr/export/www/vhosts/funnetwork/hosting/rpgfantasy/page/test.php on line 14....
hier noch mal der geänderte code das ich fileicht was falsch gemacht habe...
Code: Alles auswählen
$Connection = (mysql_select_db($db_name, mysql_connect($db_host, $db_user, $db_pass)));// {;
if ($Connection)
{
$Result = mysql_db_query($db_name, "SELECT * FROM ".$SQL_Tabelle." WHERE ".$Spalte." = ".$SuchString);
while ($Zeile = mysql_fetch_array($Result))
{
if ($Zeile[$andereSpalte] = $AndererSuchSting)
{
// ...
}
}
mysql_close($Connection);
}
Du hast vergessen den Vergleichstring in Hochkommas zu setzen. MySQL ist da ziemlich empfindlich. Bei Zahlen musste allerdings diese Hochkommas weglassen, dort mag er diese wiederrum nicht.
Als Beispiel: WHERE = 'blub'.
Code: Alles auswählen
$Result = mysql_db_query($db_name, "SELECT * FROM ".$SQL_Tabelle." WHERE ".$Spalte." = '".$SuchString."'");
Das ist mir nur so auf den 1. Blick aufgefallen.
Lukas
Edit2:
Empfehlen würde ich dir noch anstelle:
Code: Alles auswählen
if ($Zeile[$andereSpalte] = $AndererSuchSting)
{
// ...
}
(Edit3: Vergleiche macht man wie auch in C/C++/Java/C# usw., auch in PHP mit einem doppeltem Gleichheitszeichen "==". Zuweisungen mit nur einem "=". Dies wäre also eine Zuweisung kein Vergleich

)
Sowas doch lieber gleich in den MySQL Query zu packen:
Code: Alles auswählen
$Result = mysql_db_query($db_name, "SELECT * FROM ".$SQL_Tabelle." WHERE ".$Spalte." = '".$SuchString"' AND ".$andereSpalte." = '".$AndererSuchSting."'");
Verfasst: 11.04.2007 22:48
von bluejoke
Okay, dieses AND bei den Vergleichen war der Vorschlag der dir irgendwie nicht passen wollte, vielleicht hab ich mich schlecht ausgedrückt.
mysql_db_query ist die Funktion mit der du der MySQL-Datenbank einen Query (Anfrage oder so) sendest. Weil das im vorletzten Post gefehlt hatte, war ich mir nicht sicher, ob du die Anfrage überhaupt absendest, und das würde genauso zu einem Fehler führen - sogar zu dem selben, glaub ich. Mit den Hochkommata hätt ich dir aber nicht helfen können, gut das das Lukaso erledigt hat.
Simon
EDIT: Und damit keine Missverständnisse auftauchen: In SQL ist es ein Gleichheitszeichen, in PHP wie Lukaso geschrieben hat zwei.