/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
php beregning(videre) - til xml
Fra : Peter Nicolaj


Dato : 05-03-09 20:17

Jeg har et indlæg omkring beregning af gennemsnit i php, som jeg
skrev forleden(4/3/09) og fik en løsning på.

Da det skal bruges til flash, skal jeg have det overført til et
xml-dokument.

Jeg har i forvejen hentet data direkte fra en sql-db til mit
xml-dokument, som nedenunder her. men hvis jeg vil ha beregningen
fra mit php dokument, hvad kan jeg så gøre?

$query = "SELECT * FROM afstmning_no_line ";

if($scores = mysql_query($query))
{

echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
echo "<scorelist>\n";
while($res = mysql_fetch_assoc($scores)){
echo "<score>\n
<score>".$res['stjerner']."</score><navn>".$res['stemmer']
.."</navn></score>\n";

}
echo "</scorelist>\n";
}


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Johan Holst Nielsen (05-03-2009)
Kommentar
Fra : Johan Holst Nielsen


Dato : 05-03-09 20:34

Peter Nicolaj wrote:
> Jeg har et indlæg omkring beregning af gennemsnit i php, som jeg
> skrev forleden(4/3/09) og fik en løsning på.
>
> Da det skal bruges til flash, skal jeg have det overført til et
> xml-dokument.
>
> Jeg har i forvejen hentet data direkte fra en sql-db til mit
> xml-dokument, som nedenunder her. men hvis jeg vil ha beregningen
> fra mit php dokument, hvad kan jeg så gøre?
>
> $query = "SELECT * FROM afstmning_no_line ";
>
> if($scores = mysql_query($query))
> {
>
> echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
> echo "<scorelist>\n";
> while($res = mysql_fetch_assoc($scores)){
> echo "<score>\n
> <score>".$res['stjerner']."</score><navn>".$res['stemmer']
> ."</navn></score>\n";
>
> }
> echo "</scorelist>\n";
> }

$query = "SELECT stjerner, stemmer FROM afstmning_no_line";
$res = mysql_query($sql);
echo '<?xml version="1.0" encoding="UTF-8"?>'."\n";
echo '<scorelist>';
while($r = mysql_fetch_assoc($res)) {
echo '<score>';
echo '<stars>'.$r['stjerner'].'</stars>';
echo '<navn>'.$r['stemmer'].'</navn>';
echo '</score>'
}
echo '</scorelist>';

Har lige ændre score til stars - da du åbner 2 der hedder score - der
virker underligt.

Ellers virker ovenstående :)

--
Johan Holst Nielsen
Freelance PHP Developer - http://phpgeek.dk

Peter Nicolaj (06-03-2009)
Kommentar
Fra : Peter Nicolaj


Dato : 06-03-09 14:00

Har prøvet frem og tilbage med dit eksempel, men uden resultat desværre.
Har følgede intil videre, men hvor jeg får vist hver eneste post. Det jeg
egentlig skal ha vist i mit xml-dokument er:

- det samlede antal der har været med til at stemme
- det gennemsnitlige antal stjerner der er givet(beregningen der kommer
til at hedde gen_stjerner)

Særlig sidstnævnte forstår jeg vist ikke helt, hvordan man får vist i
xml, da den jo ikke kan trækkes fra databasen. Men mit samlede script ser
således ud, nu skal jeg altså bare have vist de to ovennævnte data
istedet for en ny post pr. stemme, med den enkeltes antal stjerner.

-----------------------------------------------------------------
<?php

/* Forbinder, vælger database */

$connect = mysql_connect("localhost", "xxx", "xxx")

or die("" .

mysql_error());

echo "";

mysql_select_db('xxx', $connect) or die("");



$stemmer = $_POST["stemmer"];

$stjerner = $_POST["stjerner"];



/*Indsætte rækker i tabellen*/



if($_POST['stemmer'] && $_POST['stjerner'] ) {

$sqlquery = "INSERT INTO afstmning_no_line (id, stemmer,

stjerner )

VALUES

('','$stemmer','$stjerner')";


}

/* Udfører SQL forespørgsel */

$q = mysql_query("SELECT (SUM(stjerner)/SUM(stemmer)) AS gen_stjerner
FROM
afstmning_no_line");
$r = mysql_fetch_assoc($q);

//echo round($r['gen_stjerner'], 2);


$query = "SELECT * FROM afstmning_no_line ";

if($scores = mysql_query($query))
{

//Udskriver xml dokument

echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
echo "<scorelist>\n";
while($res = mysql_fetch_assoc($scores)){
echo "<score>\n
<score>".$res['stjerner']."</score><navn>".$res['stemmer']
.."</navn></score>\n";

}
echo "</scorelist>\n";
}
//luker forbindelse
mysql_close($connection);
?>

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Martin (06-03-2009)
Kommentar
Fra : Martin


Dato : 06-03-09 20:13

Peter Nicolaj wrote:
> Har prøvet frem og tilbage med dit eksempel, men uden resultat desværre.
> Har følgede intil videre, men hvor jeg får vist hver eneste post. Det jeg
> egentlig skal ha vist i mit xml-dokument er:
>
> - det samlede antal der har været med til at stemme
> - det gennemsnitlige antal stjerner der er givet(beregningen der kommer
> til at hedde gen_stjerner)

Antal stemmer divideret med antal stjerner i alt.
Ganske normal matematik :)

> $q = mysql_query("SELECT (SUM(stjerner)/SUM(stemmer)) AS gen_stjerner

SELECT
SUM(stemmer) AS total_stemmer,
(SUM(stjerner)/SUM(stemmer)) AS gen_stjerner

> if($scores = mysql_query($query))
> {

echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
echo "<scorelist>\n";
while ( $r = mysql_fetch_row($scores) ) {
echo "<score>\n";
echo "<total_votes>" . $res['total_stemmer'] . "</total_votes>\n";
echo "<gns_stars>" . $res['gen_stjerner'] . "</gns_stars>\n";
echo "</score>";
}
echo "</scorelist>";

> //luker forbindelse
> mysql_close($connection);

mysql_close
Ikke nødvendig, forbindelsen til databasen vil alligevel lukke når den
når til enden af scriptet.

http://se2.php.net/mysql_close

Peter Nicolaj (06-03-2009)
Kommentar
Fra : Peter Nicolaj


Dato : 06-03-09 22:13

Martin wrote in dk.edb.internet.webdesign.serverside.php:
> Peter Nicolaj wrote:
> > Har prøvet frem og tilbage med dit eksempel, men uden resultat desværre.
> > Har følgede intil videre, men hvor jeg får vist hver eneste post. Det jeg
> > egentlig skal ha vist i mit xml-dokument er:
> >
> > - det samlede antal der har været med til at stemme
> > - det gennemsnitlige antal stjerner der er givet(beregningen der kommer
> > til at hedde gen_stjerner)
>
> Antal stemmer divideret med antal stjerner i alt.
> Ganske normal matematik :)
>
> > $q = mysql_query("SELECT (SUM(stjerner)/SUM(stemmer)) AS gen_stjerner
>
> SELECT
> SUM(stemmer) AS total_stemmer,
> (SUM(stjerner)/SUM(stemmer)) AS gen_stjerner
>
> > if($scores = mysql_query($query))
> > {
>
> echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
> echo "<scorelist>\n";
> while ( $r = mysql_fetch_row($scores) ) {
> echo "<score>\n";
> echo "<total_votes>" . $res['total_stemmer'] . "</total_votes>\n";
> echo "<gns_stars>" . $res['gen_stjerner'] . "</gns_stars>\n";
> echo "</score>";
> }
> echo "</scorelist>";
>
> > //luker forbindelse
> > mysql_close($connection);
>
> mysql_close
> Ikke nødvendig, forbindelsen til databasen vil alligevel lukke når den
> når til enden af scriptet.
>
> http://se2.php.net/mysql_close


Får da vist xml dokumentet, men uden nogen tal. Er helt ny i xml, så laver
nok en forkert opstilling et sted???


$q = mysql_query("SELECT (SUM(stjerner)/SUM(stemmer)) AS gen_stjerner
FROM
afstmning_no_line");
$r = mysql_fetch_assoc($q);

//echo round($r['gen_stjerner'], 2);


// Tager alle score sorter største først og kun 5
$query = "SELECT
SUM(stemmer) AS total_stemmer,
(SUM(stjerner)/SUM(stemmer)) AS gen_stjerner FROM afstmning_no_line ";

if($scores = mysql_query($query))
{

echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
echo "<scorelist>\n";
while ( $r = mysql_fetch_row($scores) ) {
echo "<score>\n";
echo "<total_votes>" . $res['total_stemmer'] . "</total_votes>\n";
echo "<gns_stars>" . $res['gen_stjerner'] . "</gns_stars>\n";
echo "</score>";
}
echo "</scorelist>";
}

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Leif Neland (07-03-2009)
Kommentar
Fra : Leif Neland


Dato : 07-03-09 12:59

Peter Nicolaj skrev:

>
>
> Får da vist xml dokumentet, men uden nogen tal. Er helt ny i xml, så laver
> nok en forkert opstilling et sted???
>
>
Divide et Impera - på dansk Del og Hersk.

Du prøver at lave to ting på en gang: beregning (sql) og visning (xml),
og når det ikke virker, så bliver du forvirret over hvad der går galt.

Start med at få sql'en til at virke. Begynd evt i phpmyadmin eller
lignende, hvis du har det på din server.

Når det så virker, så kan du formattere det i xml.


Leif

Peter Nicolaj (08-03-2009)
Kommentar
Fra : Peter Nicolaj


Dato : 08-03-09 14:41

Synes at jeg har givet de forsøg der må være rimelig, inden jeg spørger om
hjælp igen.

Jeg kan sagtens få vist samlet antal stemmer og gennemsnittet af stjerner i
php-dokumentet.

Men så snart jeg skal ha det vist i som xml går det galt. Får enten ingenting
vist eller også bare xml-dokumentet, men uden de ønskede tal.

Prøver lige at sætte koden som jeg har den nu:

//Her laver jeg beregningen i php
$q = mysql_query("SELECT SUM(stemmer) AS total_stemmer,
(SUM(stjerner)/SUM(stemmer)) AS gen_stjerner FROM
afstmning_no_line");
//$r = mysql_fetch_assoc($q);

//Her får jeg resultatet vist, hvilket jeg har udkommenteret, for det ikke
generer min xml
//echo round($r['gen_stjerner'], 2);
//echo round($r['total_stemmer'], 2);

//Nu skal jeg så ha lavet det så det bliver vist som xml??????, men hvordan???
overstående regnestykke skal altså omskrives til næste linie, så det passer til
xml
$query = "SELECT * FROM afstmning_no_line ";

if($scores = mysql_query($query))
{
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
echo "<scorelist>\n";
while ( $res = mysql_fetch_assoc($scores) ) {
echo "<score>\n
<score>".$res['gen_stjerner']."</score><navn>".$res['total_stemmer']
.."</navn></score>\n";

}
echo "</scorelist>\n";
}

?>

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Leif Neland (11-03-2009)
Kommentar
Fra : Leif Neland


Dato : 11-03-09 12:41

Peter Nicolaj skrev:
> Synes at jeg har givet de forsøg der må være rimelig, inden jeg spørger om
> hjælp igen.
>
> Jeg kan sagtens få vist samlet antal stemmer og gennemsnittet af stjerner i
> php-dokumentet.
>
> Men så snart jeg skal ha det vist i som xml går det galt. Får enten ingenting
> vist eller også bare xml-dokumentet, men uden de ønskede tal.
>
>
Mens du debugger, så erstat denne linie:

> echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";

Med denne: echo "<pre>"

og sæt: echo "</pre>" i bunden, så kan man lette se xml'en, før den
bliver fortolket af browseren.

Leif

Leif Neland (11-03-2009)
Kommentar
Fra : Leif Neland


Dato : 11-03-09 12:44

Peter Nicolaj skrev:
> Synes at jeg har givet de forsøg der må være rimelig, inden jeg spørger om
> hjælp igen.

> if($scores = mysql_query($query))
> {
> echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
> echo "<scorelist>\n";
> while ( $res = mysql_fetch_assoc($scores) ) {
> echo "<score>\n
> <score>".$res['gen_stjerner']."</score><navn>".$res['total_stemmer']
> ."</navn></score>\n";
>
> }
> echo "</scorelist>\n";
> }
>
> ?>
>
Giver det ikke
<scorelist>
<score>
<score>123</score>
<navn>Jens Hansen</navn>
</score>
<score>
<score>456</score>
<navn>Ole Olsen</navn>
</score>
</scorelist>

Må du have en <score> inden i en <score>?

Leif


Søg
Reklame
Statistik
Spørgsmål : 177580
Tips : 31968
Nyheder : 719565
Indlæg : 6409079
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste