Avatar billede shadow19 Nybegynder
28. oktober 2010 - 20:29 Der er 4 kommentarer og
1 løsning

PHP

er der nogle der gider kigge på hvorfor det her ikke virker?
har lagt kildekoden efter, og i kan se fejlmeldingen på denne side http://mega.users.whitehat.dk/svar.php

<?php

svar.php
$favoritter = $_REQUEST["favoritter"];//Henter data fra HTML-dokumentet.


$stoerrelse = sizeof($kon);
$stoerrelse = sizeof($alder);
$stoerrelse = sizeof($arbejde);
$stoerrelse = sizeof($bil);
$stoerrelse = sizeof($born);
$stoerrelse = sizeof($politik);//Laver variabler med data fra HTML-dokumentet.

$i = 0;

include("echo.php");//Echoer resultatet ud til skærmen.
include("connect.php");//Opretter forbindelse til databasen.
include("upload_test.php");//Uploader svarene til databasen.
include("test.php");//Henter og benhandler data fra databasen.
?>

test.php
<head>

<style type="text/css">
p {font-family: "Arial Rounded MT Bold";}
h1 {font-family: "Castellar";}
</style>

<title>Resultat</title>

</head>

<?php
include("connect.php"); //Opretter forbindelse til databasen.

$query = mysql_query("SELECT kon FROM test");//Vælger alle data fra tabellen
$mænd=0;
$kvinder=0;
while($row = mysql_fetch_assoc($query)) //Laver en løkke, så alle rækker i databasen køres igennem.
{
    if ($row[kon] == mand) //Tester om $kon er mand.
    {
        $mænd++;//Hvis $kon er mand lægges 1 til $mænd.
    }
    if ($row[kon] == kvinde) //Tester om $kon er kvinde.
    {
        $kvinder++;//Hvis $kon er kvinde lægges 1 til $kvinder.
    }
}
echo"<p>$mænd mænd har deltaget, $kvinder kvinder har deltaget.</p><br>";
$kontotal = $mænd + $kvinder;
$mændpct = $mænd/$kontotal*100;
$kvindepct = $kvinder/$kontotal*100;
echo"<p>$mændpct % af deltagerne er mænd og $kvindepct % er kvinder<br><br></p>";


$query = mysql_query("SELECT alder FROM test");//Vælger alle data fra tabellen
$ung=0;
$voksen=0;
$ældre=0;
$gammel=0;
while($row = mysql_fetch_assoc($query)) //Laver en løkke, så alle rækker i databasen køres igennem.
{
    if ($row[alder] == '16-25') //Tester om $alder er 16-25.
    {
        $ung ++;//Hvis $alder er 16-25 lægges 1 til $ung.
    }
    if ($row[alder] == '26-35')
    {
        $voksen ++;
    }
    if ($row[alder] == '36-45')
    {
        $aeldre ++;
    }
    if ($row[alder] == '+45')
    {
        $gammel ++;
    }
}
$aldertotal = $ung + $voksen + $aeldre + $gammel;
$ungpct = $ung / $aldertotal * 100;
$voksenpct = $voksen / $aldertotal * 100;
$aeldrepct = $aeldre / $aldertotal * 100;
$gammelpct = $gammel / $aldertotal * 100;

echo"<p>$ungpct % er 16-25 år, $voksenpct % er 26-35 år, $aeldrepct % er 36-45 år, $gammelpct % er over 45 år.</p> <br><br>";

$query = mysql_query("SELECT arbejde FROM test");//Vælger alle data fra tabellen
$ja=0;
$nej=0;
while($row = mysql_fetch_assoc($query))
{
    if ($row[arbejde] == ja)
    {
        $ja ++;
    }
    if ($row[arbejde] == nej)
    {
        $nej ++;
    }
}
$arbtotal = $ja + $nej;
$arbpct = $ja/$arbtotal*100;
echo"<p>$arbpct % af deltagerne har arbejde.</p><br><br>";

$query = mysql_query("SELECT bil FROM test");//Vælger alle data fra tabellen
$jabil=0;
$nejbil=0;
while($row = mysql_fetch_assoc($query))
{
    if ($row[bil] == ja)
    {
        $jabil ++;
    }
    if ($row[bil] == nej)
    {
        $nejbil ++;
    }
}
$biltotal = $jabil + $nejbil;
$bilpct = $jabil/$biltotal*100;
echo"<p>$bilpct % af deltagerne har bil.<p><br><br>";

$query = mysql_query("SELECT born FROM test");//Vælger alle data fra tabellen
$ingen=0;
$faa=0;
$nogle=0;
$mange=0;
while($row = mysql_fetch_assoc($query)) //Laver en løkke, så alle rækker i databasen køres igennem.
{
    if ($row[born] == 'ingen') //Tester om $alder er 16-25.
    {
        $ingen ++;//Hvis $alder er 16-25 lægges 1 til $ung.
    }
    if ($row[born] == '1-2')
    {
        $faa ++;
    }
    if ($row[born] == '3-4')
    {
        $nogle ++;
    }
    if ($row[born] == '5+')
    {
        $mange ++;
    }
}
$borntotal = $ingen + $faa + $nogle + $mange;
$ingenpct = $ingen / $borntotal * 100;
$faapct = $faa / $borntotal * 100;
$noglepct = $nogle / $borntotal * 100;
$mangepct = $mange / $borntotal * 100;

echo"<p>$ingenpct % har ingen børn, $faapct % har 1-2 børn, $noglepct % har 3-4 børn, $mangepct % har over 4 børn.</p> <br><br>";

$query = mysql_query("SELECT politik FROM test");
$v = 0;
$s= 0;
$df = 0;
$sf = 0;
$kf = 0;
$rv = 0;
$el = 0;
$la = 0;
while($row = mysql_fetch_assoc($query))
{
    if ($row[politik] == 'K')
    {
        $kf ++;
    }
    if ($row[politik] == 'L')
    {
        $la ++;
    }
    if ($row[politik] == 'D')
    {
        $df ++;
    }
    if ($row[politik] == 'V')
    {
        $v ++;
    }
    if ($row[politik] == 'R')
    {
        $rv ++;
    }
    if ($row[politik] == 'S')
    {
        $s ++;
    }
    if ($row[politik] == 's')
    {
        $sf ++;
    }
    if ($row[politik] == 'E')
    {
        $el ++;
    }
}   
$poltotal = $kf + $la + $df + $v + $rv + $s + $sf + $el;
$kfpct = $kf / $poltotal * 100;
$lapct = $la / $poltotal * 100;
$dfpct = $df / $poltotal * 100;
$vpct = $v / $poltotal * 100;
$rvpct = $rv / $poltotal * 100;
$spct = $s / $poltotal * 100;
$sfpct = $sf / $poltotal * 100;
$elpct = $el / $poltotal * 100;
echo
"<p>$kfpct % af deltagerne stemmer på Konservative. <br>
$dfpct % af deltagerne stemmer på Dansk Folkeparti. <br>
$lapct % af deltagerne stemmer på Liberal Alliance. <br>
$vpct % af deltagerne stemmer på Venstre. <br>
$rvpct % af deltagerne stemmer på Radikale Venstre. <br>
$spct % af deltagerne stemmer på Socialdemokraterne. <br>
$sfpct % af deltagerne stemmer på SF. <br>
$elpct % af deltagerne stemmer på Enhedslisten. </p><br>";
?>

upload_test.php
<?php
mysql_query("INSERT INTO test (kon, alder, arbejde, bil, born, politik) VALUES ('$kon[$i]', '$alder[$i]', '$arbejde[$i]', '$bil[$i]', '$born[$i]', '$politik[$i]')") OR DIE(mysql_error());//Indsætter data fra spørgeskemaet i tabellen test.

echo.php

<h1>Resultat</h1>
<?php
if($arbejde[$i] == ja)
{
    $echoarbejde = '';
}
if($arbejde[$i] == nej)
{
    $echoarbejde = 'ikke';
}



if($bil[$i] == ja)
{
    $echobil = '';
}
if($bil[$i] == nej)
{
    $echobil = 'ikke';
}


if($politik[$i] == K)
{
    $echopol = 'Konservative';
}
if($politik[$i] == D)
{
    $echopol = 'Dansk Folkeparti';
}
if($politik[$i] == L)
{
    $echopol = 'Liberal Alliance';
}
if($politik[$i] == V)
{
    $echopol = 'Venstre';
}
if($politik[$i] == R)
{
    $echopol = 'Radikale';
}
if($politik[$i] == S)
{
    $echopol = 'Socialdemokraterne';
}
if($politik[$i] == s)
{
    $echopol = 'SF';
}
if($politik[$i] == E)
{
    $echopol = 'Enhedslisten';
}

echo "<p>Jeg er en $kon[$i] i alderen $alder[$i] år. Jeg har $echoarbejde et arbejde. Jeg har $echobil bil.
Jeg har $born[$i] børn. Jeg stemmer på $echopol.</p>"; //Echoer resultatet af spørgeskemaet ud til skærmen.
?>

dintype.html
<h1>Resultat</h1>
<?php
if($arbejde[$i] == ja)
{
    $echoarbejde = '';
}
if($arbejde[$i] == nej)
{
    $echoarbejde = 'ikke';
}



if($bil[$i] == ja)
{
    $echobil = '';
}
if($bil[$i] == nej)
{
    $echobil = 'ikke';
}


if($politik[$i] == K)
{
    $echopol = 'Konservative';
}
if($politik[$i] == D)
{
    $echopol = 'Dansk Folkeparti';
}
if($politik[$i] == L)
{
    $echopol = 'Liberal Alliance';
}
if($politik[$i] == V)
{
    $echopol = 'Venstre';
}
if($politik[$i] == R)
{
    $echopol = 'Radikale';
}
if($politik[$i] == S)
{
    $echopol = 'Socialdemokraterne';
}
if($politik[$i] == s)
{
    $echopol = 'SF';
}
if($politik[$i] == E)
{
    $echopol = 'Enhedslisten';
}

