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

Nach bestimmter Zahl in Feld1 suchen und zugehöriges Feld2 ausgeben

jakestyler

Mitglied
Hallo,
ich hoffe ich bringe euch jetzt nicht nocheinmal zum Wahnsinn ;)

Ich schreibe nun also in eine MySQL-Datenbank in Feld1 den Wert "123" und in das zugehörige Feld2 den Wert"456".

Nun suche ich nach etwas, dass in der Tabelle nach 123 sucht, Feld1 findet und dann Feld2 ausgibt.

Ist das möglich und wenn ja, wie? :)

Danke schonmal!
 
Werbung:
PHP:
$query = "SELECT `feld2` FROM `tabelle` WHERE `feld1 = 123`;";
Das gehört zu den Grundlagen, die Du unbedingt lernen solltest, wenn Du noch mehr mit MySQL machen möchtest.
 
Danke! Ich melde mich gleich mit den Ergebnissen zurück!

Mit MySQL habe ich normalerweise nichts am Hut, dass macht jemand anders für mich..
 
Werbung:
Okay, folgendes.
In der Tabelle Expit existiert 100%-tig die ID 2434.
Auf
PHP:
$query = "SELECT `Expire` FROM `Expit` WHERE `ID = $qerystring`";
wobei $querystring 2434 ist bekomme ich folgenden Fehler:
MySQL-Error: Unknown column 'ID = 2434' in 'where clause'
Was mache ich falsch?
 
Ups, das war ein Fehler von mir, sorry. Aber eigentlich sagt es die Fehlermeldung doch schon, wo ich den Fehler gemacht habe. Die backticks (`) gehören nur um das Feld ID, nicht um den gesamten WHERE-Ausdruck, also so:
PHP:
$query = "SELECT `Expire` FROM `Expit` WHERE `ID` = $qerystring";
 
Du setzt die Backticks falsch.

Falsch:
PHP:
 $query = "SELECT `Expire` FROM `Expit` WHERE `ID = $qerystring`";

Korrekt:
PHP:
 $query = "SELECT `Expire` FROM `Expit` WHERE `ID` = $qerystring";

Beachte:
Wenn es sich um einen String handelt, müsstest Du $querystring auch noch mit einfachen Anführungszeichen umgeben.
Und: Wenn $querystring etwas ist, was ein Nutzer irgendwie manipulieren könnte, verwende mysql_real_escape_string() um die Zeichenfolge auch abzusichern.
 
Werbung:
Code:
PHP:
$con=mysqli_connect("localhost","user","pw","db"); if (mysqli_connect_errno())
      echo mysqli_connect_error();  
    $query = "SELECT `Expire` FROM `Expit` WHERE `ID` = '$qerystring'";
     mysqli_query($con,$query)      
     or die ("MySQL-Error: " . mysqli_error($con)); 
      mysqli_close($con);

Ausgabe:
SELECT `Expire` FROM `Expit` WHERE `ID` = '2434'

Was mache ich denn falsch? :(
 
Was mache ich denn falsch? :(
Du könntest den Antwortern enorm helfen, wenn Du auch schreiben würdest, was denn genau passiert (Fehlermeldung)? Das SELECT sieht soweit gut aus, zumindest wenn es sich bei dem Datenfeld ID tatsächlich um einen String handelt, was ich aber fast bezweifle. Wenn das Feld ID ein numerisches Feld ist, dann lass die Anführungszeichen weg, also so
PHP:
$query = "SELECT `Expire` FROM `Expit` WHERE `ID` = $qerystring";
 
Werbung:
echo $query ergibt SELECT `Expire` FROM `Expit` WHERE `ID` = 5747

Die Schritte zum Fehler-ANzeigen bin ich schon durchlaufen.
 
Ich weiß immer noch nicht, wo jetzt das Problem sein soll.
 
Werbung:
Naja, die Ausgabe ist SELECT `Expire` FROM `Expit` WHERE `ID` = 5747, sie sollte aber eigentlich der Inhalt von Expire sein.
 
Okay, nochmal:
Ich habe eine Upload-Seite. Wenn ein Bild erfolgreich hochgeladen wurde, wird eine ID (die ersten 4 Zahlen vom Dateinamen des Bildes) und das aktuelle Datum + 24h in eine Datenbank eingetragen.
ID und Expire heissen die beiden Felder - Habe ich soweit!

Auf der Downloadseite soll die Datenbank durchsucht werden nach der ID und dann soll das zugehörige Feld Expire ausgegeben werden. Nur das Feld.
Dann verarbeite ich es weiter.
 
Werbung:
Du willst also die Datensätze aus der Datenbank auslesen und ihre Inhalte ausgeben. Dafür brauchst Du nicht nur mysqli_query() sondern auch eine Funktion zum Auslesen der Ergebnisse. Dein aktuelle Code (ich nehme mal an er ist es immernoch):

PHP:
$con=mysqli_connect("localhost","user","pw","db"); if (mysqli_connect_errno())
      echo mysqli_connect_error();  
    $query = "SELECT `Expire` FROM `Expit` WHERE `ID` = '$qerystring'";
     mysqli_query($con,$query)      
     or die ("MySQL-Error: " . mysqli_error($con)); 
      mysqli_close($con);

müsste ergänzt werden um die Speicherung des Ergebnisses von mysql_query() in einer Variable, z.B. so:

PHP:
$result = mysqli_query($con,$query) or die ("MySQL-Error: " . mysqli_error($con));

sowie eine nachfolgende Ausgabe z.B. mittels while()-Schleife. Beispiele dafür findest Du im Handbuch von PHP:
PHP: mysqli_result::fetch_object - Manual

Noch als Feinheit nebenbei: ich würde die Variable im SQL-Statement, wie oben schon von mir gesagt, nicht in Anführungszeichen schreiben und auch nicht per PHP ausgeben und sie zusätzlich absichern, also eher so schreiben:
PHP:
$query = "SELECT `Expire` FROM `Expit` WHERE `ID` = ".mysql_real_escape_string($qerystring);
 
Nochmal die Frage: wie soll man dir helfen wenn Du nur die Hälfte lieferst? Fehlermeldung UND betroffener Quellcode!
 
Werbung:
Code:
$con=mysqli_connect("localhost","user","pw","db"); if (mysqli_connect_errno())      echo mysqli_connect_error();  
    $query = "SELECT `Expire` FROM `Expit` WHERE `ID` = ".mysql_real_escape_string($qerystring);  
	$result = mysqli_query($con,$query) or die ("MySQL-Error: " . mysqli_error($con));  
	echo $result;
	
     mysqli_query($con,$query)      
     or die ("MySQL-Error: " . mysqli_error($con)); 
      mysqli_close($con);

Ist der Code. Sorry.
 
Wieso versuchst Du das Query jetzt 2 Mal auszuführen? So etwas hatte ich oben nicht beschrieben.
 
Zurück
Oben