Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: POBIERANIE Z DWOCH TABEL
Forum PHP.pl > Forum > Bazy danych > MySQL
diamondking
Robię na stronie wyszukiwarkę użytkowników, wszystkie opcje które można wybrać tj. login, wiek (od - do), płeć, status online mam zapisane w tabeli users i według tej tabeli sortuje.
Jednak w wyszukiwarce mam też opcję "ze zdjęciem" - a to czy ktoś posiada zdjęcie profilowe mam zapisane w tabeli photo.

Jak pobrać teraz tę wartość z tej tabeli ?



Jest ktoś tu kto pomoże ;D

nerdsmiley.png
mmmmmmm
LEFT JOIN
diamondking
Bawię się tym cały czas ale jak dodam WHERE i parametry odnośnie wyszukiwarki to już nie działa nic

Ok teraz PRAWIE wszystko działa.

  1. <?php
  2.  
  3.  
  4. //wynik wyszukiwania
  5.  
  6. $user_data = get_user_data();
  7.  
  8. if(isset($_POST["wiek_od"]) && $_POST['wiek_od']!=""){
  9. $wiek_od = date(Y) - $_POST["wiek_od"];
  10. }else{
  11. $wiek_od = date(Y);
  12. }
  13.  
  14. if(isset($_POST["wiek_do"]) && $_POST['wiek_do']!=""){
  15. $wiek_do = date(Y) - $_POST["wiek_do"];
  16. }else{
  17. $wiek_do = "0";
  18. }
  19.  
  20.  
  21. if(isset($_POST["nazwa"])){
  22.  
  23. if ($_POST['foto'] == '1'){
  24. $statusfoto = "and p.profilowe='1'";
  25. }
  26.  
  27. if ($_POST['online'] == '1'){
  28. $status = "and a.online='1'";
  29. }
  30.  
  31. //$result = mysql_query("SELECT * FROM `users` Where user_name Like '%{$_POST['nazwa']}%' and plec Like '%{$_POST['plec']}%' $status and data_rok BETWEEN '$wiek_do' AND '$wiek_od'");
  32.  
  33. //$result = mysql_query("SELECT a.*, p.profilowe, FROM users AS a JOIN photo AS p ON a.user_id = p.id_user Where a.user_name Like '%{$_POST['nazwa']}%' and a.plec Like '%{$_POST['plec']}%' $status and a.data_rok BETWEEN '$wiek_do' AND '$wiek_od'");
  34.  
  35. $result = mysql_query("SELECT * FROM users a LEFT JOIN photo p ON a.user_id = p.id_user Where user_name Like '%{$_POST['nazwa']}%' and plec Like '%{$_POST['plec']}%' $status $statusfoto and data_rok BETWEEN '$wiek_do' AND '$wiek_od'");
  36.  
  37. if(mysql_num_rows($result) == 0) {
  38. echo '<p class="error">Nie znalaziono pasujących profili</p>';
  39. exit();
  40. }
  41.  
  42. while($row = mysql_fetch_assoc($result)) {
  43.  
  44. $foto=mysql_query("select * from photo WHERE id_user ={$row['user_id']} AND profilowe=1 LIMIT 1");
  45.  
  46. if(mysql_num_rows($foto) > 0) {
  47. while ($wiersz = mysql_fetch_assoc($foto))
  48. {
  49. $link = '/'.$wiersz['link'];
  50. }
  51. }else{
  52. $link = '/img/nopic.jpg';
  53. }
  54.  
  55. echo'<div id="visitor_content">';
  56. echo'<div class="user_photo_visitor" style="background:url(\''.$link.'\')repeat scroll 0% 0% / 100% 100% transparent;"></div>';
  57. echo'<div class="visitor_info">
  58. <p style="margin: 0px; font-size: 17px; font-weight: bold; color: rgb(255, 162, 0);">'.$row['user_name'].'</p>
  59. <a href="/profil/'.$row["visitor_id"].'"><img src="/img/ikony/profilep2.png" class="iconmenu">Zobacz profil</a>
  60. <a href="/napisz/'.$daneuser['user_name'].'"><img src="/img/ikony/privmessage2.png" class="iconmenu">Wiadomość</a>
  61. <a href="/profil/zablokuj/'.$row["visitor_id"].'"><img src="/img/ikony/block2.png" class="iconmenu">Zablokuj</a>
  62. </div>';
  63. echo'</div>';
  64. }
  65. exit();
  66. }
  67.  
  68.  
  69.  
  70. ?>


Jeżeli kliknę wyszukaj bez podawania jakichkolwiek danych TO wyświetla mi dwa razy użytkownika TESTOWY a resztę użytkowników pokazuje mi normalnie.

TESTOWY w bazie danych w tabeli PHOTO ma dwa zdjęcia może dlatego?
Ale tylko jedno ma ustawione jako "1" czyli profilowe.

Ok dodałem GROUP BY
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.