Kaspian12 13 Kwietnia 2015 13 Kwietnia 2015 Witam! Mam taki oto kod: function friends($id) { global $db_host,$db_user,$db_pass,$db_base,$userdata,$sex; $db = new mysqli($db_host,$db_user,$db_pass,$db_base); $sender_id = $id; $sql = "SELECT * FROM friends WHERE sender_id='$sender_id' OR recipient_id='$sender_id'"; if($result=$db->query($sql)) { if($result->num_rows>0) { foreach ($result as $row) { if($row['status']==2) { if($row['sender_id']==$sender_id) { if(file_exists('images/avatars/'.md5($row['recipient_id']).'.png')) $avatar='images/avatars/'.md5($row['recipient_id']).'.png'; else { if($sex==0) { $avatar='images/avatars/female.png'; } else { $avatar='images/avatars/male.png'; } } echo ''; } else{ if(file_exists('images/avatars/'.md5($row['sender_id']).'.png')) $avatar='images/avatars/'.md5($row['sender_id']).'.png'; else { if($sex==0) { $avatar='images/avatars/female.png'; } else { $avatar='images/avatars/male.png'; } } echo ''; } } else return false; } } else echo 'Brak znajomych'; } else return false; } [/code] Krótko mówiąc wiem, że jest on nieoptymalny i czy mógłby ktoś pomóc z jego optymalizacją tzn. Jak przerobić go żeby oparty był na returnach? Jak zwrócić pętlę foreach? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cuan 13 Kwietnia 2015 13 Kwietnia 2015 Zacznijmy od tego, dlaczego łączysz się z bazą w funkcji? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kaspian12 13 Kwietnia 2015 Autor 13 Kwietnia 2015 Dobre pytanie przyjacielu, już temu zaradziłem. Dalej nie wiem jak przerobić tę funkcję. Możesz mnie jakoś nakierować Czego szukać w internecie? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cuan 13 Kwietnia 2015 13 Kwietnia 2015 1. foreach ($result as $row) <- to nie ma prawa działać. ._. 2. Mniej spacji/tabulatorów. 3. else echo 'Brak znajomych'; funkcja powinna zwracać, nie wyświetlać. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kaspian12 13 Kwietnia 2015 Autor 13 Kwietnia 2015 W takim razie jak zwrócić rezultat zapytania? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cuan 14 Kwietnia 2015 14 Kwietnia 2015 while($row = $result->fetch_assoc()){ } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kaspian12 14 Kwietnia 2015 Autor 14 Kwietnia 2015 I w tego while'a mam dać return $row; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cuan 14 Kwietnia 2015 14 Kwietnia 2015 Nie, tak samo jak użyłeś foreach(). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kaspian12 14 Kwietnia 2015 Autor 14 Kwietnia 2015 3. else echo 'Brak znajomych'; funkcja powinna zwracać, nie wyświetlać. Ok. Po prostu stosowałem się do tego. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Matys 14 Kwietnia 2015 14 Kwietnia 2015 while($row = $result->fetch_assoc()){ } Pętla którą ma ma dobrą składnie. Nie wiem po co zmieniać Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cuan 14 Kwietnia 2015 14 Kwietnia 2015 matys307, Nie, tak samo jak użyłeś foreach(). On chciał użyć return we while. ;-) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kontynuuj dyskusję
Dołącz do Pecetowicza, aby kontynuować dyskusję w tym wątku.