echo "<p>Jeg er en $kon[$i] i alderen $alder[$i] år. Jeg har $echoarbejde et arbejde. Jeg har $echobil bil.
Jeg har $born[$i] børn. Jeg stemmer på $echopol.</p>"; //Echoer resultatet af spørgeskemaet ud til skærmen.
?>
?>

connetc.php

<?php
mysql_connect("localhost", "mega", "12345") or die(mysql_error());
mysql_select_db("mega") or die(mysql_error());


?>

download.php
<?php
include("connect.php"); //Opretter forbindelse til databasen.

$query = mysql_query("SELECT * FROM test");//Vælger alle data fra tabellen
$mænd=0;
$kvinder=0;
while($row = mysql_fetch_assoc($query)) //Laver en løkke, så alle rækker i databasen køres igennem.
{
    if ($row[kon] == mand) //Tester om $kon er mand.
    {
        $mænd++;//Hvis $kon er mand lægges 1 til $mænd.
    }
    if ($row[kon] == kvinde) //Tester om $kon er kvinde.
    {
        $kvinder++;//Hvis $kon er kvinde lægges 1 til $kvinder.
    }
}
echo"$mænd mænd har deltaget, $kvinder kvinder har deltaget.";

$kontotal = $mænd + $kvinder;
echo"$kontotal <br>";
$mændpct = $mænd/$kontotal*100;
echo"$mændpct % af deltagerne er mænd."
?>

upload.php
<?php
include("connect.php");
mysql_query("INSERT INTO test (kon, alder, arbejde, bil, born, politik) VALUES ('$kon', '$alder', '$arbejde', '$bil', '$born', '$politik')") OR DIE(mysql_error());
?>
Avatar billede claes57 Ekspert
28. oktober 2010 - 20:52 #1
i stykket
{
    if ($row[kon] == mand) //Tester om $kon er mand.
    {
        $mænd++;//Hvis $kon er mand lægges 1 til $mænd.
    }
    if ($row[kon] == kvinde) //Tester om $kon er kvinde.
    {
        $kvinder++;//Hvis $kon er kvinde lægges 1 til $kvinder.
    }
}
der skal vel ' omkring mand/kvinde:
{
    if ($row[kon] == 'mand') //Tester om $kon er mand.
    {
        $mænd++;//Hvis $kon er mand lægges 1 til $mænd.
    }
    if ($row[kon] == 'kvinde') //Tester om $kon er kvinde.
    {
        $kvinder++;//Hvis $kon er kvinde lægges 1 til $kvinder.
    }
}

og lav en hvis ellers - du behøver ikke spørge på kvinde - det er jo ikke en mand, så hvad er alternativet?
if ($row[kon] == 'mand'){
$mænd++;
}else{
$kvinder++;
}
28. oktober 2010 - 22:24 #2
Du faar cirka 20 fejlmeldinger med 'Division by zero'.  Du spoerger hvad problemet kan vaere.  Jeg har en overraskelse:  Du proever paa at dividere med 0!

For eksempel, i filen test.php i den foerste loekke taeller du antal maend og antal kvinder.  Derefter laegger du dem sammen i $kontotal, og saa dividerer du forskellige stoerrelser med $kontotal.  Selv om du aldrig saa meget ved at det ikke kan forekomme at antallet af maend plus kvinder er 0 saa ved din komputer det ikke og giver en warning.  (Det vil sige hvis du har en komputer ligesom min.  Jeg har fortalt min kone hvad jeg oensker mig til jul: en komputer der goer som jeg vil og ikke som jeg koder!)

I stedet for at sige:

$mændpct = $mænd/$kontotal*100;
$kvindepct = $kvinder/$kontotal*100;

foreslaar jeg at du siger:

if($kontotal > 0)
{
    $mændpct = $mænd/$kontotal*100;
    $kvindepct = $kvinder/$kontotal*100;
}

og saa fremdeles alle de andre steder i din kode hvor du faar fejlmeldingen.

I oevrigt, hvis datatypen for feltet 'kon' i tabellen er en tekststreng er jeg enig med claes57's foerste observation, i realiteten, at med mindre du tester for 'mand' i stedet for maend o.s.v. saa vil $maend, $kvinder, og $kontotal vaere 0.  Hvis yderligere tabellen ikke aksepterer andre vaerdier for kon end 'mand' og 'kvinde' (altsaa ikke tillader NULL) er jeg ogsaa enig i claes57's anden observation.
30. oktober 2010 - 22:24 #3
Shadow19, fik du mit indlaeg?  Jeg ville vaere glad for din reaktion, om mit indlaeg var til nytte, om du har yderligere spoergsmaal, o.s.v.
Avatar billede shadow19 Nybegynder
02. november 2010 - 17:07 #4
tak for svar  fik ikke testet dem da projektet skulle afleveres inden desværre .
Avatar billede shadow19 Nybegynder
02. november 2010 - 17:09 #5
men problem lå i at mine varriabler ikke blev oprettet 0__0
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester