HILFE - bin ein Anfänger

Hallo Gumbo,
tatsächlich - funktioniert auch ohne dieser Konvertierung. Vielen Dank!

Kannst Du mir bei dem Prozent-Problem helfen? Wäre sehr nett von Dir :)
 
Hallo,

ich habe zwar jetzt eine Lösung (wie folgt), aber dass muss doch einfacher gehen:

In der ersten Abfrage ermittel ich die Gesamtsumme aller Sprachen, damit ich diesen Wert dann in der zweiten Abfrage (Summe pro Sprache) für die Prozentrechnung verwenden kann:

// Abfrage Gesamtsumme Sprachen
<?PHP

$db_host = 'localhost'; // Datenbankserver (z.b localhost)
$db_user = 'root'; // Benutzername
$db_pass = ''; // Passwort
$db_name = 'db1027643-0003'; // Datenbankname

// mit der Datenbank verbinden:
$serverID = @mysql_connect($db_host, $db_user, $db_pass);
if(!$serverID) {echo "Der DB Server ist im Moment leider nicht erreichbar!";}
$datenbank=@mysql_select_db($db_name, $serverID);

$abfrage1 = "SELECT SUM(anzahl), typ, anzahl, wert FROM statistik_locale_information WHERE typ='language' GROUP BY typ ORDER BY anzahl";

$ergebnis1 = mysql_query($abfrage1);

while($row=mysql_fetch_array($ergebnis1))
{
$gesamt=$row['SUM(anzahl)'];
}
?>


// Abfrage Summe je Sprache
<?PHP

$db_host = 'localhost'; // Datenbankserver (z.b localhost)
$db_user = 'root'; // Benutzername
$db_pass = ''; // Passwort
$db_name = 'db1027643-0003'; // Datenbankname

// mit der Datenbank verbinden:
$serverID = @mysql_connect($db_host, $db_user, $db_pass);
if(!$serverID) {echo "Der DB Server ist im Moment leider nicht erreichbar!";}
$datenbank=@mysql_select_db($db_name, $serverID);

$abfrage = "SELECT SUM(anzahl), typ, anzahl, wert FROM statistik_locale_information WHERE typ='language' GROUP BY wert ORDER BY anzahl";

$ergebnis = mysql_query($abfrage);

while($row=mysql_fetch_array($ergebnis))
{
$typ=$row['typ'];
$summe=$row['SUM(anzahl)'];
$wert=$row['wert'];

// Flagge-Funktion
$search = array(

'de',
'us'
);

$replace = array(
'<IMG SRC="./laender/de.gif">',
'<IMG SRC="./laender/us.gif">'
);
$wert = str_replace($search, $replace, $row['wert']); // übersetzen und austauschen

$prozent=round($summe*100/$gesamt,2);

echo"$wert $summe $gesamt $prozent%<BR><BR>";
}

?>
 
Du kannst deinen Code übrigens duch [code=php]...[/code] formatieren.

Unterstützt deine Datenbank subselects?

Probier mal ob sowas geht:
SQL:
SELECT * FROM (SELECT 1) t;
 
Summieren lassen sich die Besucherzahlen aller Länder auch durch ein WITH ROLLUP:
SQL:
SELECT SUM(anzahl) , wert 
FROM languages 
GROUP BY wert WITH ROLLUP;

Dann kann man jedoch kein ORDER BY mehr benutzen. Aber in jedem Fall musst du dann nicht mehr selbst in einer Schleife aufsummieren, sondern kannst ein wenig schneller die Prozente berechnen (wenn auch wiederum in einer Schleife).

Mit Subselects wird das ganze wie gesagt direkt möglich.

SQL:
SELECT l.wert, SUM(l.anzahl)/t.s 
FROM languages l, (SELECT SUM(anzahl) s FROM languages) t 
GROUP BY l.wert;
 

Neue Beiträge

Zurück