SELECT schlägt jedes Mal fehl!
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anwenden
code
dank
datenbank
datum
dokument
eingabe
fehler
gast
index
karpfen
not
parameter
server
statement
syntax
test
variable code
verbindung
wert test
-
Mittag,
es ist mir ein klein wenig peinlich, wegen so einem kleinem Problem nachzufragen, aber der Fehler geht mir schon auf die Nerven...
ich kann einfach nicht Datensätze herauslesen, die von einer Eingabe gesucht werden...
Index.php
<html> ..usw. <input type="text" name="user"> ...usw. </html>
und dann will ich nen Datensatz holen, aber MYSQL schreit immer auf, dass ich die beschreibung zu Hand nehmen soll und den korrekten String suchen soll...
func.index.php
<?php if ($_POST['user'] == '') { echo 'nichts eingegeben!'; }else{ $sql = 'SELECT `user`, `pass` FROM `db_138318_3`.`penguins_user` WHERE `penguins_user`.`user` = '.$_POST["user"]
Der Fehler liegt eindeutig an dem Vergleichungsoperator, aber wie ersetze ich das =, weil LIKE funkt irgendwie auch nicht...
MfG -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Der Fehler liegt eigentlich schon daran, dass man mit Select Daten aus Tabellen ausliest und du als Tabellenname deine Datenbank angegeben hast db_138318_3. Oder ist das dein Tabellenname?
Was bei dir auch die einfachen Anführungsstriche machen verstehe ich auch nicht ganz.
Bei meinen Select-Statements schaut das immer so aus:
$sql="SELECT feldname1, feldname2 FROM tabellenname WHERE feldname='" . $variable . "'";
Beitrag zuletzt geändert: 21.11.2009 12:16:09 von karpfen -
karpfen hat natürlich recht.
Aber bitte jetzt nicht vergessen erst die Verbindung zur Datenbank herzustellen
$db_link = mysql_connect("127.0.0.1", "benutzername", "passwort"); if($db_link) { if(mysql_select_db("Datenbank", $db_link)){ $ergebnis = mysql_query("SELECT feldname1, feldname2 FROM tabellenname WHERE feldname='".$variable."'"); } }
-
@karpfen: Das mit der DB ist schon so korrekt. Man kann die Syntax db.table oder `db`.`table` nutzen. Was in dem Query falsch ist sind die fehlenden Anführungszeichen Beim String-Vergleich. Teste das:
"SELECT user, pass FROM `db_138318_3`.`penguins_user` WHERE `penguins_user`.`user` = '".$_POST["user"]."'"
-
@rms: Das hab ich natürlich schon dabei
@karpfen: Juhuu, hat geklappt! Danke dir. Die `` Striche sind bei Tabellennamen wie "from" gut, weil sie sonst mit FROM verwechselt werden, ich hab mir das schon so angewöhnt...
@nikic: Mit dem hats auch funktioniert, auch danke dir!
EDIT: Wie kann ich das ganze jetzt bei einer Überprüfung auf einen Einrag anwenden?
Bsp:
Der Gast gibt bei "user" den Wert "Test" ein. Wie macht man das, dass mysql dann ausgibt, dass "Test schon vorhanden ist? Ich hab das schon oft versucht... aber es hat nie geklappt...
MfG
Beitrag zuletzt geändert: 21.11.2009 13:45:09 von limabone -
In etwa so:
$sql = "SELECT 'user', 'pass' FROM 'db_138318_3' WHERE 'user' = '.$_POST["user'']'": $result = mysql_query($sql); if(mysql_num_rows($result) != 0) { echo "Benutzer bereits vorhanden"; }
So in etwa, syntax ist evtl fehlerhaft habs nicht getestet. Aber den Befehl den du gesucht hast istmysql_num_rows
-
Nein,
funktioniert nicht.
Der Server gibt folgendes aus:
Warning: mysql_query() [function.mysql-query]: Access denied for user 'www-data'@'localhost' (using password: NO) in /* Dokument */ on line 3 Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /* Dokument */ on line 4 Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in/* Dokument */ on line 18
-
Hast du bedacht, dass "Test" nicht gleich "test" oder "TEST" ist?
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage