Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Ścieżka do obrazka zależna od nazwy
Forum PHP.pl > Forum > Przedszkole
nikos
Witam próbuję wykonać skrypt który będzie wykorzystywał pobraną nazwę z bazy i wklejał ją do ścieżki zdjęcia. Są to zdjęcia hoteli, każdy hotel ma zdjęcia w folderze o nazwie (hotelu końcowej nazwie). Najpierw pobieram z bazy nazwę hotelu następnie wycinam początek nazwy
a koniec wklejam w link do zdjęcia.
A oto kod
  1. <?php
  2. // podłączamy plik connection2.php
  3. require "connection2.php";
  4. // wywołujemy funkcję connection()
  5. connection();
  6. mysql_query('SET NAMES utf8');
  7. /* zapytanie do konkretnej tabeli */
  8. $wynik = mysql_query("SELECT * FROM `wygodne` ORDER BY RAND() LIMIT 0, 1")
  9. or die('Błąd zapytania');
  10.  
  11. /*
  12. wyświetlamy wyniki, sprawdzamy,
  13. czy zapytanie zwróciło wartość większą od 0
  14. */
  15. if(mysql_num_rows($wynik) > 0) {
  16. /* jeżeli wynik jest pozytywny, to wyświetlamy dane */
  17. while($r = mysql_fetch_assoc($wynik)) {
  18.  
  19. /*
  20. $dojscie=$r['nazwa hotelu/imprezy'];
  21. echo $dojscie;
  22. */
  23.  
  24. function slowo($zmienna) {
  25. $potnij=explode(' ',$zmienna);
  26. $l=strlen($zmienna);
  27. for($i=1; $i<$l; $i++) {
  28. if(empty($potnij[$i])) {
  29. $ostatnie=$potnij[$i-1];
  30. echo $ostatnie;
  31. }
  32.  
  33. }
  34.  
  35. }
  36.  
  37.  
  38.  
  39.  
  40. ?>
  41. <img src="http://travelos.pl/skrypty/images/<?php slowo($r['nazwa hotelu/imprezy']) ?>/1.jpg" alt="" />
  42. <?php
  43.  
  44.  
  45. }
  46.  
  47. }
  48.  
  49. ?>


i wszystko jest ok ale co jeśli chciałbym wyświetlić więcej ofert? np zmienić limit wyświetlania na 5? Wtedy pojawia się błąd

Fatal error: Cannot redeclare slowo() (previously declared in /travelos/web/www/skrypty/o.php:24) in /web/www/skrypty/o.php on line 24
Przypuszczam że gdzieś w pętli tkwi błąd no bo przecież mogę użyć funkcji słowo klika razy
potreb
Nie możesz zadeklarować kilka razy funkcję slowo, jak dostałeś warna Cannot redeclare slowo() tzn że nie można ponownie zadeklarować tej samej funkcję o tej nazwie.

Skoro pisałeś ten kod to chyba widzisz, że masz limit 1 pętla się wykona i deklaracja zmiennej jak dasz limit 5 to będzie pętla deklarować 5 razy funkcję
vokiel
jw. czytaj co piszą w komunikatach

wyrzuć funkcję poza pętlę
sadistic_son
Użyć możesz jej kilka razy ale zdeklarować nie. A Ty deklarujesz ją w pętli while, więc za każdym razem od nowa. Wywal deklarację funkcji przed pętle i będzie ok.
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.