Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mysql] Jak napisać takie zapytanie?
wlamywacz
post
Post #1





Grupa: Zarejestrowani
Postów: 535
Pomógł: 27
Dołączył: 3.05.2005

Ostrzeżenie: (20%)
X----


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ć.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
kossa
post
Post #2





Grupa: Zarejestrowani
Postów: 1 165
Pomógł: 9
Dołączył: 9.04.2002
Skąd: Toruń

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


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


--------------------
Go to the top of the page
+Quote Post
wlamywacz
post
Post #3





Grupa: Zarejestrowani
Postów: 535
Pomógł: 27
Dołączył: 3.05.2005

Ostrzeżenie: (20%)
X----


Struktura tabel jest taka:
znajomi
id | kto | kogo
zdjecia
id | user | foto | data | czas
Go to the top of the page
+Quote Post
lukasz.sekula
post
Post #4





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 8.03.2007
Skąd: Nysa

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


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. ?>
Go to the top of the page
+Quote Post
wlamywacz
post
Post #5





Grupa: Zarejestrowani
Postów: 535
Pomógł: 27
Dołączył: 3.05.2005

Ostrzeżenie: (20%)
X----


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
Go to the top of the page
+Quote Post
kossa
post
Post #6





Grupa: Zarejestrowani
Postów: 1 165
Pomógł: 9
Dołączył: 9.04.2002
Skąd: Toruń

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


jeśli jest 5 ostatnich a chcesz tylko jedno to zmień na limit 1 smile.gif

Łukasz


--------------------
Go to the top of the page
+Quote Post
wlamywacz
post
Post #7





Grupa: Zarejestrowani
Postów: 535
Pomógł: 27
Dołączył: 3.05.2005

Ostrzeżenie: (20%)
X----


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.
Go to the top of the page
+Quote Post
lukasz.sekula
post
Post #8





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 8.03.2007
Skąd: Nysa

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


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....
Go to the top of the page
+Quote Post
Kicok
post
Post #9





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


  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


--------------------
"Sumienie mam czyste, bo nieużywane."
Go to the top of the page
+Quote Post
wlamywacz
post
Post #10





Grupa: Zarejestrowani
Postów: 535
Pomógł: 27
Dołączył: 3.05.2005

Ostrzeżenie: (20%)
X----


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 :/
Go to the top of the page
+Quote Post
JaRoPHP
post
Post #11





Grupa: Zarejestrowani
Postów: 675
Pomógł: 15
Dołączył: 7.11.2004
Skąd: Katowice

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


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. ?>


Ten post edytował JaRoPHP 9.03.2007, 07:44:35


--------------------
Kto pyta, nie błądzi...
Kto zbłądził, ten pyta...
Go to the top of the page
+Quote Post
wlamywacz
post
Post #12





Grupa: Zarejestrowani
Postów: 535
Pomógł: 27
Dołączył: 3.05.2005

Ostrzeżenie: (20%)
X----


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?
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 06:49