Hov. Du er ikke logget ind.
DU SKAL VÆRE LOGGET IND, FOR AT INTERAGERE PÅ DENNE SIDE

PHP Hjælp!

Side 1 ud af 1 (9 indlæg)
  • 1
Fra Esbjerg
Tilmeldt 18. Mar 11
Indlæg ialt: 9
Skrevet kl. 15:34
Hvor mange stjerner giver du? :

Hej.
Jeg er igang med at lave et administrator panel på min hjemmeside. Hvor man kan se hvilke browsere og hvor mange der har været på siden... (skal bruge dataen i et cirkel diagram)
Jeg har skrevet dette kode (herunder) Jeg har pt 3 filer på min database 1 stk "Firefox", 1 stk "Crome" og 1 stk "Safari.. Men koden smækker dem ind under andre browsere...

Eksempel:
Explorer:0
Firefox:0
Creme:0
Safari:0
Opera:0
Netscape:0
Andre:3

Sti til databasen: logger -> browser

Kode:

<?php
$con = mysql_connect("xxxxxxxxxxx.mysql","xxxxxx","xxxxxxxxx");
if (!$con){ die('Could not connect: ' . mysql_error()); }

mysql_select_db("xxxxxxxxx", $con);

$browser_type=array('Explorer', 'Firefox', 'Chrome', 'Safari', 'Opera', 'Netscape','Unknown');

$browser_description=array('Explorer', 'Firefox', 'Chrome', 'Safari', 'Opera', 'Netscape','Unknown');

for($i=0; $i<=count($browser_type); $i++){
$result=mysql_num_rows(mysql_query("SELECT browser FROM logger WHERE browser = '".$browser_type[$i]."'"));

echo $browser_description[$i].': '.$result;
}

echo "<br />";
mysql_close($con);
?>

Håber der er en som kan hjælpe.. er kørt lidt kold i det...
med venlig hilsen: Mads Lind

Fra Farum
Tilmeldt 1. Aug 09
Indlæg ialt: 195
Skrevet kl. 16:00
Hvor mange stjerner giver du? :

Det er lidt svært at se hvad du egentlig vil opnå. Hvad er f.eks. meningen med at udskrive det samme "$result" 6 gange nederst, med forskellig description foran? "$result" antager jo den seneste værdi fra den for-loop du laver, dvs. resultatet af query for "browser = 'Netscape'".

Den nederste query for "other" er ikke effektiv. Du bør lægge statistik for "andre" browsere under en separat key (f.eks. "Other", således at din query bare kan være f.eks. "WHERE browser = 'other'" og ikke en hel masse "AND" statements. Det vil skalere ret dårligt. Alternativt kan du summere alle kendte browsere og trække det fra det total antal records og dermed få antal "other".

Mikkel Elmholdt - Freelance softwareudvikler
MEconsult - www.meconsult.dk

Fra Esbjerg
Tilmeldt 18. Mar 11
Indlæg ialt: 9
Skrevet kl. 16:12
Hvor mange stjerner giver du? :
Tak for dit svar..
Da jeg stadig er meget ny ang php har du nok ret i at det roder lidt.. ;)

Kan du måske forklare hvordan jeg giver hver punkt værdien fra databasen.

Det jeg vil opnå er at trække browsernavn ned fra min database og derefter tæl hvor mange gange det browser navn Går igen så jeg kan lave et cirkel diagram.

Fra Vejle
Tilmeldt 10. May 11
Indlæg ialt: 282
Fra  Geekweb Skrevet kl. 17:45
Hvor mange stjerner giver du? :
Gennemsnit 5,0 stjerner givet af 1 person

hvis jeg var dig ville jeg først og fremmest se at slette din database connection fra amino, for med de indtastede data kan vi jo faktisk tilgå din database og evt. slette den hvis det er, det er ikke alle der har lige gode hensigter jo :)

ud over det kan jeg ikke lige se hvor fejlen i din kode ligger... 

Geekweb.dk - Udvikler din hjemmeside

Fra Farum
Tilmeldt 1. Aug 09
Indlæg ialt: 195
Skrevet kl. 17:53
Hvor mange stjerner giver du? :

Ja, det med at slette kodeord til din SQL-database er en rigtig god ide :-)

Kunne man tænke sig at feltet i databasen ikke indeholder browser-navne *præcist* som du har skrevet, men måske med lidt mere tekst? F.eks. tester du på om der er et browser der hedder "Netscape", men hvis der i stedet står "Netscape Navigator" og/eller med en versions-angivelse bagefter, så fanger din query ikke disse entries. Så skal du bruger optionen "LIKE" til SELECT.

Mikkel Elmholdt - Freelance softwareudvikler
MEconsult - www.meconsult.dk

Fra Nykøbing Falster
Tilmeldt 17. Jul 08
Indlæg ialt: 5907
Fra  Casper Schneidereit A/S Skrevet kl. 17:57
Hvor mange stjerner giver du? :

andreashdk:
hvis jeg var dig ville jeg først og fremmest se at slette din database connection fra amino, for med de indtastede data kan vi jo faktisk tilgå din database og evt. slette den hvis det er, det er ikke alle der har lige gode hensigter jo :)

Eller endnu bedre, ændre login oplysninger til databaseserveren :-).

Emnet:

for($i=0; $i<=count($browser_type); $i++) {

Den er ikke optimal. Først og fremmest fordi du kalder count(), hver gang lykken kører. Da der ikke kommer hverken flere eller færre til arrayet $browser_type i forbindelse med lykken, så kan du i stedet gemmer antallet i en variabel.

$antal_browser = count($browser_type);
for($i=0; $i<=$antal_browser; $i++) {

Men når du arbejder med arrays så vil foreach() være endnu bedre.
foreach($browser_type as $key=>$browser) {

Der er noget som ikke stemmer. Ligger andre browsere under 'andre' eller 'unknown'?

Tilmeldt 3. Jul 09
Indlæg ialt: 507
Skrevet kl. 19:00
Hvor mange stjerner giver du? :
Tilmeldt 30. Oct 06
Indlæg ialt: 588
Fra  dk Skrevet kl. 21:43
Hvor mange stjerner giver du? :

Det er bedre at beregne antallet via dit database kald, og så droppe at skrive tingene manuelt ind i PHP.

Prøv noget i din stil her:

<?php
$con = mysql_connect("xxxxxxxxxxx.mysql","xxxxxx","xxxxxxxxx");
if (!$con){ die('Could not connect: ' . mysql_error()); }

mysql_select_db("xxxxxxxxx", $con);

$res = mysql_query("SELECT COUNT(browser) AS total, browser FROM logger GROUP BY browser ORDER BY total DESC")

while($row = mysql_fetch_assoc($res)) {

    echo $row['browser'] . ' ' . $row['total'] . '<br />';
}

?>


Fra Esbjerg
Tilmeldt 18. Mar 11
Indlæg ialt: 9
Skrevet kl. 22:06
Hvor mange stjerner giver du? :

Hej Mads.
Tak for dit svar. 

Hvis jeg skal bruge hver enkelt tal i et diagram hvad er adressen så til det?. 

Side 1 ud af 1 (9 indlæg)