Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> problemy z wyświetlaniem screenów po zmianie kodu, nie wyświetlaja sie obrazki ani $fid...
k_c2or
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 21.02.2003
Skąd: Białystok

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


miałem taki kod.
  1. <?
  2. //screens
  3. $screens = '';
  4. $scr = explode("|||", $rdata[screenshots]);
  5. $licz = count($scr);
  6. if ($licz > 0)
  7. {
  8. $scr_rand_array = array();
  9. if ($licz < 4)
  10. {
  11. $licz_temp = $licz;
  12. while ($licz_temp >= 0)
  13. {
  14. $scr_rand_array[] = rand(0, $licz);
  15. $licz_temp--;
  16. }
  17. }
  18. else
  19. {
  20. for ($licz_temp = 0; $licz_temp<4; $licz_temp++)
  21. {
  22. $scr_rand_array[] = rand(0, $licz);
  23. }
  24. }
  25. foreach ($scr_rand_array as $numerek)
  26. {
  27. if ($scr[$numerek] !== '')
  28. {
  29. $screens .= '<a href="reviews_screens.php?rid='.$_GET[rid].'&fid='.$numerek.'"><img src="thumbnail5.php?filename='.$scr[$numerek].'" border="0" alt=""></a><br>';
  30. }
  31. }
  32. }
  33. ?>

i powiedzmy że wszystko działało jak trzeba mniej więcej. Natomiast po zmianie na ten kod, który miał rozwiązać parę rzeczy z powyższego:
  1. <?
  2. //screens
  3. $screens = '';
  4. $scr = explode("|||", $rdata[screenshots]);
  5.  
  6. $licz = count($scr)-1;
  7. if ($licz > 0)
  8. {
  9. $scr_rand_array = array();
  10. if ($licz < 4)
  11. {
  12. $licz_temp = $licz;
  13. while ($licz_temp >= 0)
  14. {
  15. while ($rand !== $licz_temp)
  16. {
  17. $rand = rand(0, $licz-1);
  18. }
  19. $scr_rand_array[] = $rand;
  20. $licz_temp--;
  21. }
  22. }
  23. else
  24. {
  25. for ($licz_temp = 0; $licz_temp<4; $licz_temp++)
  26. {
  27. while ($rand !== $scr_rand_array[$licz_temp])
  28. {
  29. $rand = rand(0, $licz-1);
  30. }
  31. $scr_rand_array[] = $rand;
  32. }
  33. }
  34. foreach ($scr_rand_array as $numerek)
  35. {
  36. if ($scr[$numerek] !== '')
  37. {
  38. $screens .= '<a href="reviews_screens.php?rid='.$_GET[rid].'&fid='.$numerek.'"><img src="thumbnail5.php?filename='.$scr[numerek].'" alt="" style="border: 4px solid #000000;"></a><br /><br />';
  39. }
  40. }
  41. }
  42. ?>

przestało to działać w ogóle, tzn. nie wyswietlaja sie obrazki ani pod linkiem do nich nie ma zmiennej fid, tzn jest ale nie ma wartości i wyglada to http://.../reviews_screen.php?rid=276&fid=

moze mi ktos powiedziec co sie stało że sie z...?


--------------------
filmy, filmy, muzyka, muzyka, gry, gry
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




podoba mi się ten kod:
  1. <?php
  2. while ($rand !== $licz_temp)
  3. {
  4. $rand = rand(0, $licz-1);
  5. }
  6. ?>

a wiesz ja można zapisać go krócej? o tak:
  1. <?php
  2. $rand = $licz_temp;
  3. ?>

A wiesz czemu? Bo ty w pętli krążysz tak długo, dopóki $rand jest różny od $licz_temp. Gdy się zrównają, to pętla się konczy.

a fid masz puste bo pewnie $numerek masz puste. A numerek masz puste, bo pewnie ci w tą petle nie wchodzi i do tablicy zapiujesz nic, bo ty nigdzie tego $rand nie inicjujesz na początku.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


  1. <?php
  2.  
  3. //screens
  4. $screens = '';
  5. $scr = explode("|||", $rdata[screenshots]);
  6. $licz = count($scr)-1;
  7.  
  8. if ($licz > 0)
  9. {
  10.     $scr_rand_array = array();
  11.     if ($licz < 4)
  12.     {
  13.         $licz_temp = $licz;
  14.         while ($licz_temp >= 0)
  15.         {
  16.             while ($rand !== $licz_temp)
  17.             {
  18.                 $rand = rand(0, $licz-1);
  19.                 
  20.             }
  21.             
  22.             $scr_rand_array[] = $rand;
  23.             $licz_temp--;
  24.         }
  25.     }
  26.     
  27.     else
  28.     {
  29.        
  30.         for ($licz_temp = 0; $licz_temp<4; $licz_temp++)
  31.         {
  32.             
  33.             while ($rand !== $scr_rand_array[$licz_temp]) 
  34.             {
  35.                 $rand = rand(0, $licz-1);
  36.                 die(); // ten warunek nie jest spelniony, co za tym idzie $numerek 
  37.                        // pozostaje NULL
  38.             }
  39.             
  40.             $scr_rand_array[] = $rand;
  41.         }
  42.     }
  43.     // var_export($scr_rand_array); 
  44.     
  45.     foreach ($scr_rand_array as $numerek)
  46.     {
  47.         // var_export($numerek); Numerek ma wartosc NULL dlatego jest pusto, 
  48.         
  49.         if ($scr[$numerek] !== '')
  50.         {
  51.             
  52.             $screens .= '<a href="reviews_screens.php?rid='.$_GET[rid].'&fid='.$numerek.'"><img src="thumbnail5.php?filename='.$scr[$numerek].'" alt="" style="border: 4px solid #000000;"></a><br /><br />' . "n";
  53.         }
  54.     }
  55. }
  56.  
  57. ?>


Dodałem komentarze, teraz powinno Ci pójść łatwiej poprawanie...

Pozdrawiam!


--------------------
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 - 01:37