Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> BŁĄD - Warning: Division by zero in:, Prosze o pomoc
magicoparma
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 14.07.2007

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


Wiem ze byl ostatnio taki temat ale moje błąd rozni sie troche od tamtego.


Komunikat błędu

Warning: Division by zero in /var/www/sites/yoyo.pl/f/c/fcparma/news/show.php on line 35


wyswietla sie to na stronie głownej
ponizej macie fragment kodu, a pogrubiona jest ta linijka 35


$newsfile = file("$newspath/news.txt");
$count = count($newsfile);
if($config["stronicownie"] != "off"){
if(!isset($_GET["npage"])){ $npage = "1"; }
else{ $npage = $_GET["npage"]; }
$ilestron = $count/$config["stronicowanie"];
$ilestron = ceil($ilestron);
$begin = $count - $config["stronicowanie"]*($npage-1);
if($begin>$count){ $begin = $count; }
$end = $begin - $config["stronicowanie"];
if($end<0){ $end = 0; }
}


wiecie moze jak to naprawic, dodam jedynie ze jest to system newsow PSNews, dziala on juz ponad rok, i dopiero dzisiaj rano cos takiego wyskoczylo

dzieki i pozdr

Ten post edytował magicoparma 14.07.2007, 10:45:21
Go to the top of the page
+Quote Post
delfinium
post
Post #2





Grupa: Zarejestrowani
Postów: 90
Pomógł: 6
Dołączył: 30.06.2007
Skąd: Zielona Góra

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


Zamień
  1. <?php
  2. $ilestron = $count/$config['stronicowanie'];
  3. ?>


na
  1. <?php
  2. if ( $config['stronicowanie'] == 0 ) {
  3. $ilestron = 0;
  4. } else {
  5. $ilestron = $count/$config['stronicowanie'];
  6. }
  7. ?>
Go to the top of the page
+Quote Post
Ludvik
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 698
Pomógł: 3
Dołączył: 28.03.2004
Skąd: Wrocław

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


Cytat
Wiem ze byl ostatnio taki temat ale moje błąd rozni sie troche od tamtego.

W tym rzecz, że nie różni się... Dzielenie przez zero zawsze powoduje ten sam błąd.

Po prostu musisz zadbać o to, żeby zmienna $config["stronicowanie"] nie była nigdy równa zeru. Albo wyrzucając jakiś bardziej cywylizowany błąd, albo jeżeli jest to wartość poprawna (np. miała sygnalizować wyłączenie stronicowania), to dopisać specjalny przypadek użycia.
Go to the top of the page
+Quote Post
magicoparma
post
Post #4





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 14.07.2007

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


zrobiłem to co napisał delfinium , ale niestety nie wyswietlają sie zadne newsy ( pisze strona1 z 0), mimo ze w panelu administracyjnym jest ich ponad 400

http://fcparma.pl/ - zobaczcie sami

Ten post edytował magicoparma 14.07.2007, 11:04:11
Go to the top of the page
+Quote Post
delfinium
post
Post #5





Grupa: Zarejestrowani
Postów: 90
Pomógł: 6
Dołączył: 30.06.2007
Skąd: Zielona Góra

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


1. Skoro masz włączone stronicowanie to zmienna #config['stronicowanie'] powinna być większa niż 0, widocznie masz ją nieustawioną albo ustawioną na 0 albo na "On", co w przypadku zamiany na int wychodzi na to samo

2. dodaj zaraz za linią

  1. <?php
  2. if ( $config['stronicownie'] != 'Off' ) {
  3. ?>


coś takiego

  1. <?php
  2. if ( $config['stronicowanie'] == 0 ) $config['stronicowanie'] = 10;
  3. ?>


i napisz co się dzieje.

3. Czy mi się wydaje, czy tam jest w kodzie literówka, w tym ifie jest klucz "stronicownie", brakuje literki A
Go to the top of the page
+Quote Post
magicoparma
post
Post #6





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 14.07.2007

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


czyli wg Ciebie kod tak ma wyglądać:


Kod
newsfile = file("$newspath/news.txt");
$count = count($newsfile);
if($config["stronicowanie"] != "off"){
if(!isset($_GET["npage"])){ $npage = "1"; }
else{ $npage = $_GET["npage"]; }
if ( $config["stronicowanie"] == 0 ) $config['stronicowanie'] = 10
$ilestron = 0;
} else {
$ilestron = $count/$config["stronicowanie"];



to jeszcze raz dla ułatwieni awrzuce ten stary zły kod :
Kod
$newsfile = file("$newspath/news.txt");
$count = count($newsfile);
if($config["stronicownie"] != "off"){
if(!isset($_GET["npage"])){ $npage = "1"; }
else{ $npage = $_GET["npage"]; }
$ilestron = $count/$config["stronicowanie"];
$ilestron = ceil($ilestron);
$begin = $count - $config["stronicowanie"]*($npage-1);
if($begin>$count){ $begin = $count; }
$end = $begin - $config["stronicowanie"];
if($end<0){ $end = 0; }



jesli tak to nadal nic sie nie wyswietla, a jak nie to miales na mysli to napisz na podstawie tego kodu jak to ma być

Ten post edytował magicoparma 14.07.2007, 11:25:34
Go to the top of the page
+Quote Post
delfinium
post
Post #7





Grupa: Zarejestrowani
Postów: 90
Pomógł: 6
Dołączył: 30.06.2007
Skąd: Zielona Góra

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


Jak dla mnie ten kod powinien wyglądać tak:

  1. <?php
  2. $newsfile = file( $newspath . '/news.txt' );
  3. $count = count( $newsfile );
  4. if ( $config['stronicowanie'] != 'off' ) {
  5. if ( !isset( $_GET['npage'] ) ) {
  6. $npage = 1;
  7. } else {
  8. $npage = $_GET['npage'];
  9. }
  10. if ( $config['stronicowanie'] == 0 ) $config['stronicowanie'] = 10;
  11. $ilestron = $count / $config['stronicowanie'];
  12. $ilestron = ceil( $ilestron );
  13. $begin = $count - $config['stronicowanie'] * ( $npage - 1 );
  14. if ( $begin > $count ) {
  15. $begin = $count;
  16. }
  17. $end = $begin - $config['stronicowanie'];
  18. if ( $end < 0 ) {
  19. $end = 0;
  20. }
  21. }
  22. ?>


i moim zdaniem to powinno, podkreślam powinno wyciągnąć na stronę 10 newsów.

Mam prośbę, abyś wyświetlił sobie i potem tutaj napisał jakie są wartości $count oraz $config['stonicowanie'].
Go to the top of the page
+Quote Post
magicoparma
post
Post #8





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 14.07.2007

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


Zrobilem to i wyswietla sie


Parse error: syntax error, unexpected T_CASE in /var/www/sites/yoyo.pl/f/c/fcparma/news/show.php on line 102


(IMG:http://forum.php.pl/style_emoticons/default/blink.gif)
Go to the top of the page
+Quote Post
delfinium
post
Post #9





Grupa: Zarejestrowani
Postów: 90
Pomógł: 6
Dołączył: 30.06.2007
Skąd: Zielona Góra

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


Bo coś źle wkleiłeś, pewnie nawiasy, przejdźmy na PW bo taka wymiana zdań może potrwać lata (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 03:14