Warning: Division by zero (Opgelost)
larssy1 - 04/06/2007 18:16
MySQL beginner
Hoi mensen,
ik ben bezig met me script, maar krijg telkens deze 3 bugs,, hoe kan ik die oplossen denk je??
bug 1.
Warning: Division by zero in /home/teamssx/domains/teamssx.nl/public_html/design/scriptshtmltest.php on line 39
bug 2.
Warning: Division by zero in /home/teamssx/domains/teamssx.nl/public_html/design/scriptshtmltest.php on line 39
bug 3.
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT -30,30' at line 1
dit is een stukje script:
<?php
$query = "SELECT * FROM scriptsysteem WHERE `cat`=1 ORDER BY id";
$sql = mysql_query($query) or die(mysql_error());
$name_script = addslashes($name_script);
$fetch=mysql_query("SELECT `aantal`,`vote` FROM scriptsysteem WHERE name_script = '".$name_script."'");
$ls=mysql_fetch_array($fetch);
$rate = ($ls['aantal'] / $ls['vote']);
while ($loop = mysql_fetch_assoc($sql)) {
<?php
$query = "SELECT * FROM scriptsysteem WHERE `cat`=1 ORDER BY id" ;
$fetch = mysql_query ( "SELECT `aantal`,`vote` FROM scriptsysteem WHERE name_script = '" . $name_script . "'" ) ;
$rate = ( $ls [ 'aantal' ] / $ls [ 'vote' ] ) ;
Waarbij regel 39 is.... :
$ls=mysql_fetch_array($fetch);
Met Vriendelijke Groet
Larssy1
25 antwoorden
Gesponsorde links
Stijn - 04/06/2007 18:23
PHP expert
bug 3) LIMIT -30,30 is verkeerd.
LIMIT 0,30 -> start bij rij 0 en selecteer de 30 opeenvolgende records.
bug 1 en 2) Je kan nooit delen door 0
20 / 0 = error
larssy1 - 04/06/2007 18:31 (laatste wijziging 04/06/2007 18:33)
MySQL beginner
en hoe moet ik dat dan invoegen??
Want ik kan wel in de db, die standardwaarde naar 1 zetten,, maar het zelfde probleem blijft zich dan voordoen..
larssy1 - 04/06/2007 18:46 (laatste wijziging 04/06/2007 19:34)
MySQL beginner
ohja klopt,, klein script foutje,, kheb nu votes gedeeld door het aantal punten,,
en nog een foutje gevnden dankzei die mededeling ;)
aantal was wel goed,, maar er stond vote,, in plaats van votes,, even kijken of die nu werkt..
$rate = ($ls['aantal']/$ls['votes']);
EDIT:
er is alweer 1 bug verdwenen, en nog 1 over
Warning: Division by zero in /home/teamssx/domains/teamssx.nl/public_html/design/scriptshtmltest.php on line 41
dit is de laatset,,
in het script
$rate = ($ls['aantal']/$ls['votes']);
$rate = ( $ls [ 'aantal' ] / $ls [ 'votes' ] ) ;
ziet iemand nog een fout?? ik zie namenlijk niks meer..
Nog even voor de zekerheid weer een heel stuk code erbij..
<?php
$query = "SELECT * FROM scriptsysteem WHERE `cat`=1 ORDER BY id";
$sql = mysql_query($query) or die(mysql_error());
$name_script = addslashes($name_script);
$fetch = mysql_query("SELECT `aantal`,`votes` FROM scriptsysteem WHERE name_script = '".$name_script."'");
$ls = mysql_fetch_array($fetch);
$rate = ($ls['aantal']/$ls['votes']);
while ($loop = mysql_fetch_assoc($sql)) {
<?php
$query = "SELECT * FROM scriptsysteem WHERE `cat`=1 ORDER BY id" ;
$fetch = mysql_query ( "SELECT `aantal`,`votes` FROM scriptsysteem WHERE name_script = '" . $name_script . "'" ) ;
$rate = ( $ls [ 'aantal' ] / $ls [ 'votes' ] ) ;
of misschien dat ik mogenlijk iets in de database moet veranderen,,
`votes` varchar(10) NOT NULL Standaardwaarde = 1
`aantal` varchar(10) NOT NULL Standaardwaarde = 1
EDIT: Weet pls iemand een oplossing???
Stijn - 04/06/2007 19:46
PHP expert
Hoeveel rijen levert volgende query op? Als het er 0 zijn heb je de fout al gevonden hé.
$fetch = mysql_query("SELECT `aantal`,`votes` FROM scriptsysteem WHERE name_script = '".$name_script."'");
$fetch = mysql_query ( "SELECT `aantal`,`votes` FROM scriptsysteem WHERE name_script = '" . $name_script . "'" ) ;
larssy1 - 04/06/2007 19:56 (laatste wijziging 04/06/2007 21:12)
MySQL beginner
Helaas vintage, die manier die jij zei kon ook al niet..
toch bedankt voor de moeite ^.^
en hoe bedoel je stijn??
Miss nog iemand andere suggeties??
De bug is als volgt:
Warning: Division by zero in /home/teamssx/domains/teamssx.nl/public_html/design/scriptshtmltest.php on line 41
code:
<?php
$query = "SELECT * FROM scriptsysteem WHERE `cat`=1 ORDER BY id";
$sql = mysql_query($query) or die(mysql_error());
$name_script = addslashes($name_script);
$fetch = mysql_query("SELECT `aantal`,`votes` FROM scriptsysteem WHERE name_script = '".$name_script."'");
$ls = mysql_fetch_array($fetch);
$rate = ($ls ['aantal'] / $ls['votes']);
while ($loop = mysql_fetch_assoc($sql)) {
<?php
$query = "SELECT * FROM scriptsysteem WHERE `cat`=1 ORDER BY id" ;
$fetch = mysql_query ( "SELECT `aantal`,`votes` FROM scriptsysteem WHERE name_script = '" . $name_script . "'" ) ;
$rate = ( $ls [ 'aantal' ] / $ls [ 'votes' ] ) ;
regel van de bug:
$rate = ($ls ['aantal'] / $ls['votes']);
$rate = ( $ls [ 'aantal' ] / $ls [ 'votes' ] ) ;
Stijn - 04/06/2007 21:22
PHP expert
en als je nu eens voor $rate = ... volgende regel code zet en die hier copy/paste.
echo 'Aantal: ' . $ls['aantal'] . ' - Votes: ' . $ls['votes'];
echo 'Aantal: ' . $ls [ 'aantal' ] . ' - Votes: ' . $ls [ 'votes' ] ;
larssy1 - 04/06/2007 21:26 (laatste wijziging 04/06/2007 21:32)
MySQL beginner
uhm, dus je bedoelt..
$rate = ($ls ['aantal'] / $ls['votes']);
$rate = ( $ls [ 'aantal' ] / $ls [ 'votes' ] ) ;
Vervangen door:
echo 'Aantal: ' . $ls['aantal'] . ' - Votes: ' . $ls['votes'];
echo 'Aantal: ' . $ls [ 'aantal' ] . ' - Votes: ' . $ls [ 'votes' ] ;
BTW, kzal gelijk ffe checke,,
:p
EDIT: Lol, 2 dingen..
1. Hij haalt die votes, en aantal niet uit de database blijkbaar.
2. Je begrijpt me denk ik verkeerd..
Ik probeer ongeveer zo'n rating systeem te maken zoals sitemasters..
Kolommen en alles zijn aangemaakt, maar het probleem is wanneer het begint van aantal punten,,
Dus als mensen hebben gestemt, bijv 3 dan komt er aantal+3,, en votes+1..
hierbij ontstaat het probleem,, van aantal : votes..
dus in dit geval 3:1
EDIT(2): Als je een stuk code nodig hebt moet je het zeggen...
Stijn - 04/06/2007 21:35
PHP expert
Ok ik weet wat je wilt, maar wat zet hij op het scherm met mijn regel code? Hij zou iets moeten tonen op het scherm nu.
larssy1 - 04/06/2007 21:46
MySQL beginner
ja indd..
Aantal: - Votes:
dit zie ik letterlijk..
Stijn - 04/06/2007 21:47
PHP expert
Dus je query heeft gewoon geen resultaten want $ls['votes'] en $ls['aantal'] is leeg!
larssy1 - 04/06/2007 21:53
MySQL beginner
nej, zijn allebeij 1
Stijn - 04/06/2007 21:56
PHP expert
Citaat:
Aantal: - Votes:
dit zie ik letterlijk..
Als ze beide 1 zijn dan zou er volgende staan:
Citaat:
Aantal: 1 - Votes: 1
Kijk maar of je query goed is en vooral die WHERE!
larssy1 - 04/06/2007 22:05 (laatste wijziging 04/06/2007 22:07)
MySQL beginner
hmm,, w8 kijk,,
het script waar ik het in dit topic over heb is het script overzicht..
net zoals je bijv nu op scripts -> PHP -> Wiskunde Klikt, en daar een lijst krijgt met die namen, met daar achter het rate systeem..
over Zoiets gaat het momenteel
die quary is
$fetch = mysql_query("SELECT `aantal`,`votes` FROM scriptsysteem WHERE name_script = '".$name_script."'");
de database is..
`id` int(5) NOT NULL auto_increment
`name_script` varchar(50) NOT NULL
`cat` int(5) NOT NULL 0
`creater` varchar(20) NOT NULL
`add_date` varchar(15) NOT NULL 00-00-0000
`rate` varchar(25) NULL
`votes` varchar(10) NOT NULL 1
`aantal` varchar(10) NOT NULL 1
bij cat = 0 de standaardwaarde
bij add_date = 00-00-0000 de standaardwaarde
bij votes = 1 de standaardwaarde,
en als laatst..
bij aantal = 1 de standaardwaarde
`id` int( 5 ) NOT NULL auto_increment
`name_script` varchar( 50 ) NOT NULL
`cat` int( 5 ) NOT NULL 0
`creater` varchar( 20 ) NOT NULL
`add_date` varchar( 15 ) NOT NULL 00 - 00 - 0000
`rate` varchar( 25 ) NULL
`votes` varchar( 10 ) NOT NULL 1
`aantal` varchar( 10 ) NOT NULL 1
bij cat = 0 de standaardwaarde
bij add_date = 00 - 00 - 0000 de standaardwaarde
bij votes = 1 de standaardwaarde,
en als laatst..
bij aantal = 1 de standaardwaarde
Stijn - 04/06/2007 22:20
PHP expert
Laat ik duidelijker zijn. Je query returnt geen enkele record anders zou hij iets op het scherm zetten (zie mijn vorige reactie).
$fetch = mysql_query("SELECT `aantal`,`votes` FROM scriptsysteem WHERE name_script = '".$name_script."'");
$fetch = mysql_query ( "SELECT `aantal`,`votes` FROM scriptsysteem WHERE name_script = '" . $name_script . "'" ) ;
heeft geen resultaten. Dus moet er iets fouts zijn met $name_script. Kijk eens welke waarde $name_script bevat en of die correct is!
larssy1 - 04/06/2007 22:30 (laatste wijziging 04/06/2007 22:31)
MySQL beginner
k, kzal morgen eve kijke,, kga nu off,,
toch bedankt,,
en khoop je morgen weer te spreken..
:p
het enigste wat ik kan doen is mijn hele script posten,, meer kan ik nu niks doen tot morgen..
Stijn - 04/06/2007 22:35
PHP expert
Je kan snel boven je query volgende code zetten en de output hier plakken:
echo "Query debug: " . $name_script;
echo "Query debug: " . $name_script ;
larssy1 - 04/06/2007 22:43
MySQL beginner
nu staat er
Query debug: Aantal: - Votes:
die code van aantal: en votes: van jou stond er ook nog in... maar verders ziek alles normaal..
Stijn - 04/06/2007 22:54
PHP expert
Is dat je volledig script? Indien ja, dan moet je een waarde toekennen aan $name_script
Bijvoorbeeld.
larssy1 - 04/06/2007 22:56 (laatste wijziging 04/06/2007 23:00)
MySQL beginner
niet volledig,, rest is gewoon html, alleen staat er nog boven aan de pagina
<?php
include('config.php');
?>
<?php
include ( 'config.php' ) ;
?>
maar dat is op dit moment niet zo heel belangrijk,,
maar wat ik je stuurde via die link was hele php code..
en als ik vragen mag,, hoezo
<?php
$name_script = 3;
//want name_script word ook al hiermee aangegeven..
$name_script = addslashes($name_script);
//ontstaat hierdoor geen verwarring?
?>
<?php
$name_script = 3 ;
//want name_script word ook al hiermee aangegeven..
//ontstaat hierdoor geen verwarring?
?>
EDIT: Ik ga nu off,, als je nog verder wilt knutsellen ga je gang, hoe dan ook,, ik spreek je waarschijnlijk morgen wel als je weer on bent..
Stijn - 04/06/2007 23:22
PHP expert
Kijk iedere variable heeft een waarde. Jou variable $name_script heeft geen waarde waardoor je script maar steeds die error geeft.
$name_script = addslashes($name_script);
Zo ken je geen waarde toe aan een variable. Eigenlijk maar wat jij doet is aan iets onbestaands slashes toevoegen en dat levert opnieuw.... niets op.
of
Zo ken je echte waarden toe aan een variable.
Je moet variablen zien als doosjes en je kan daar iets instoppen (waarde). Als je niets instopt is het doosje (variable) leeg (of ook wel NULL genoemd). (NULL is 0 bytes).
cobrax - 18/09/2011 10:50 (laatste wijziging 18/09/2011 10:51)
Lid
ok ik heb zo'n zelfde fout
Warning: Division by zero in /home/admin/domains/true-crimemasters.info/public_html/3.0.0/****.php on line 39
<?
if($_POST["b66"])
{
$gn1 = mysql_query("SELECT * FROM `mf_autos` WHERE `id`='$_POST[id]'");
$q = mysql_fetch_object($gn1);
$kansss = $q->delendoor * 100;
if ($data->lvl > 100) {
$kanss1 = ($data->autokans + $data->power) / $q->delendoor;
} else {
$kanss1 = ($data->autokans + $data->power) / ($q->delendoor / 2); ///// regel 39
}
if ($kanss1 > $kansss) {
$kans = round(100,2);
} elseif ($kanss1 < 0) {
$kans = round(0,2);
} else {
$kans
<?
if ( $_POST [ "b66" ] )
{
$gn1 = mysql_query ( "SELECT * FROM `mf_autos` WHERE `id`='$_POST[id] '" ) ; $kansss = $q -> delendoor * 100 ;
if ( $data -> lvl > 100 ) {
$kanss1 = ( $data -> autokans + $data -> power ) / $q -> delendoor ;
} else {
$kanss1 = ( $data -> autokans + $data -> power ) / ( $q -> delendoor / 2 ) ; ///// regel 39
}
if ( $kanss1 > $kansss ) {
} elseif ( $kanss1 < 0 ) {
} else {
$kans
wat zie ik hier over het hoofd moet ook weer zo'n delen door probleem zijn maar ik zie het niet
alvast bedankt
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.