Seite 1 von 1
bcdiv(): Division by zero
Verfasst: So 20.Mär, 2022 14:22
von Icke
Hallo,
wer kann helfen I PHP 7.4 bekomme ich folgende Fehlermeldung:
PHP Warning: bcdiv(): Division by zero in
$bewert = bcdiv( $vote, $vote_poi, 2 );
Die berechnung und Ausgabe erfolgt fehlerfrei!
Re: ???
Verfasst: So 20.Mär, 2022 17:18
von oxpus
Treffender Titel für ein neues Thema
Bist Du Dir sicher, dass $vote_poi an dieser Stelle wirklich ungleich 0 ist und $vote auch einen Wert enthält?
Re: ???
Verfasst: Mo 21.Mär, 2022 05:53
von Icke
Hallo Oxpus,
ja !!!
Habe das in die Datei eingefügt:
<?php
$id = $_REQUEST['id'];
// Vote berechnen
echo $vote;
echo " ";
echo $vote_poi;
$bewert = bcdiv( $vote, $vote_poi, 2 );
und das steht dann im WWW.

Re: ???
Verfasst: Mo 21.Mär, 2022 17:23
von oxpus
Also eine Fehlermeldung kann es dann eigentlich nicht geben, denn dann hätte $bewert den Wert "false" und nicht 5.00.
Und mit deinem Script habe ich auch keine Fehlermeldungen, auch nicht im Server-Log. Und auch getestet unter PHP 7.4.
Aber vielleicht klappt es so bei Dir:
$bewert = bcdiv( (int) $vote, (int) $vote_poi, 2 );
Alternativ geht aber auch dieses hier:
Code: Alles auswählen
$bewert = number_format((int) $vote / (int) $vote_poi, 2);
Ist das gleiche Ergebnis.
Re: bcdiv(): Division by zero
Verfasst: Mi 23.Mär, 2022 07:34
von Icke
Guten Morgen Oxpus,
habe das so in die Datei übernommen.
ERROR_LOG Heute:
23.03.2022 02:22:21 wasserwelt.org [client 20.87.24.0] PHP Warning: Division by zero in /mnt/web424/a2/56/59917356/htdocs/vote_sta.php on line 5
Code:
<?php
$id = $_REQUEST['id'];
// Vote berechnen
$bewert = number_format((int) $vote / (int) $vote_poi, 2);
if($bewert==1) { $bewert_erg = '<img src="../layout/vote_0.gif">'; }
hast du da noch eine Idee ?

