Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] Jak napisać takie zapytanie?
Forum PHP.pl > Forum > Przedszkole
wlamywacz
Chciałbym aby:

Wybierało mi z tabeli znajomi informacje kto (zalogowany user) i kogo (osobe którą ma wyświetlić) następnie pobiera tabele zdjecia i wyświetla ostatnie zdjęcia tych osób maxymalnie 5 np.

Prosze o pomoc bo troche już kombinuje no i potrafie tego napisać.
kossa
Odpowidź na podstawie tego co napisałeś to już sam sobie udzieliłeś w swoim opisie.

Podaj strukturę tabel na jakich pracujesz aby ktoś z Forumowiczów mógł Tobie pomóc napisać zapytanie sql.

Łukasz
wlamywacz
Struktura tabel jest taka:
znajomi
id | kto | kogo
zdjecia
id | user | foto | data | czas
lukasz.sekula
nie wiem czy dokładnie Cię zrozumiałem ale to wyświetli Ci 5 zdjęć ostatnich 5 userów...

  1. <?php
  2. $pytanie = mysql_query("SELECT id,kto,kogo FROM znajomi ORDER BY id DESC LIMIT 0,5");
  3. while ($rekord = mysql_fetch_array($pytanie))
  4. {
  5. echo '<p>nazwa user: '.$rekord['kto'].'</p>';
  6. $user_id=$rekord['id'];
  7.  
  8. $pytanie2 = mysql_query("SELECT foto FROM zdjecia WHERE user='$user_id' ORDER BY id DESC LIMIT 0,5");
  9. while ($rekord2 = mysql_fetch_array($pytanie2))
  10. {
  11. echo '<div><img src="katalog_z_fotkami/'.$rekord['foto'].'"</div>'
  12. }
  13. }
  14. ?>
wlamywacz
Dziękuje za pomoc ale takie coś też potrafie smile.gif Chodzi o to aby wyświetliło ostatnie foto każde znajomego max 5 a tu jest ostatnie 5 fotek
kossa
jeśli jest 5 ostatnich a chcesz tylko jedno to zmień na limit 1 smile.gif

Łukasz
wlamywacz
Jaki limit ? Jak dam limit wyświetli mi jedno zdjęcie! Potrzebuje aby wyświetliło mi ostatnią fotke każdego ze znajomych tak to powiem.
lukasz.sekula
no to nie dawaj limitu na zapytaniu sql dotyczacym znajomych wtedy wyswietli wszystich a na zdjeciach usatw limit ze ile ostatnich zdjec ma wyswietlic...pamietaj ze w drugim zapytaniu sprawdzasz tylko fotki danego usera....

chyba o to chodzilo....
Kicok
  1. <?php
  2. $result = mysql_query("SELECT `kogo` FROM `znajomi` WHERE (`kto` = {$_SESSION['some_logged_user_id']}) ORDER BY `kogo` ASC;");
  3. while($row = mysql_fetch_assoc($result))
  4. {
  5. echo('<h4>'.htmlspecialchars($row['kogo']).'</h4>');
  6.  
  7. $result_2 = mysql_query("SELECT `foto` WHERE (`user` = '{$row['kogo']}') ODRED BY `data` DESC, `czas` DESC LIMIT 5;");
  8. while($row_2 = mysql_fetch_assoc($result_2))
  9. {
  10. echo('<img src="'.$row_2['foto'].'" alt="'.htmlspecialchars($row['kogo']).'" /><br />');
  11. }
  12. }
  13. ?>


Powinno działać, tyle że mi osobiście nie podoba się umieszczanie mysql_query() w jakiejkolwiek pętli. Tyle że nie mam teraz pomysłu jak to zoptymalizować tongue.gif
wlamywacz
Taki kod mam jaki dał kolega wyżej:

  1. <?php
  2. $result = mysql_query("SELECT `kogo` FROM `znajomi` WHERE (`kto` = '$user') ORDER BY `kogo` ASC;");
  3. while($row = mysql_fetch_assoc($result))
  4. {
  5. echo('<h4>'.htmlspecialchars($row['kogo']).'</h4>');
  6. $xxx = $row['kogo'];
  7.  
  8. $result_2 = mysql_query("SELECT `foto` WHERE (`user` = '$xxx') ODRED BY `data` DESC, `czas` DESC LIMIT 5;");
  9. while($row_2 = mysql_fetch_assoc($result_2))
  10. {
  11. echo('<img src="'.$row_2['foto'].'" alt="'.htmlspecialchars($row['kogo']).'" /><br />');
  12. }
  13. }
  14. ?>


Ale daje błąd:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in d:\usr\apache\httpd\html\pokaz.php on line 204

Chodzi o to drugie zapytanie :/
JaRoPHP
W zapytaniu SQL brak klauzuli FROM.

Raportuj sobie błędy wyświetlając zmienną zawierającą zapytanie oraz korzystaj z mysql_error" title="Zobacz w manualu PHP" target="_manual.
Schematycznie:
  1. <?php
  2. $query = "...";
  3. echo $query;
  4. mysql_query($query) or die(mysql_error());
  5. ?>
wlamywacz
Taki kod

  1. <?php
  2. $result = mysql_query("SELECT `kogo` FROM `znajomi` WHERE (`kto` = '$user') ORDER BY `kogo` ASC;");
  3. while($row = mysql_fetch_assoc($result))
  4. {
  5. echo('<h4 style="color: #FFFFFF">'.htmlspecialchars($row['kogo']).'</h4>');
  6. $userz = $row['kogo'];
  7. $literaz = substr($row['kogo'], 0, 1);
  8.  
  9. $result_2 = mysql_query("SELECT * FROM `zdjecia` WHERE (`user` = '$userz') ORDER BY `id` DESC LIMIT 1;") or die(mysql_error());
  10. while($row_2 = mysql_fetch_assoc($result_2))
  11. {
  12. echo('<img src="/zdjecia/'.$literaz.'/'.$userz.'/small_'.$row_2['foto'].'.jpg" alt="'.htmlspecialchars($row['kogo']).'" /><br />');
  13. }
  14. }
  15. ?>


Jak zrobić aby przesortować to co wyświetla tak aby pokazywało od ostatnio dodanego zdjęcia?
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.