Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Wyciaganie danych z klku tabel.
Forum PHP.pl > Forum > Przedszkole
Croos22
Witam.

Czy jest możliwość aby to zapytanie wyciągało dane z jeszcze jednej tabelki?

  1. $query = mysql_query("SELECT * FROM `wykonawcy` WHERE wykonawca_id='{$_GET['id']}'");
  2. while ($wykonawcy = mysql_fetch_array($query)) {
  3.  
  4. }
wookieb
A czy jest możliwość abyś zajrzał go Kursu SQL? JOIN
Croos22
Czytałem kiedyś coś na ten temat. Powstało mi takie coś ale wyrzuca błędy:

  1. SELECT * FROM wykonawcy
  2. JOIN filmy ON
  3. wykonawcy.wykonawca_id, wykonawcy.wykonawca, wykonawcy.informacja AND filmy.film_id, filmy.link_filmu, filmy.user_login, filmy.nazwa_filmu, filmy.id_wykonawcy
  4. WHERE wykonawcy.wykonawca_id = '{$_GET['id']}';


Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ... on line 8
kinder
Ma byc tak
  1. SELECT wykonawcy.wykonawca, wykonawcy.informacja, filmy.film_id, filmy.link_filmu, filmy.user_login, filmy.nazwa_filmu, filmy.wykonawca_id FROM wykonawcy
  2. inner JOIN filmy ON
  3. wykonawcy.wykonawca_id = filmy.wykonawca_id
  4. WHERE wykonawcy.wykonawca_id = '{$_GET['id']}';


jak uzywasz joina to musisz podac warunek łączenia tabel w tym przypadku

  1. wykonawcy.wykonawca_id = filmy.wykonawca_id


Chyba masz zle baze zaimplementowana, bo widzialem ze masz filmy.id_wykonawcy a powinno byc filmy.wykonawca_id
to powinienen byc klucz głowny, i warunek łączenia tabel.
Croos22
Cytat(kinder @ 6.03.2011, 10:26:11 ) *
Chyba masz zle baze zaimplementowana, bo widzialem ze masz filmy.id_wykonawcy a powinno byc filmy.wykonawca_id
to powinienen byc klucz głowny, i warunek łączenia tabel.


Celowo tak zrobiłem. Przechowuje tam inny identyfikator.

A jakbym chciał wrzucić w echo zawartość któregoś z pól? Pierwszy raz mam styczność z łączeniem tabel.

  1. $query = mysql_query("SELECT wykonawcy.wykonawca, wykonawcy.informacja, filmy.film_id, filmy.link_filmu, filmy.user_login, filmy.nazwa_filmu, filmy.wykonawca_id FROM wykonawcy
  2. inner JOIN filmy ON
  3. wykonawcy.wykonawca_id = filmy.wykonawca_id
  4. WHERE wykonawcy.wykonawca_id = '{$_GET['id']}';
  5. ");
  6. while ($wykonawcy = mysql_fetch_array( $query)) {
  7. echo ?;
  8. }


Dlaczego tak jest wykonawcy.wykonawca_id = filmy.wykonawca_id? Mi zależy na tym aby wyciągnąć tylko dane nic nie chciałem łączyć.
wookieb
Sprawdź co zawiera twoje zapytanie.
Podstawy debugowania
  1. var_dump($query);


Oraz jaki błąd dostajesz
  1. mysql_query($query) or die(mysql_error());

Temat: Jak poprawnie zadac pytanie
Croos22
  1. var_dump($query);

bool(false)

  1. mysql_query($query) or die(mysql_error());

Query was empty

W bazie znajdują się rekordy więc dlaczego pisze, że jest pusta?
wookieb
  1. $query = "SELECT wykonawcy.wykonawca, wykonawcy.informacja, filmy.film_id, filmy.link_filmu, filmy.user_login, filmy.nazwa_filmu, filmy.wykonawca_id FROM wykonawcy
  2. inner JOIN filmy ON
  3. wykonawcy.wykonawca_id = filmy.wykonawca_id
  4. WHERE wykonawcy.wykonawca_id = '".$_GET['id']."'
  5. ";
  6. var_dump($query);
  7. $query = mysql_query($query) or die(mysql_error());
  8.  
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.