mit PHP aus MySQL Tabelle suchen

Fragen zu allen anderen Programmiersprachen.
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

tja , wenn man die Rueckgabe eines Querys pruefen wuerde , haette man schnell eine Antwort.
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag 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.
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
Benutzeravatar
Tsuki-Namida
Beiträge: 633
Registriert: 17.11.2005 13:27
Kontaktdaten:

Beitrag 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...
Bild
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Was sagt denn mysql_error() ?
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag 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
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
Benutzeravatar
Tsuki-Namida
Beiträge: 633
Registriert: 17.11.2005 13:27
Kontaktdaten:

Beitrag 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 :(
Bild
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag 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 ...
Benutzeravatar
Tsuki-Namida
Beiträge: 633
Registriert: 17.11.2005 13:27
Kontaktdaten:

Beitrag 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...

Code: Alles auswählen

while ($Zeile = mysql_fetch_array($Result)){
  //...
}
Bild
Benutzeravatar
Lukaso
Beiträge: 720
Registriert: 08.09.2004 18:51
Wohnort: Oberkirch
Kontaktdaten:

Beitrag 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."'");
Nextgen Guild Wars Fanseite: Guild Wars Tactics (Pseudo-Admin + Developer)
"Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht." - Unbekannter Autor
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag 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.
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
Antworten