2015-05-18 3 views
5

soo mam 2 tabele.pobierz informacje z innej tabeli, gdzie id = id

train_information
user_train_information

Gdy ktoś przesyła coś w formularzu. to się umieścić w tabeli train_information i wygląda następująco:

what it looks like after the form is submitted

Teraz, kiedy ludzie są rejestrowane i wybierz pociągiem z selektora. jego dzieje w bazie:

when people select the train

Na drugiej stronie, chcę użytkownikom zobaczyć całą listę rzeczy, które wybrany przez czas. Więc biegnę zapytania: SELECT * FROM user_train_information WHERE user_id=user_id;

To pokazuje mi tabelę user_train_information ale jest to posible pokazać train_information gdzie user_id = user_id? ponieważ chcę, żeby użytkownik pokazywał pociągi, które dodał.

EDIT:

co mam teraz:

function testingggg() { 
     $sql = "SELECT * 
FROM train_information 
INNER JOIN user_train_information 
ON train_information.train_id = user_train_information.train_id 
WHERE user_train_information.user_id = user_id"; 
     $sth = $this->pdo->prepare($sql); 
     $sth->bindParam("user_id", $_GET["user_id"], PDO::PARAM_INT); 
     $sth->execute(); 
     return $sth->fetchAll(); 
    } 

i wzywam I tutaj:

<?php 
     $summary = $database->testingggg(); 
    ?> 
    <?php 
     foreach ($summary as $result){ 
     echo $result['train_name']; 
    } 
?> 

pojawia się błąd:

error

+0

Zastosowanie Dołącz do tego –

+0

tabeli 'train_information' nie ma kolumny' user_id'! – Jens

+0

Tru @Jens, ale oba mają kolumnę train_id – Mitch

Odpowiedz

1

ten sposób mogę użyć kwerendy w takim przypadku i to działa. W twoim przypadku istnieje niejasność. Upewnij się również, że masz właściwą wartość w $ _GET ["user_id"]. Proszę sprawdzić

function testingggg() { 
     $sql = "SELECT ti.train_name, ti.train_id, uti.user_id 
       FROM train_information as ti 
       JOIN user_train_information as uti 
       ON ti.train_id = uti.train_id 
       WHERE uti.user_id = :user_id"; 
     $sth = $this->pdo->prepare($sql); 
     $sth->bindParam(":user_id", $_GET["user_id"], PDO::PARAM_INT); 
     $sth->execute(); 
     return $sth->fetchAll(); 
    } 
+1

Działa z tym kodem :) Dziękuję bardzo! – Mitch

-1

You Spróbuj tego.

SELECT * FROM train_information INNER JOIN user_train_information 
    ON train_information.train_id = user_train_information.train_id 
    WHERE user_train_information.user_id = $user_id; 
+0

możesz to zrobić, używając INNER JOIN. –

+0

Wykonano edycję @ user3113490 – Mitch

-1
SELECT * 
FROM train_information 
     INNER JOIN user_train_information 
       ON train_information.train_id = user_train_information.train_id 
WHERE user_train_information.user_id = user_id; 
0
SELECT t.train_id 
    , t.country_id train_country_id 
    , t.train_name 
    , t.number_of_bogies 
    , t.number_of_axles 
    , t.wheel_diameter_min 
    , t.wheel_diameter_max 
    , u.user_row_id 
    , u.user_id 
    , u.country_id user_country_id 
    FROM user_train_information u 
    JOIN train_information t 
    ON t.train_id = u.train_id 
WHERE u.user_id = :user_id;