Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problemy z wyświetlaniem screenów po zmianie kodu
Forum PHP.pl > Forum > PHP
k_c2or
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...?
nospor
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.
strife
  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!
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.