Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]laickie pytanie o funkcje ale problem jest
Forum PHP.pl > Forum > Przedszkole
lamcpp
witam, mam taki problem, w aplikacji mam masę powtarzającego się kodu
postanowiłem więc że zrobie z tego funkcje i poprostu będę wywoływał ją w miejscu programu gdzie ma nastąpić ten kod.
Więc dodałem do swojego pliku z funkcjami:
  1. function wyswietl_zdj_pag()
  2. {
  3. $number_of_thumbs_in_row = 5;
  4. $num = mysqli_num_rows($wynik);
  5. if(empty($num))
  6. {
  7. echo 'Brak zdjęć do wyświetlenia<br />';
  8. }
  9. else
  10. {
  11. while($res = mysqli_fetch_array($wynik))
  12. {
  13. $jid = $res['id'];
  14. $bierzacy_adres = absolute_url("$jid.jpg");
  15.  
  16. $size = GetImageSize($images_dir."/tb_".$res[2]);
  17. if($size[0] > $size[1])
  18. {
  19. $wyswietlam = "<div id='zdjecie_poz'>";
  20. if($counter == $number_of_thumbs_in_row)
  21. {
  22. $counter = 1;
  23. echo "<br /><br />\n";
  24. }
  25. else
  26. $counter++;
  27. echo $wyswietlam."<a href='".$images_dir."/".$res[2]."' rel='lytebox[vacation]' title='$bierzacy_adres'><img src='".$images_dir."/tb_".$res[2]."' border='0' alt='".$res[1]."' /></a>"."</div>";
  28. }
  29. else if($size[0] < $size[1])
  30. {
  31. $wyswietlam = "<div id='zdjecie_pion'>";
  32. if($counter == $number_of_thumbs_in_row)
  33. {
  34. $counter = 1;
  35. echo "<br /><br />\n";
  36. }
  37. else
  38. $counter++;
  39. echo $wyswietlam."<a href='".$images_dir."/".$res[2]."' rel='lytebox[vacation]' title='$bierzacy_adres'><img src='".$images_dir."/tb_".$res[2]."' border='0' alt='".$res[1]."' /></a>"."</div>";
  40.  
  41. }
  42. }
  43.  
  44. if($ilosc_stron > 1)
  45. {
  46. echo '<br /><span class="pagination">';
  47. $bierzaca_strona = ($start / $strona) + 1;
  48. if($bierzaca_strona != 1)
  49. {
  50. echo '<a href="index.php?s='.($start - $strona).'&p='.$ilosc_stron.'">Poprzednia</a>';
  51. }
  52. for($i=1; $i<=$ilosc_stron; $i++)
  53. {
  54. if($i != $bierzaca_strona)
  55. {
  56. echo '<a href="index.php?s='.(($strona * ($i-1))).'&p='.$ilosc_stron.'">'.$i.'</a>';
  57. }
  58. else
  59. {
  60. echo $i.' ';
  61. }
  62. }
  63. if($bierzaca_strona != $ilosc_stron)
  64. {
  65. echo '<a href="index.php?s='.($start+$strona).'&p='.$pages.'">Następna</a></span>';
  66. }
  67. }
  68. }
  69. }

i teraz chce to wyświetlić w dowolnym miejscu na stronie, wywołuje więc funkcje po nazwie pisząc:
  1. wyswietl_zdj_pag()

Jednak zamiast dodać kod funkcji to wyskakuje mi błąd, tak jakby kod funkcji wogóle nie został dodany do programu.
marcio
Nie patrzylem na funkcje ale przy wywolaniu funkcji brakuje ci ;
lamcpp
średnik byłsmile.gif
chodzi mi bardziej o to czy można tak wywoływać funkcje, która moim zdaniem z założenia powinna pobierać jakieś argumenty(choć tego akurat nie musi) ale powinna zwracać jakąś wartość, a u mnie to jest sam tekst.
Póki co doraznie wrzuciłem go do nowego pliku i dodałem za pomocą include i wszytko jest ok, ale jak próbuje dodać ten tekst do funkcji to tak jakby php go ignorował.
W innych językach był podział na funkcje i procedury i jakoś tak moim zdaniem przejrzyściej było,
wsumie wydaje mi się, że pliki z samym tekstem dodaje się własnie za pomocą np include, ale jesli coś bedzie zmieniało sie w tym tekscie np. polecenie SQL to przesłać jako argument, tylko tak jak mówie, jakoś to nie działa za dobrze.
Czy funkcja w PHP musi zwracać jakąś wartość?
marcio
Nie rozumiem w czym problem funkcja dziala czy nie jak nie pokaz blad.




Cytat
Czy funkcja w PHP musi zwracać jakąś wartość?


Nie nie musi to zalezy od ciebie i co ma robic funckja jednak wedlug mnie najlepiej jest zwracac wartosci wtedy chce je wyswietlic dajesz echo()/print(), chcesz zapisac podajesz wynik funkcji innej funkcji a jak masz echo to nic nie zrobisz.

piotr94
pewnie problem tkwi w zmiennych, na początku funkcji mususz dać wszystkie zmienne (takie jak połączenie z bazą danych, storna, ...) jako global $zmienna;
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.