Ich bin ein absoluter Anfänger in der Erstellung von Datenbanken und ich weiß nur, dass wir verwenden können,

"SELECT * FROM users WHERE username = '$username' and password = '$password'";

Aber was ist, wenn mein SQL mehrere Tabellen enthält und ich sie alle auswählen möchte?

Kann ich nur tun,

"Select * from users where username = '$username' and password = '$password' and email = '$email' and address = '$address' and phone = '$phone'";

Hier ist mein PHP-Skript:

public function does_user_exist($username,$password,$email,$address,$phone){
    $query = "Select * from users where username = '$username' and password = '$password' and email = '$email' and address = '$address' and phone = '$phone'";
        $result = mysqli_query($this->connection, $query);
        if(mysqli_num_rows($result) > 0){
            $json['success'] = 'Welcome '.$email;
            echo json_encode($json);    
            mysqli_close($this->connection);
            } else {
                $query = "Insert into users(username, password, email, address, phone) values ('$username','$password','$email', '$address', '$phone')";
                $is_inserted = mysqli_query($this->connection, $query);
                if ($is_inserted == 1){
                    $json['success'] = 'Account created, welcome '.$email;
                    } else {
                        $json['error'] = 'Wrong password ';
                        }
                        echo json_encode($json);
                        mysqli_close($this->connetion);
                }
        }

AKTUALISIEREN

<?php

require_once 'connection.php';
header('Content-Type: application/json');

class User {
    private $db;
    private $connection;
    
    function __construct() {
    $this->db = new DB_Connection();
    $this->connection = $this->db->get_connection();
    }
    
    public function does_user_exist($username,$password,$email,$address,$phone){
        $query = ("Select * from users where username = '$username' and password = '$password' and email = '$email' and address = '$address' and phone = '$phone'");
        $result = mysqli_query($this->connection, $query);
        if(mysqli_num_rows($result) > 0){
            $json['success'] = 'Welcome '.$email;
            echo json_encode($json);    
            mysqli_close($this->connection);
            } else {
                $query = "Insert into users(username, password, email, address, phone) values ('$username','$password','$email', '$address', '$phone')";
                $is_inserted = mysqli_query($this->connection, $query);
                if ($is_inserted == 1){
                    $json['success'] = 'Account created, welcome '.$email;
                    } else {
                        $json['error'] = 'Wrong password ';
                        }
                        echo json_encode($json);
                        mysqli_close($this->connetion);
                }
        }
}

$user = new User();
if (isset($_POST['username'], $_POST['password'], $_POST['email'], $_POST['address'], $_POSt['phone'])){
    
    $username = $POST['username'];
    $password = $_POST['password'];
    $email = $_POST['email'];
    $address = $_POST['address'];
    $phone = $_POST['phone'];
    

    if(!empty($username) && !empty($password) && !empty($email) && !empty($address) && !empty($phone)){
        $encrypted_password = md5($password);
        $user -> does_user_exist($username,$encrypted_password,$email,$address,$phone);
    } else {
        echo json_encode("You must fill all fields!")
        }
}

?>

Hoffentlich könnt ihr helfen, ich schätze die Antworten sehr.

-3
Zubli Quzaini 26 Dez. 2015 im 20:24

2 Antworten

Beste Antwort

Im Allgemeinen möchten Sie dazu JOIN verwenden, und Sie müssen gemeinsame Werte zwischen Ihren Tabellen haben, die als foreign keys fungieren und auf entsprechende Werte in anderen Tabellen verweisen.

BEARBEITEN

Aktualisierungen der Frage und der Kommentare weisen darauf hin, dass die ursprüngliche Frage leicht falsch formuliert wurde. Ja, Sie können zahlreiche Spalten in einer einzigen Abfrage absolut referenzieren / verwenden / vergleichen / auswerten. Das Beispiel, das Sie gepostet haben, ist ein gutes Beispiel:

SELECT (column1, column2) FROM users WHERE username = $username AND email = $email

Und so weiter für so viele Spalten wie die Tabelle hat. Sie können auch den Operator OR verwenden, der alle Zeilen einfügt, die mit dem Benutzernamen ODER der E-Mail (oder anderen gewünschten Spalten) übereinstimmen.

0
Redbeard011010 26 Dez. 2015 im 18:24

Sie müssen JOIN Queries verwenden. Versuchen Sie das Folgende SQL Statement

SELECT table1.column1, table2.column2...
FROM table1
INNER JOIN table2
ON table1.common_field = table2.common_field;

Verweisen Sie auf diese JOIN SQL SO-Antworten

Was ist der Unterschied zwischen INNER JOIN, LEFT JOIN, RIGHT JOIN und FULL JOIN?

Unterschied zwischen MySQL JOIN und LEFT JOIN

MySQL-Join-Abfrage

1
Community 23 Mai 2017 im 12:31