php
  • mysqli
  • 2016-08-13 3 views 1 likes 
    1

    Woher wissen Sie, ob $id1 mit der Zeile $user1 oder $user2 übereinstimmt? Ist dies der richtige Weg, um diese Abfrage durchzuführen?Wählen Sie die ID und den passenden Nutzernamen aus?

    $sql = "SELECT id FROM users WHERE username='$user1',username='$user2' LIMIT 2"; 
    $query = mysqli_query($con, $sql); 
    $row = mysqli_fetch_row($query); 
    $id1 = $row[0]; 
    $id2 = $row[1]; 
    
    • kann ich ORDER BY username='$user1'?
    +0

    Erstens Syntax Ihre Abfrage ist ungültig. RTMs http://dev.mysql.com/doc/refman/5.7/en/select.html - http://dev.mysql.com/doc/refman/5.7/de/where-optimizations.html –

    Antwort

    2

    Wie ich in den Kommentaren sagte, ist Ihre Syntax ungültig. Eine WHERE Klausel verwendet AND oder OR als Trennzeichen, nicht Kommas.

    Also, was Sie hier tun müssen, ist, Ihre Abfrage einstellen und vergleichen sie danach:

    Nebenbei bemerkt: Sie müssen möglicherweise zusätzliche Spalten der SELECT hinzuzufügen wie können Sie eine undefinierte Mitteilung Offset werfen. Stellen Sie außerdem sicher, dass Ihr LIMIT-Wert von 2 bei Ihnen fehlschlägt, wenn Sie mehr als 2 Zeilen haben.

    $sql = "SELECT id FROM users WHERE username='$user1' OR username='$user2' LIMIT 2"; 
    $query = mysqli_query($con, $sql); 
    $row = mysqli_fetch_row($query); 
    $id1 = $row[0]; 
    $id2 = $row[1]; 
    
    if($user1 == $id1) { 
    
        echo "User 1 is the same "; 
    
    } 
    
    if($user2 == $id2) { 
    
        echo "User 2 is the same"; 
    
    } 
    

    Referenzen:

    Wie pro Ihre edit:

    kann ich nach Username verwenden ORDER = '$ user1'

    Nein, müssen Sie ORDER by column_name verwenden, und nicht eine „gleich“ und eine Variable.

    Wenn Ihr Spaltenname mit der Variablen übereinstimmt, dann ist das möglich, aber ich werde das nicht sicher wissen, bis Ihr Datenbankschema/Inhalt bekannt ist.

    Die Syntax ist:

    ORDER BY column nimmt ASC oder DESC in der Größenordnung ab, die Sie wollen.

    Referenz:


    Wenn Ihre Abfrage ein Eingreifen des Benutzers/Eingang hat, müssen Sie eine vorbereitete Anweisung verwenden, da, dass Sie zu einer SQL offen lassen würde Injektion.

    Referenzen:

    +0

    Aber es gibt keine Duplikate von Benutzername, so dass es nicht etwas auswählen konnte, das $ user1 entspricht und $ user2 – stkmedia

    +0

    ich denke, ich versuche nur zu lösen, wie ORDER BY – stkmedia

    +0

    @stkmedia Ich bin verwirrt dann. Sie müssen Ihr db-Schema und ein Beispiel dafür, was Ihre Ausgabe sein soll, veröffentlichen. –

    Verwandte Themen