Avatar billede michaeltryl Seniormester
16. marts 2008 - 01:46 Der er 9 kommentarer og
1 løsning

problem med at opdele multi array

Jeg har et multi array som jeg har fået sorteret, men nu har problemer med at udskrive

det bliver lavet sådan

$test = array();

$resultat = mysql_query("SELECT traad_id FROM forumtraad WHERE parent ='0'");//Spørger efter ID
while ($show = mysql_fetch_array($resultat))
{
$id = $show[traad_id];

$res =mysql_query("select COUNT(traad_id) from forumtraad where parent = '$id'") or die(mysql_error());
list($antal)=mysql_fetch_row($res);

$test[] = array('id' => $id, 'antal' => $antal);
}

herefter bliver det sorteret efter antal, sådan det største tal er først

nu skal jeg så have hevet "id" ud i en variabel og "antal" ud i en anden.
jeg har prøvet med

foreach($test[0] as $tester => $id)
{
    echo "<b> $tester =</b>$id<br>";
}

men her kommer de ud i samme variabel
så hvordan får jeg dem ud i to variabler?

Jeg skal kun bruge de tre første id'er (de tre forum tråde med flest svar)
så er der en som har en bedre løsning  høre jeg den gerne
Avatar billede johny Nybegynder
16. marts 2008 - 03:17 #1
Hmm, jeg kan ikke helt gennemskue hvordan din database er bygget op ud fra det der, men det letteste vil vel være at lade en SQL query gøre det hele for dig? Hvis du laver en GROUP BY på traad_id, og en SUM på det, så skulle du vha. en HAVING, LIMIT og sortering få hevet de tre id'er ud som løsning.

Men ja, hvis du lige kan forklare os kort hvordan din tabel er bygget op, så skulle det hurtigt kunne klares.. :)
Avatar billede erikjacobsen Ekspert
16. marts 2008 - 07:42 #2
Formentlig bare

foreach($test as $k)
{
    echo "<b> {$k->tester} =</b>{$k->id}<br>";
}
Avatar billede erikjacobsen Ekspert
16. marts 2008 - 07:42 #3
Ups, lidt for tidligt på dagen.... ;)

    echo "<b> {$k->antal} =</b>{$k->id}<br>";
Avatar billede moddi100 Seniormester
16. marts 2008 - 09:43 #4
foreach($test[0] as $tester => $id)
{
    if ($tester == id)
    {
    echo "<b> $tester =</b>$id<br>";
   
    } elseif ($tester == antal) {

    echo "<b> $tester =</b>$id<br>";
    }
}

Noget i den stil? Du kan selvfølgelig også bare bruge switch i stedet for if og elseif...
Avatar billede erikjacobsen Ekspert
16. marts 2008 - 10:25 #5
moddi100: den kode giver ingen mening overhovedet.
Avatar billede michaeltryl Seniormester
16. marts 2008 - 11:23 #6
min tabel har denne struktur
`traad_id` int(11) NOT NULL auto_increment,
  `bruger` varchar(255) NOT NULL,
  `oprettet` datetime NOT NULL,
  `overskrift` varchar(255) NOT NULL,
  `traad` text NOT NULL,
  `under_gruppe` int(11) NOT NULL,
  `hoved_gruppe` int(11) NOT NULL,
  `parent` int(11) NOT NULL,
  `ip` varchar(255) NOT NULL,
  PRIMARY KEY  (`traad_id`)

alle spørgsmål har parent = 0
mens alle svar til et spørgsmål har parent = traad_id for spørgsmålet der svares på

Jeg skal så have en liste udskrevet med de tre spørgsmål der er svaret mest på.

erikjacobsen svar den
16/03-2008 07:42:13 og 16/03-2008 07:42:35 udskriver kun en masse = under hinanden
Avatar billede erikjacobsen Ekspert
16. marts 2008 - 11:32 #7
Ja, selvfølgelig - du putter et array ind i dit array, ikke et object. Så er det bare:

    echo "<b> {$k['antal']} =</b>{$k['id']}<br>";
Avatar billede michaeltryl Seniormester
16. marts 2008 - 15:54 #8
den virker erikjacobsen, tak for hjælpen så bare smid et svar
Avatar billede erikjacobsen Ekspert
16. marts 2008 - 16:05 #9
Jeg samler slet ikke på point, tak.
Avatar billede michaeltryl Seniormester
30. marts 2008 - 23:14 #10
lukker
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester