login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Warning: Division by zero (Opgelost)

Offline larssy1 - 04/06/2007 18:16
Avatar van larssy1MySQL 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:
  1. <?php
  2.  
  3. $query = "SELECT * FROM scriptsysteem WHERE `cat`=1 ORDER BY id";
  4. $sql = mysql_query($query) or die(mysql_error());
  5. $name_script = addslashes($name_script);
  6.  
  7. $fetch=mysql_query("SELECT `aantal`,`vote` FROM scriptsysteem WHERE name_script = '".$name_script."'");
  8. $ls=mysql_fetch_array($fetch);
  9.  
  10. $rate = ($ls['aantal'] / $ls['vote']);
  11.  
  12. while ($loop = mysql_fetch_assoc($sql)) {


Waarbij regel 39 is.... :
  1. $ls=mysql_fetch_array($fetch);


Met Vriendelijke Groet
Larssy1 

25 antwoorden

Gesponsorde links
Offline Stijn - 04/06/2007 18:23
Avatar van Stijn 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
Offline larssy1 - 04/06/2007 18:31 (laatste wijziging 04/06/2007 18:33)
Avatar van larssy1 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..
Offline Dolfje - 04/06/2007 18:42 (laatste wijziging 04/06/2007 18:43)
Avatar van Dolfje Gouden medailleGouden medailleGouden medaille

PHP ver gevorderde
normaal doe je je resultaten gedeeld door het aantal die gestemd hebben, zo heb je de gemiddelde score.
$rate = ($ls['vote']/$ls['aantal']);

Normaal als je aantal = 0, dan zal je vote normaal ook op 0 staan en dat gaat dan weer wel (pure wiskunde)
Offline larssy1 - 04/06/2007 18:46 (laatste wijziging 04/06/2007 19:34)
Avatar van larssy1 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
  1. $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..
  1. <?php
  2.  
  3. $query = "SELECT * FROM scriptsysteem WHERE `cat`=1 ORDER BY id";
  4. $sql = mysql_query($query) or die(mysql_error());
  5. $name_script = addslashes($name_script);
  6.  
  7. $fetch = mysql_query("SELECT `aantal`,`votes` FROM scriptsysteem WHERE name_script = '".$name_script."'");
  8. $ls = mysql_fetch_array($fetch);
  9.  
  10. $rate = ($ls['aantal']/$ls['votes']);
  11.  
  12. while ($loop = mysql_fetch_assoc($sql)) {



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???
Offline vinTage - 04/06/2007 19:41
Avatar van vinTage Nieuw lid Dit dan ?
Offline Stijn - 04/06/2007 19:46
Avatar van Stijn PHP expert Hoeveel rijen levert volgende query op? Als het er 0 zijn heb je de fout al gevonden hé.
  1. $fetch = mysql_query("SELECT `aantal`,`votes` FROM scriptsysteem WHERE name_script = '".$name_script."'");
Offline larssy1 - 04/06/2007 19:56 (laatste wijziging 04/06/2007 21:12)
Avatar van larssy1 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:
  1. <?php
  2.  
  3. $query = "SELECT * FROM scriptsysteem WHERE `cat`=1 ORDER BY id";
  4. $sql = mysql_query($query) or die(mysql_error());
  5. $name_script = addslashes($name_script);
  6.  
  7. $fetch = mysql_query("SELECT `aantal`,`votes` FROM scriptsysteem WHERE name_script = '".$name_script."'");
  8. $ls = mysql_fetch_array($fetch);
  9.  
  10. $rate = ($ls ['aantal'] / $ls['votes']);
  11.  
  12. while ($loop = mysql_fetch_assoc($sql)) {


regel van de bug:
  1. $rate = ($ls ['aantal'] / $ls['votes']);
Offline Stijn - 04/06/2007 21:22
Avatar van Stijn PHP expert en als je nu eens voor $rate = ... volgende regel code zet en die hier copy/paste.
  1. echo 'Aantal: ' . $ls['aantal'] . ' - Votes: ' . $ls['votes'];
Offline larssy1 - 04/06/2007 21:26 (laatste wijziging 04/06/2007 21:32)
Avatar van larssy1 MySQL beginner uhm, dus je bedoelt..

  1. $rate = ($ls ['aantal'] / $ls['votes']);


Vervangen door:

  1. 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...
Offline Stijn - 04/06/2007 21:35
Avatar van Stijn 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.
Offline larssy1 - 04/06/2007 21:46
Avatar van larssy1 MySQL beginner ja indd..

Aantal: - Votes:

dit zie ik letterlijk..
Offline Stijn - 04/06/2007 21:47
Avatar van Stijn PHP expert Dus je query heeft gewoon geen resultaten want $ls['votes'] en $ls['aantal'] is leeg!
Offline larssy1 - 04/06/2007 21:53
Avatar van larssy1 MySQL beginner nej, zijn allebeij 1
Offline Stijn - 04/06/2007 21:56
Avatar van Stijn 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!
Offline larssy1 - 04/06/2007 22:05 (laatste wijziging 04/06/2007 22:07)
Avatar van larssy1 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..
  1. `id` int(5) NOT NULL auto_increment
  2. `name_script` varchar(50) NOT NULL
  3. `cat` int(5) NOT NULL 0
  4. `creater` varchar(20) NOT NULL
  5. `add_date` varchar(15) NOT NULL 00-00-0000
  6. `rate` varchar(25) NULL
  7. `votes` varchar(10) NOT NULL 1
  8. `aantal` varchar(10) NOT NULL 1
  9.  
  10. bij cat = 0 de standaardwaarde
  11. bij add_date = 00-00-0000 de standaardwaarde
  12. bij votes = 1 de standaardwaarde,
  13. en als laatst..
  14. bij aantal = 1 de standaardwaarde
Offline Stijn - 04/06/2007 22:20
Avatar van Stijn PHP expert Laat ik duidelijker zijn. Je query returnt geen enkele record anders zou hij iets op het scherm zetten (zie mijn vorige reactie).
  1. $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!
Offline larssy1 - 04/06/2007 22:30 (laatste wijziging 04/06/2007 22:31)
Avatar van larssy1 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..
Offline Stijn - 04/06/2007 22:35
Avatar van Stijn PHP expert Je kan snel boven je query volgende code zetten en de output hier plakken:

  1. echo "Query debug: " . $name_script;
Offline larssy1 - 04/06/2007 22:43
Avatar van larssy1 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..
Offline Stijn - 04/06/2007 22:44
Avatar van Stijn PHP expert Zie je niet wat er verkeerd is? $name_script bevat geen waarde. Gevolg is dat de query geen resultaten weergeeft! Ik zal toch moeten weten hoe je $name_script defineert.

Post morgen maar je script op plaatscode.be slopzwel
Offline larssy1 - 04/06/2007 22:45 (laatste wijziging 04/06/2007 22:54)
Avatar van larssy1 MySQL beginner dankje ;) ik weet niet wat defineert betekent xD

me IQ heeft me alweer in de steek gelaten ;P

EDIT: Hier heb je de link,, kheb nog ffe snel die php code +db derop gezet..

Asje!:p
Offline Stijn - 04/06/2007 22:54
Avatar van Stijn PHP expert Is dat je volledig script? Indien ja, dan moet je een waarde toekennen aan $name_script

  1. <?
  2. $name_script = 3;
Bijvoorbeeld.
Offline larssy1 - 04/06/2007 22:56 (laatste wijziging 04/06/2007 23:00)
Avatar van larssy1 MySQL beginner niet volledig,, rest is gewoon html, alleen staat er nog boven aan de pagina

  1. <?php
  2. include('config.php');
  3. ?>

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

  1. <?php
  2. $name_script = 3;
  3.  
  4. //want name_script word ook al hiermee aangegeven..
  5.  
  6. $name_script = addslashes($name_script);
  7.  
  8. //ontstaat hierdoor geen verwarring?
  9. ?>


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..
Offline Stijn - 04/06/2007 23:22
Avatar van Stijn PHP expert Kijk iedere variable heeft een waarde. Jou variable $name_script heeft geen waarde waardoor je script maar steeds die error geeft.

  1. $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.

  1. $var = 3;
of
  1. $var = $_POST['var'];
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).
Offline cobrax - 18/09/2011 10:50 (laatste wijziging 18/09/2011 10:51)
Avatar van cobrax 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

  1. <?
  2. if($_POST["b66"])
  3. {
  4. $gn1 = mysql_query("SELECT * FROM `mf_autos` WHERE `id`='$_POST[id]'");
  5. $q = mysql_fetch_object($gn1);
  6. $kansss = $q->delendoor * 100;
  7. if ($data->lvl > 100) {
  8. $kanss1 = ($data->autokans + $data->power) / $q->delendoor;
  9. } else {
  10. $kanss1 = ($data->autokans + $data->power) / ($q->delendoor / 2); ///// regel 39
  11. }
  12. if ($kanss1 > $kansss) {
  13. $kans = round(100,2);
  14. } elseif ($kanss1 < 0) {
  15. $kans = round(0,2);
  16. } else {
  17. $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.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.415s