Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Komentarze do niusow na plikach i chyba problem z zerem - false
Volume
post
Post #1





Grupa: Zarejestrowani
Postów: 283
Pomógł: 11
Dołączył: 11.10.2004
Skąd: 3c

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


Nie moge sobie poradzic juz pre razy natknalem sie na ten problem i ciagle nie wiem jak najsensowniej z niego wybrnac.
Chodzi mianowicie o to, ze gdy chce cos uzyskac w petli np. for i indeksuje mi to jako zero to zamierzony cel sie nie realizuje.
Juz sprecyzuje o co mi chodzi, np teraz staram sie zrobic komentarze do niusow ktore pobierane sa z pliku txt, gdzie niusy sa zapisane w postaci: linia: nr||autor||tresc||data itd.

wyciagm dane w ten sposob:

plik: news.php
  1. <p><a href="index.php">Napisz newsa</a></p>
  2. <?php
  3.  
  4. $dane = file('plik.txt');
  5. $str;
  6.  
  7. /* do stronicowania */
  8. if (isset($_GET['str'])) $str = $_GET['str']-1;
  9. else $str = 0;
  10.  
  11. $all = count($dane);
  12. echo $all;
  13. $comments_on_page = 3;
  14.  
  15. for($i=0;$i<count($dane);$i++)
  16. {
  17. list($_nr[$i], $_tytul[$i], $_tresc[$i], $_autor[$i], $_data[$i]) = explode("||", $dane[$i]);
  18. }
  19.  
  20. for ($i = $str*$comments_on_page; $i < $comments_on_page+($str*$comments_on_page); $i++)
  21. {
  22. $dane[$i]=trim($dane[$i]);
  23. if(!empty($dane[$i]))
  24. {
  25. echo '
  26. <div style="margin: 10px; background: green;">
  27. <h2 style="background: yellow;">('.$_nr[$i].') tytul: '.$_tytul[$i].' (data: '.$_data[$i].')</h2>
  28. <p style="background: jellow;">tresc: '.$_tresc[$i].'</p>
  29. <p style="background: orange;">Autor: '.$_autor[$i].'</p>
  30. <p style="background: lime;">';
  31. if(empty($_GET['str'])) echo '<a href="news.php?add='.$i.'">';
  32. else echo '<a href="'.$_SERVER['REQUEST_URI'].'&add='.$i.'">';
  33. echo 'Komentarze</a></p></div>';
  34. }
  35. if(!empty($_GET['add']))
  36. {
  37. if($_GET['add']==$i)
  38. {
  39. echo 'Opcje do dodawania';
  40. }
  41. }
  42. }
  43. echo '</p>';
  44. if ($all > $comments_on_page)
  45. {
  46. echo '<p>';
  47. for ($i=0; $i <= ceil(($all-$comments_on_page)/$comments_on_page); $i++ )
  48. {
  49. if($str==$i) echo '<strong>'.($i+1).'</strong> ';
  50. else echo ' <a href="?str='.($i+1).'">'.($i+1).'</a> ';
  51. }
  52. echo '</p>';
  53. }
  54.  
  55. ?>
Ogolnie dane newsow wyswietalaja sie poprawnie ale gdy chcem dorobic jakies dodatkowe elementy z uzyciem indeksow z petli to w momencie wywolania w linku indeksu "0" - np. ?add=0 - to nie otrzymuje tego co potrzebuje i co natomiast normalnie pojawia sie przy kolejnym indeksie ?add=1 itd.
Do tej pory kombinowalem i zmienialem zliczanie z tablicy od jeden a nie od zera - ale to z koleji powoduje komplikacje przy stronicowaniu - np. nie moge poradzic sobie ze stala liczba niusow na stronie - zawsze na pierwszej jest jeden mniej...

Domyslam sie ze problem z zerem zwiazany jest z tym ze wartosc ta jest rownoznaczna z false wiec skrypt sie nie wykonuje tak jak sie by chcialo.

I teraz moje pytanie czy mozna jakos przemianowac to zero zeby bylo ono jako true? Badz moze ktos zna jakis inny sposob na poradzenie sobie z tym problemem?

Ten post edytował Volume 15.12.2009, 21:28:48
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Volume
post
Post #2





Grupa: Zarejestrowani
Postów: 283
Pomógł: 11
Dołączył: 11.10.2004
Skąd: 3c

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


Dzieki pomoglo z isset - natomiast z przyrownaniem "===" cos dalej nie chcialo, ale tak czy owak zmienilem koncepcje zamiast pobierac indeks bezposrednio z petli $i postanowilem pobierac indeks z nr lini z niusa ($_nr[$i]) - dzieki czemu bede mial stale indeksy co wydaje mi sie, ze ulatwi zapisywanie komentarzy.

Niestety znowu natknalem sie na problem i mysle mysle i dalej nie wiem jak samemu sobie poradzic, moze zeby nie zakladac nowego temtu to spytam sie tu jeszcze o jedna rzecz.

Pjawil mi sie problem taki, ze nie wsywietla mi podstrony dla opcji do komentarza niusa w momencie gdy strona ze stronicowania jest inna niz pierwsza (?str=1).

Aktualnie kod tak wyglada:
  1. <?php
  2.  
  3. $dane = file('plik.txt');
  4. $str;
  5.  
  6. /* do stronicowania */
  7. if (isset($_GET['str'])) $str = $_GET['str']-1;
  8. else $str = 0;
  9.  
  10. $all = count($dane);
  11. echo $all;
  12. $comments_on_page = 4;
  13.  
  14. for($i=0;$i<count($dane);$i++)
  15. {
  16. list($_nr[$i], $_tytul[$i], $_tresc[$i], $_autor[$i], $_data[$i]) = explode("||", $dane[$i]);
  17. }
  18.  
  19. for ($i = $str*$comments_on_page; $i < $comments_on_page+($str*$comments_on_page); $i++)
  20. {
  21. $dane[$i]=trim($dane[$i]);
  22. $news= '<div style="margin: 10px; background: green;">
  23. <h2 style="background: yellow;">('.$_nr[$i].') tytul: '.$_tytul[$i].' (data: '.$_data[$i].')</h2>
  24. <p style="background: jellow;">tresc: '.$_tresc[$i].'</p>
  25. <p style="background: orange;">Autor: '.$_autor[$i].'</p>';
  26. if(!isset($_GET['add']))
  27. {
  28. if(!empty($dane[$i]))
  29. {
  30. echo $news;
  31. echo '<p style="background: lime;"><a href="?add='.$_nr[$i].'">Komentarze</a></p></div>';
  32. }
  33. }
  34. else
  35. {
  36. if($_GET['add']==$_nr[$i])
  37. {
  38. echo $news;
  39. echo '<p style="background: lime;"><a href="?str=1">Wroc do newsow</a></p></div>';
  40. echo '<p>inne opcje dodawania</p>';
  41. }
  42. }
  43. }
  44.  
  45. if ($all > $comments_on_page && empty($_GET['add']))
  46. {
  47. echo '<p>';
  48. for ($i=0; $i <= ceil(($all-$comments_on_page)/$comments_on_page); $i++ )
  49. {
  50. if($str==$i) echo '<strong>'.($i+1).'</strong> ';
  51. else echo ' <a href="?str='.($i+1).'">'.($i+1).'</a> ';
  52. }
  53. echo '</p>';
  54. }
Czy moze ktos wie co jest tego przyczyna, jak mozna by rozwiklac ten problem?

edit: aha doszedlem dlaczegos ie tak dzieje, dlatego ze w petli mam warunek $i<$comments_on_page+($str*$comments_on_page) - wiec ogranicza mi zakres dp ilosci niusow jakie sobie okresle...

Ten post edytował Volume 16.12.2009, 16:48:19
Go to the top of the page
+Quote Post

Posty w temacie


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: 10.10.2025 - 09:24