Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]PHP MYSQL - zapytanie do dwóch tabel, Jak zrobić zapytanie do dwóch tabel w PHP MYSQL
maraska
post
Post #1





Grupa: Zarejestrowani
Postów: 143
Pomógł: 0
Dołączył: 9.04.2013

Ostrzeżenie: (0%)
-----


Witam.

Mam w bazie dwie tabele, m/in z polami jak poniżej:

tabela users:
id... user_id..........email

tabela image
id... user_id.......user_image

Jak widać w obu jest pole user_id.
Nie wszyscy użytkownicy, którzy mają email mają też user_image w tabeli image.
Rekord do tabeli image jest dodawany przy dodawaniu obrazku i zawiera tylko pełne pola, tzn. nie ma np. user_image o wartości NULL. Za to user_id powtarza się w tej tabeli wielokrotnie, gdy użytkownik ma wiele obrazków. Pole user_image zawiera nazwę rodzaju obrazka (jest kilka)

Chcę wysłać mailing tylko do tych użytkowników posiadających email w tabeli users (nie wszyscy mają), którzy mają określony typ obrazka w tabeli images w polu user_image.

Jak napisać takie zapytanie w php?

(tabele są bardziej rozbudowane, ale podaję tylko to co istotne)

Z góry dziękuję za pomoc

Chodzi tylko o zapytanie do bazy

Ten post edytował maraska 9.04.2013, 19:25:38
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
maraska
post
Post #2





Grupa: Zarejestrowani
Postów: 143
Pomógł: 0
Dołączył: 9.04.2013

Ostrzeżenie: (0%)
-----


Cytat(zbychoCom @ 9.04.2013, 20:43:31 ) *
Np. tak:
SELECT `users.user_id` FROM `users`,`image` WHERE `image.user_image` = $klucz_wyszukiwania AND `image.user_id`=`users.user_id` AND `users.email` != NULL


Dzięki Zbycho za super szybką pomoc.
Tylko, że ja chcę wyciągać e-mail usera, który ma user_image o nazwie "nazw%"
Czyli może tak jak poniżej?

SELECT `users.email` FROM `users`WHERE `image.user_image` LIKE "nazwa%" AND `image.user_id`=`users.user_id` AND `users.email` != NULL

Dobrze to będzie?

Koledzy, to które zapytanie będzie lepsze z JOIN czy bez?



I jeszcze rozszerzę temat. Gdyby chcieć pobierać więcej wartości niż email, to powinno to wyglądać tak, jak poniżej?

  1.  
  2. <?php
  3.  
  4. //includy - klasa mailera, klasa bazy
  5.  
  6. $sql = mysql_query("SELECT `u`.`*` FROM `users` `u` LEFT JOIN `image` `i` USING (`user_id`) WHERE `u`.`email` IS NOT NULL AND `i`.`user_image` LIKE 'TYP_OBRAZKA'")
  7.  
  8. while($c = mysql_fetch_array($sql)) {
  9.  
  10. $imie = $c['imie'];
  11. $nazwisko = $c['nazwisko'];
  12. $email = $c['email'];
  13.  
  14. //Tu wysyłamy maila
  15.  
  16. }
  17.  
  18. ?>
  19.  
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 11.10.2025 - 19:27