23. august 2003 - 19:18Der er
29 kommentarer og 1 løsning
Forskellige værdier i samme del af et array
Hej Eksperter :) Jeg har forsøgt mig at prøve med lidt arrays men jeg synes det er hulens svært ;/
Jeg har i en database nogen værdier over hvor mine brugere kommer fra og vil gerne kunne se det lidt mere grafisk derfor vil jeg tælle op hvormange der er kommet fra en specifik side, dette går fint nok, men mit problem kommer når jeg vil have sorteret arrayet efter hvilken der har den største "antal" værdi...
lidt svært at forklare, men indtil videre ser mit script således ud:
$foresp = mysql_query("SELECT * FROM kalender_stat_ref ORDER BY ref DESC") or die(mysql_error()); while($row = mysql_fetch_array($foresp)) { $ref_ip = $row["ip"]; $ref_ref = $row["ref"];
$ref_ref = explode("/", $ref_ref);
$alle[] = $ref_ref[2];
}
$antalsite = count($alle);
$site = 0; $aktiv = "";
while ($antalsite > $site) { if ($aktiv != $alle[$site]) { if ($aktiv != "") {
echo" $alle[$site] ($antal)<br> ";
$antal = 1; } } else { $antal = $antal+1; }
$aktiv = $alle[$site]; $site = $site+1; }
Nu vil jeg gerne have den som har det højeste antal til at være øverst, og dette ved jeg ikke hvordan jeg skal lave :(
Håber der er nogen der kan hjælpe mig med mit problem
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
jamen det er ikke det med at sortere, men hvordan jeg får 2 værdier med i samme del af arrayet... altså både navnet på siden og hvormange gange den er fremkommet, også skal det sorteres efter antallet
<?php $foresp = mysql_query("SELECT *, COUNT(ref) AS antal FROM forum_body GROUP BY ref ORDER BY antal DESC") or die(mysql_error()); while ($row = mysql_fetch_assoc($foresp)) { echo "$row[ref] ($row[antal])<br>"; } ?>
jeg har en database tabel hvor jeg pytter data ind om mine brugere når de går ind på min side første gang... i tabellen bliver IP og ref plus tidspunkt gemt!
udfra ref vil jeg gerne lave en statestik over hvilke sider der sender flest besøgende til mig...
en side skal kun skrives 1 gang selvom der måske er 27 der er kommet fra den side, og det samme med andre sider! det er kun selve domænenavnet jeg er interesseret i, så derfor har jeg fjernet diverse mapper osv...
dette kan jeg godt finde ud af til dels (hvert fald kun at vise et domæne en gang selvom den måske optræder flere gange) mit problem opstår når jeg skal have den til at vise hvormange gange den givende domæne findes i databasen, og at jeg gerne vil have den der har sendt flest besøgende til mig, til at være øverst, også den mest næstflest viderestillingere til at være anden øverst osv hele vejen ned!
Hvordan laver jeg det? For jeg skal jo både tælle hvormange gange domænet er der imens den udskriver rækkerne men bagefter skal de også sorteres efter hvormange gange!
det jeg selv har lavet indtil videre kan ses på denne side: http://myserver.lir.dk/kontorchef.dk/admin/stat.php allernederst, men tallet passer ikke, men det med at et domæne kun bliver vist en gang fungere!
$foresp = mysql_query("SELECT SUBSTRING_INDEX(ref,'/',3) AS shortref, COUNT(shortref) AS antal FROM kalender_stat_ref GROUP BY ref ORDER BY antal DESC") or die(mysql_error()); while ($row = mysql_fetch_assoc($foresp)) { echo "$row[shortref] ($row[antal])<br>"; }
jeg har ikke en kolonne i min tabel som hedder antal schaefner, det skal scriptet selv tælle i mens den går gennem rækkerne, det er det der gør at jeg ikke selv kan finde ud af det!
Hvis du bare gad at prøve, så skal du bare se :) Jeg har dog lige lavet en rettelse:
<?php $foresp = mysql_query("SELECT SUBSTRING_INDEX(ref,'/',3) AS shortref, COUNT(*) AS antal FROM kalender_stat_ref GROUP BY shortref ORDER BY antal DESC") or die(mysql_error()); while ($row = mysql_fetch_assoc($foresp)) { echo "$row[shortref] ($row[antal])<br>"; } ?>
Returns the substring from string str before count occurrences of the delimiter delim. If count is positive, everything to the left of the final delimiter (counting from the left) is returned. If count is negative, everything to the right of the final delimiter (counting from the right) is returned:
yep, tænk at jeg havde været lige så comp-dum som resten af familien hvis eksperten ikke havde været til ;)
Synes godt om
Ny brugerNybegynder
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.