Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> optymalizacja prostego zapytania
Tymto
post 6.01.2009, 23:20:21
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 6.01.2009

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


Witam

mam taki oto działający kod:

  1. <?php
  2. $zapytanie ="SELECT friends.sender, friends.receiver FROM friends WHERE (friends.ver=1) AND (friends.receiver='$profileid[user_id]' OR friends.sender='$profileid[user_id]') order by id DESC limit 5";
  3.            $wynik=mysqli_query($db, $zapytanie);
  4.            $rows_number=mysqli_num_rows($wynik);
  5.            echo 'last added friends:<br>';
  6.                for ($i=1; $i<=$rows_number; $i++)
  7.                {
  8.                $row=mysqli_fetch_assoc($wynik);
  9.  
  10.                    if ($row['receiver']==$profileid[user_id])
  11.                    {
  12.                    $send2 ="SELECT user_login FROM users WHERE user_id='$row[sender]'";
  13.                    $answer3=mysqli_query($db, $send2);
  14.                    $friendname=mysqli_fetch_array($answer3);
  15.                    $friendname2=str_replace(' ', '_', $friendname['user_login']);
  16.                    echo '<br>';
  17.                    echo '<a href="user.php?profile='.$friendname2.'"><img src="./mini/'.$row[sender].'.jpg" alt="wrong picture" border=0/></a><br><a href="user.php?profile='.$friendname2.'">'.$friendname['user_login'].'</a>';
  18.                    }
  19.                    if ($row['sender']==$profileid[user_id])
  20.                    {
  21.                    $send2 ="SELECT user_login FROM users WHERE user_id='$row[receiver]'";
  22.                    $answer3=mysqli_query($db, $send2);
  23.                    $friendname=mysqli_fetch_array($answer3);
  24.                    $friendname2=str_replace(' ', '_', $friendname['user_login']);
  25.                    echo '<br>';
  26.                    echo '<a href="user.php?profile='.$friendname2.'"><img src="./mini/'.$row[receiver].'.jpg" alt="wrong picture" border=0/></a><br><a href="user.php?profile='.$friendname2.'">'.$friendname['user_login'].'</a>';
  27.                    }
  28.                    
  29.                }
  30. ?>


Kod ten dziala na portalu spolecznosciowym i jego zadaniem jest wyświetlenie listy ostatnio dodanych znajomych aktualnie oglądanego profilu. Znajomy jest wyswietlany tylko jesli jego status jako przyjaciela jest potwierdzony, w zapytaniu informajca o potwierdzeniu znajduje sie w kolumnie 'ver' i przyjmuje 1 jesli propozycja przyjazni zostala zaakceptowana. Kod w tej postaci dziala, jednak jestem pewien, że odpowiedz na zapytania ktore znajduja sie w petli for, mozna uzyskac juz w pierwszym zapytaniu select. Dokładnie chodzi o uzyskanie w pierwszym zapytaniu inforcji o user_login z tabeli users. I tutaj moja prośba, czy ktos moglby pomóc mi w zoptymalizowaniu tego zapytania?, z góry dziękuję i pozdrawiam.

Struktura tabel:

friends:
-sender (przechowuje wartosc user_id z tabeli users)
-receiver (przechowuje wartosc user_id z tabeli users)
-ver (status znajomsci, 1=potwierdzona, 0= niepotwierdzona)

users:
-user_id
-user_login
-...
Go to the top of the page
+Quote Post

Posty w temacie


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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 11:36