| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |
|

26-05-2005, 14:30
|
|
Metha
Registrierter Benutzer
|
|
Registriert seit: Mar 2004
Beiträge: 35
|
|
Eindimensionales Array
Hallo zusammen
Ich möchte die Anzahl der Browser ausgeben, die zu einem Bestimmten Datum auf meine Seite zugegriffen haben. Um die Ergebnisse abzuspeichern, verwende ich ein eindimensionales Array.
Mein Code erzeugt aber nur die Anzahl der Browser für der ersten im Array vorkommenden Browser. Was mache ich falsch?
PHP-Code:
$sql=array('IE', 'Opera', 'FireFox', 'Nix');
$typ=array();
$i=0;
while($anzahl=mysql_fetch_row(mysql_query('SELECT
COUNT(browser) AS anzahl FROM md_counter_user
WHERE browser LIKE \'%'.$sql[$i].'%\' AND
YEAR(datum) = '.$this->jahr.'
AND MONTH(datum) = '.$this->monat.' AND
DAYOFMONTH(datum) = '.$this->tag.' GROUP BY browser')))
{
$typ[$i]=$anzahl[$i];
$i++;
}
echo 'MSIE: '.$typ[0].'<br>';
echo 'Opera: '.$typ[1].'<br>';
echo 'FireFox: '.$typ[2].'<br>';
echo 'Nix: '.$typ[3].'<br>';
In der Datenbank befinden sich an dem Datum jeweil 2 IE und 2 Opera. Die anderen Browser kommen nicht vor. Als ausgabe bekommen ich aber nur 2 IE und bei den anderen steht garnichts.
Gruß Micha
|

26-05-2005, 14:34
|
|
Hoschi0815
Member
|
|
Registriert seit: Jan 2004
Beiträge: 255
|
|
Bastel doch einfach alle Browser in deine Query mit ein.
EDIT: Sorry, ist verdammt heiss heute ^^ haste mal print_r($typ) gemacht?
Geändert von Hoschi0815 (26-05-2005 um 14:39 Uhr)
|

26-05-2005, 14:40
|
|
Metha
Registrierter Benutzer
|
|
Registriert seit: Mar 2004
Beiträge: 35
|
|
Das würde ja einen monströsen Query ergeben. Ich wollte die Browser eigentlich schon in dem Array beibehalten, da sich die Liste der Browser ja noch um einiges erweitern soll.
Gibt es eine Seite wo eine Liste "aller" Browserergebnisse der $_SERVER['HTTP_USER_AGENT'] Anweisung stehen ?
Ja, ergibt: Array ( [0] => 2 [1] => )
Geändert von Metha (26-05-2005 um 14:44 Uhr)
|

26-05-2005, 14:51
|
|
Hoschi0815
Member
|
|
Registriert seit: Jan 2004
Beiträge: 255
|
|
Also ich würde trotzdem lieber eine "monströse" Query haben, als monströs viele Queries nacheinander auf die DB los zu jagen.
|

26-05-2005, 14:57
|
|
Metha
Registrierter Benutzer
|
|
Registriert seit: Mar 2004
Beiträge: 35
|
|
Angenommen ich baue die Browserkennungen mit ein, wie soll das gehen?
Ich ermitel doch die Anzahl von bestimmten Browsern und das nacheinander mit jeweil einem anden Browser. Ich kann doch nicht die jeweiligen Browserzahlen für alle Browser in nur einem Query ermitteln oder ?
|

26-05-2005, 15:02
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
Google mal nach "list of all user-agents" oder schau hier gleich hier. Sind natürlich nicht nur Browser sondern auch Spider, Copier und diverse Tools. Aber die willst du ja evtl. auch in deiner Statistik haben.
|

26-05-2005, 15:09
|
|
Hoschi0815
Member
|
|
Registriert seit: Jan 2004
Beiträge: 255
|
|
Ein einfaches CONT(browser) mit deiner WHERE Klausel ohne die browser zu überprüfen + ein GROUP BY browser und schon ist deine Querie fertig
|

26-05-2005, 15:15
|
|
Metha
Registrierter Benutzer
|
|
Registriert seit: Mar 2004
Beiträge: 35
|
|
Damit würde ich aber die gesammte anzahl der Browser an dem gewählten Datum bekommen. Ich will aber die Anzahl der einzelnen Browser zu einem Datum haben.
Danke für die User-Agent Liste!!!
Kann mir keiner bei meinem Code helfen ???
|

26-05-2005, 15:20
|
|
Hoschi0815
Member
|
|
Registriert seit: Jan 2004
Beiträge: 255
|
|
PHP-Code:
SELECT COUNT( browser ), browser
FROM deiner_tabelle
WHERE tag = 'dein_tag'
AND monat = 'dein_monat'
AND jahr = 'dein_jahr'
GROUP BY browser
Und du wirst sehen, dass du alle browser ausgegeben bekommst..
|

26-05-2005, 15:23
|
|
Metha
Registrierter Benutzer
|
|
Registriert seit: Mar 2004
Beiträge: 35
|
|
@Hoschi0815
Mir schlägt das Wetter heute auch ganzschön auf die Pumpe
Zitat:
|
Damit würde ich aber die gesammte anzahl der Browser an dem gewählten Datum bekommen. Ich will aber die Anzahl der einzelnen Browser zu einem Datum haben.
|
|

26-05-2005, 15:25
|
|
Hoschi0815
Member
|
|
Registriert seit: Jan 2004
Beiträge: 255
|
|
Nur zu verständlich  Ich brauch jetzt auch erstmal ein kühles blondes, und danach ein bier
|

26-05-2005, 15:32
|
|
Metha
Registrierter Benutzer
|
|
Registriert seit: Mar 2004
Beiträge: 35
|
|
Dir sei es gegönnt!
Bei meinem Problem mit dem Array kannst du mir dann aber auch nicht helfen oder ?
Scheinbar läuft die SChleife nicht bis zum Ende durch, oder übernimmt die Werte nicht? Ich kann blos bei meinem Code nichts finden.
Hier nochmal der Output von print_r: Array ( [0] => 2 [1] => )
|

26-05-2005, 15:43
|
|
Hoschi0815
Member
|
|
Registriert seit: Jan 2004
Beiträge: 255
|
|
Naja, ich frage mich halt immernoch warum du die Browser in einen Array packen willst... Mein Vorschlag wäre:
PHP-Code:
$sql="SELECT count(browser) AS num_browser,browser FROM
Tabelle WHERE ..... GROUP BY browser";
$query=mysql_query($query);
$browser=array();
while($row=mysql_fetch_array($query))
{
$browser[]=$row;
}
for($i=0;$i<count($browser);$i++)
{
echo $browser[$i]['browser']." benutzen
".$browser[$i]['num_browser'];
}
Dann brauchste auch garnicht alle Browser aufschreiben, also erspartes dir auch zeit
EDIT: Und ansonsten lass dir mal per echo deine Query ausgeben
Geändert von Hoschi0815 (26-05-2005 um 16:06 Uhr)
|

26-05-2005, 16:23
|
|
Metha
Registrierter Benutzer
|
|
Registriert seit: Mar 2004
Beiträge: 35
|
|
ok, so klappts:
PHP-Code:
$sql='SELECT COUNT(browser) AS anzahl, browser
FROM md_counter_user WHERE
YEAR(datum)='.$this->jahr.' AND
MONTH(datum)='.$this->monat.' AND
DAYOFMONTH(datum)='.$this->tag.' GROUP BY browser';
$qry=mysql_query($sql);
$bwr=array();
while($row=mysql_fetch_array($qry))
{$bwr[]=$row;}
for($i=1; $i<count($bwr); $i++)
{
echo $bwr[$i]['browser']." benutzen ".$bwr[$i]['anzahl'].'<br>';
}
Danke für deine Hilfe Hoschi0815. Jetzt brauch auch ich ein kühles blondes
|

26-05-2005, 16:30
|
|
Hoschi0815
Member
|
|
Registriert seit: Jan 2004
Beiträge: 255
|
|
Gerne und Prost
Aber biste dir sicher, dass du alle Ergebnisse angezeigt bekommst? Sollte $i nicht besser auf 0 gesetzt werden?
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|