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 14.07.2007, 10:44:39
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 14.07.2007, 10:50:29
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 14.07.2007, 10:52:32
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 14.07.2007, 11:01:24
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 14.07.2007, 11:10:12
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 14.07.2007, 11:22:03
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 14.07.2007, 11:31:43
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 14.07.2007, 11:42:08
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


blink.gif
Go to the top of the page
+Quote Post
delfinium
post 14.07.2007, 11:48:35
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 smile.gif
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 Wersja Lo-Fi Aktualny czas: 20.07.2025 - 11:09