Jeg har hentet en hel tabel ud via mysql_fetch_array og det virker som det skal (dvs. dataene er hentet korrekt).
Jeg kan nu (naturligvis) hente data ved at bruge $row['brugernavn'] eksempelvis. Men der er jo flere records hentet ud, og med min begrænsede viden om arrays er jeg ikke helt klar over, hvordan det skal tilgås. Jeg kan godt finde ud af at liste dem alle ved at lave en while-løkke omkring recordsettet, men jeg vil gerne bare have dem hentet i et array og derfra kunne tilgå en hvilkensomhelst record ved at skrive "$row['brugernavn'] plus noget mere som angiver hvilken record den skal hente det fra." Dvs. jeg vil slippe for at skulle spole i det, fordi det tager det smarte ud af det. fungerer et recordset (med flere records) via mysql_fetch_array ikke a la et multidimensionelt array, hvor man så både angiver hvilken records (den ene dimension) og hvilket felt (den anden dimension) man vil have fat i?
Jeg gider ikke lige forklare grunden til at jeg ønsker det. En lidt længere forklaring, men datamængden er beskeden, bare rolig :)
Det virker og er meget tæt på at være hvad jeg ønsker. Der er dog en lille forskel. Jeg ønsker at kunne angive id (dvs. id for den enkelte record) og ikke bare 0 for det først udtrukne, 1 for den næste osv.). Hvis de tre records jeg henter har brugere_id = 4,5 og 6 vil jeg have det sådan at jeg skal angive 4 i stedet for 0 for at fange den første. Gav det mening. Det er naturligvis fordi det skal scriptes og at tallet skal hentes fra en anden tabel og derfor ikke umiddelbart kan angives via et nummer der er afgjort alt efter hvor mange records der kommer før en given record, i stedet for simpelthen dets id.
horsmark: Kan der følge en ganske kort forklaring med. Jeg er ok inde i PHP, men bruger jo altid bare det samme funktioner osv. Jeg kan ikke helt gennemskue din kode der :/
$aUsers = array(); // opret et array så $aUsers[] ikke fejler $sql = "SELECT * FROM mytable"; $result = mysql_query($sql) or die( mysql_error() ); //Her sender vi query afsted til db /* Her looper vi igennem recordsettet der returneres fra mysql indtil der ikke er flere rækker tilbage */ while ( $row = mysql_fetch_assoc($result) ) { /*Her indsættes en ny entry i arrayet aUsers men den unikke key taget fra brugerens id*/ $aUsers[$row['user_id']] = $row; }
/* Udskriver arrayet nicely og burde skrive det ala dette
[1] => array( ...alle kollonner fra db´en ) [6] => array( ...alle kollonner fra db´en ) */ print_r($aUsers);
1. lav en funktion :-) function getUserDetail($iUserId, $sDetail){ global $aUsers; return isset($aUsers[$iUserId][$sDetail]) ? $aUsers[$iUserId][$sDetail] : null; }
print "Navnet på brugeren er:".getUserDetail(3, 'brugernavn')." og han bor på ".getUserDetail(3, 'brugeradresse');
2. kald den direkte $aUsers[3]['brugernavn'];
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.