kostenloser Webspace werbefrei: lima-city


SELECT schlägt jedes Mal fehl!

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    limabone

    Kostenloser Webspace von limabone

    limabone hat kostenlosen Webspace.

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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
  4. r*s

    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."'");
    }
    }
  5. @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"]."'"
  6. Autor dieses Themas

    limabone

    Kostenloser Webspace von limabone

    limabone hat kostenlosen Webspace.

    @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
  7. 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 ist
    mysql_num_rows
  8. Autor dieses Themas

    limabone

    Kostenloser Webspace von limabone

    limabone hat kostenlosen Webspace.

    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
  9. f************r

    Hast du vorher eine DB-Verbindung hergestellt?
    Wenn ja, überprüfe mal die Parameter.

    MfG


    Nef10
  10. Hast du bedacht, dass "Test" nicht gleich "test" oder "TEST" ist?
  11. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!