• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

MySQL-Hilfe: Zeilenabfrage mit if und else

tildeluxe

Mitglied
Hallo, ich habe eine MySQL Tabelle mit folgenden 4 Spalten und Zeilen (mit Testangaben):

[TABLE="class: grid, width: 300"]
[TR]
[TD]IP
[/TD]
[TD]LINK
[/TD]
[TD]MAIL
[/TD]
[TD]DATUM
[/TD]
[/TR]
[TR]
[TD]12.234.435.1
[/TD]
[TD]test1.de
[/TD]
[TD][email protected]
[/TD]
[TD]24.6
[/TD]
[/TR]
[TR]
[TD]23.435.231.5
[/TD]
[TD]test2.de
[/TD]
[TD][email protected]
[/TD]
[TD]12.5
[/TD]
[/TR]
[TR]
[TD]56.342.345.9
[/TD]
[TD]test3.de
[/TD]
[TD][email protected]
[/TD]
[TD]23.5
[/TD]
[/TR]
[TR]
[TD]78.456.321.4
[/TD]
[TD]test4.de
[/TD]
[TD][email protected]
[/TD]
[TD]30.4
[/TD]
[/TR]
[/TABLE]

Es soll nach der IP des Besuchers in der IP Spalte gesucht werden. Wenn die IP in der Spalte gefunden wurde, soll die dazugehörige Zeile (IP, Link, Mail, Datum..) ausgegeben werden.
Wenn die IP jedoch nicht drin steht, soll eine simple "echo"-Ausgabe kommen.

Wie kann ich das realisieren?

Verbindung zur DB besteht bereits.

Danke!
 
Funktioniert leider nicht. Mein bisheriger Code:

$call = mysql_query("SELECT * FROM `table` WHERE `IP` = '$ip'");
$check = mysql_num_rows($call);
if ($check == $ip)
{
echo "du hast keinen link...";
}
else
{
echo "Du hast nen Link!" . $call->ip . ":";
}

Ich glaube da muss etwas anderes her. Danke.
 
Dein $check wird nie == $ip sein, du vergleichst die Anzahl der Resultate mit der gefragten IP. Sinnvoll wäre hier eher if($check == 0). So wie du es geschrieben hast funktioniert es übrigens nur für das erste Ergebnis (fehlt da nicht noch ein fetch_object oder so?), wenn es mehrere sind (sein können?) musst du das per Schleife ausgeben lassen.
 
Dein $check wird nie == $ip sein, du vergleichst die Anzahl der Resultate mit der gefragten IP. Sinnvoll wäre hier eher if($check == 0).

Stimmt auffallend.

So wie du es geschrieben hast funktioniert es übrigens nur für das erste Ergebnis (fehlt da nicht noch ein fetch_object oder so?), wenn es mehrere sind (sein können?) musst du das per Schleife ausgeben lassen.

Nein, muss man nicht. Da er mysql_num_rows() verwendet erhält er die Anzahl der Ergebnisses des Statements. Dazu muss man nicht die gesamte Ergebnismenge in ein Objekt oder Array laden.
 
Nein, muss man nicht. Da er mysql_num_rows() verwendet erhält er die Anzahl der Ergebnisses des Statements. Dazu muss man nicht die gesamte Ergebnismenge in ein Objekt oder Array laden.

Meine Frage bezog sich eher auf seinen Versuch, mit $call->ip etwas auszugeben. Eigentlich ist $call ja nur die MySQL Resource, die muss man doch noch entsprechend fetchen oder?
 
Vielen Danke für Eure Hilfe :) !
Mein Code funktioniert jetzt, aber ich weiss nicht wie ich jetzt die komlette Zeile von der IP auslesen kann. Mein Code:
$call = mysql_query("SELECT * FROM `table` WHERE `IP` = '$ip'");
$check = mysql_num_rows($call);
if ($check == 0)
{
echo "du hast keinen link...";
}
else
{
echo "Du hast bereits einen Link:<br>";
echo $call->ip . "<br>";
echo $call->link . "<br>";
echo $call->mail . "<br>";
echo $call->date . "<br>";
}
 
Du meinst wie Du den Datensatz aus der Datenbanktabelle ausliest? Schau dir mysql_fetch_obect() an, steht auch im Handbuch.
 
Zurück
Oben