Re: bcdiv(): Division by zero
Verfasst: Mi 23.Mär, 2022 08:04
von oxpus
Noch mal:
Sind die Variablen wirklich gesetzt, bevor diese zur Berechnung herangezogen werden?
Nach dem Codeausschnitt sieht das nämlich nicht so aus!
Die Fehlermwldung erscheint auch nur, wenn $vote_poi nicht gesetzt oder 0 ist.
Re: bcdiv(): Division by zero
Verfasst: Do 24.Mär, 2022 07:30
von Icke
Guten Morgen Oxpus,
ja die Variablen sind gesetzt!
Beispiel:
// Statistiken abfragen
$sql_ = " SELECT * FROM tiere_art_vote WHERE id = $tier_id ";
if($result = mysqli_query($db, $sql_))
{
while($row = $result->fetch_assoc())
{
$clicks = $row['clicks'];
$vote_poi = $row['vote_poi'];
$vote = $row['vote'];
}
// Clicks speichern
$clicks = $clicks+1;
$sql__ = " UPDATE tiere_art_vote SET clicks = $clicks WHERE id = $tier_id ";
$geandert = mysqli_query($db, $sql__);
}
Ansicht im WWW Bild:
Re: bcdiv(): Division by zero
Verfasst: Do 24.Mär, 2022 13:19
von oxpus
Das ist wieder nur ein Ausschnitt...
Wird die Berechnung danach durchgeführt?
Vermutlich gibt es auch Beispiele, die noch nicht bewertet sind, also dann $vote_poi wirklich 0 ist.
Daher dann auch die Fehlermeldung
Eine if-Bedingung um die Berechnung wäre dann also angebracht, um eine vorhandene 0 abzufangen. ;-)
Re: bcdiv(): Division by zero
Verfasst: Fr 25.Mär, 2022 06:55
von Icke
Guten Morgen Oxpus,
Habe eine if Abfrage hinzu gefügt.
Error_log Heute:
25.03.2022 04:36:03 wasserwelt.org [client 40.77.39.0] AH01215: PHP Warning: Division by zero in /mnt/web424/a2/56/59917356/htdocs/vote_sta.php on line 6: /home/strato/http/premium/rid/73/56/59917356/htdocs/tiere/detail.php
25.03.2022 04:45:23 wasserwelt.org [client 54.36.21.0] AH01215: PHP Warning: Division by zero in /mnt/web424/a2/56/59917356/htdocs/vote_sta.php on line 6: /home/strato/http/premium/rid/73/56/59917356/htdocs/tiere/detail.php
25.03.2022 04:49:02 wasserwelt.org [client 54.36.20.0] AH01215: PHP Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, bool given in /mnt/web424/a2/56/59917356/htdocs/wracks/liste.php on line 19: /home/strato/http/premium/rid/73/56/59917356/htdocs/wracks/liste.php
Re: bcdiv(): Division by zero
Verfasst: Fr 25.Mär, 2022 07:56
von oxpus
Kann ich jetzt wieder nur raten, solange ich nicht den gesamten Code sehe, anstatt weiterhin einzelne Ausschnitte.
Re: bcdiv(): Division by zero
Verfasst: Fr 25.Mär, 2022 16:47
von Icke
Hallo Oxpus,
hier ist der Code der vote_sta.php
<?php
$id = $_REQUEST['id'];
// Vote berechnen
if($vote_poi!=0)
{
$bewert = number_format((int) $vote / (int) $vote_poi, 2);
}
if($bewert==1) { $bewert_erg = '<img src="../layout/vote_0.gif">'; }
if($bewert==2) { $bewert_erg = '<img src="../layout/vote_0.gif"><img src="../layout/vote_0.gif">'; }
if($bewert==3) { $bewert_erg = '<img src="../layout/vote_0.gif"><img src="../layout/vote_0.gif"><img src="../layout/vote_0.gif">'; }
if($bewert==4) { $bewert_erg = '<img src="../layout/vote_0.gif"><img src="../layout/vote_0.gif"><img src="../layout/vote_0.gif"><img src="../layout/vote_0.gif"> '; }
if($bewert==5) { $bewert_erg = '<img src="../layout/vote_0.gif"><img src="../layout/vote_0.gif"><img src="../layout/vote_0.gif"><img src="../layout/vote_0.gif"><img src="../layout/vote_0.gif"> '; }
?>
<link href="style_1e1f88.css" rel="stylesheet" type="text/css">
<table width="98%" border="0" cellpadding="5" cellspacing="0" class="table_box">
<tr>
<td height="35" colspan="2" class="text_ueber"><?php echo $text_0376; ?></td>
<td height="35" class="text_ueber"><?php echo $text_0376; ?> Ø <? echo $bewert; ?></td>
</tr>
<tr>
<td width="6%" class="text"><?php echo $text_0266; ?></td>
<td width="47%" class="text"><?php echo $clicks; ?> <?php echo $text_0255; ?> <span class="error"><?php echo $text_0414; ?></span></td>
<td width="47%" rowspan="2"><span class="navi_sub"> <?php echo $bewert_erg; ?></span></td>
</tr>
<tr>
<td valign="top" class="text"><?php echo $text_0267; ?></td>
<td valign="top" class="text"><?php echo $vote_poi; ?> <?php echo $text_0268; ?> <span class="error"><?php echo $text_0413; ?></span></td>
</tr>
</table>
Re: bcdiv(): Division by zero
Verfasst: Fr 25.Mär, 2022 17:00
von Icke
und diese Datei wird nur includet.
hier die Abfrage:
/ Statistiken abfragen
$sql_ = " SELECT * FROM tiere_art_vote WHERE id = $tier_id ";
if($result = mysqli_query($db, $sql_))
{
while($row = $result->fetch_assoc())
{
$clicks = $row['clicks'];
$vote_poi = $row['vote_poi'];
$vote = $row['vote'];
}
// Clicks speichern
$clicks = $clicks+1;
$sql__ = " UPDATE tiere_art_vote SET clicks = $clicks WHERE id = $tier_id ";
$geandert = mysqli_query($db, $sql__);
}
Re: bcdiv(): Division by zero
Verfasst: Fr 25.Mär, 2022 17:19
von oxpus
Die Datei vote_sta.php wird nach der Abfrage eingebunden, hoffe ich mal?
Dann wäre die Bedingung so auch nicht ausreichend.
Besser so:
Denn es könnte ja auch keine Bewertung vorliegen, $vode_poi also erst gar nicht gesetzt werden.
Da vor der Abfrage $vote_poi nicht initiiert wird und somit nach der Abfrage weiterhin "leer", also ungesetzt sein kann, wäre ein $vote_poi != 0 nicht aussagekräftig, denn "leer" ist auch != 0
BTW:
Das ist wirklich das letzte Thema, in dem Quote anstatt Code für Codeauszüge oder ganze Dateien geduldet wird.
Zukünftige Themen werden bei weiteren Verstößen kommentarlos geschlossen!
Re: bcdiv(): Division by zero
Verfasst: Fr 25.Mär, 2022 18:01
von Icke
Hallo Oxpus,
habe das mal so in die Datei übernommen . danke.
