ilpostino Skrevet 17. februar 2004 Del Skrevet 17. februar 2004 planen er å kunne skrive ut data om alle brukere som er registrert i en database. disse dataene ligger i en multidimensjonal array. det jeg har problemer med er å få skrevet ut data for alle brukerne istedenfor data for den første som ligger i databasen. har prøvd med foreach og detvarjeg jeg kun fikk skrevet ut for den første brukeren i databasen. Jeg har laget arrayen slik: $link_id = mysql_connect($default_dbhost, $dbusername, $dbpassword ) or error_message ("Oppkobling feilet"); $database = mysql_select_db ("brukere") or error_message ("Databasen finnes ikke"); $data = mysql_query ("SELECT * FROM `brukere`") or error_message("Henting av data feilet"); $antall = mysql_num_rows ($data); $mail_data = mysql_fetch_array($data, MYSQL_ASSOC) or error_message ("Klarte ikke hente ut data"); og skrevet ut dataene slik: foreach ($mail_data as $display) { echo "<td>" . $display['fornavn'] . "</td>"; echo "<td>" . $display['etternavn'] . "</td>"; echo "<td>" . $display['brukernavn'] . "</td>"; } hva gjør jeg galt? Lenke til kommentar
Edorph Skrevet 17. februar 2004 Del Skrevet 17. februar 2004 while ($rad = mysql_fetch_row($data)) { printf(" <tr> <td>%s</td> <td>%s</td> <td>%s</td> </tr> ", $rad[1], $rad[2], $rad[3]); } Hvis ikke jeg har misforstått, skulle noe liknende det være løsningen. Lenke til kommentar
Nervetattoo Skrevet 17. februar 2004 Del Skrevet 17. februar 2004 I følge php manualen må du bruke 2 foreach for å skrive ut multidimensjonale array. Funnet det litt teit og vanskelig selv, bruk while loop som Edorph har beskrevet, funker fint. Lenke til kommentar
Torbjørn Skrevet 17. februar 2004 Del Skrevet 17. februar 2004 man bruker while løkker for å hente ut mysql data som regel. mener det skal stå flust med eksempler under funksjonsbeskrivelsen til mysql_fetch_assoc eller *_array Lenke til kommentar
ilpostino Skrevet 17. februar 2004 Forfatter Del Skrevet 17. februar 2004 vet at det står masse eksempler om det i manualen til php.. spesielt med at en må bruke 2 foreach-løkker. problemet mitt er at jeg såvidt har begynt å skjønne hvordan en skal bruke (og manipulere) multidimensjonale arrays... så hvordan jeg da skal (mis)bruke de i en løkke har vært ganske uforståelig..... jeg i manualen til php har jeg fått inntrykk av at foreach brukes på slike arrays så jeg var vel litt villedet med hensyn til å bruke noe annet.... Lenke til kommentar
Torbjørn Skrevet 18. februar 2004 Del Skrevet 18. februar 2004 jeg har aldri brukt begrepet "multidimensjonelle arrays" om resource identifier'en du får fra et mysql query, og synes heller ikke det hører helt hjemme der.. et mysql query gir deg en såkalt "resource identifier", ingen array. vha funksjonene mysql_fetch_array, *_assoc og *_row kan du hente ut arrays fra denne. disse array'ene er hver rad i mysql tabellen og er ikke multidimensjonale. som du ser av Edorph sitt eksempel brukes han ikke for eller foreach en eneste gang. Lenke til kommentar
ilpostino Skrevet 18. februar 2004 Forfatter Del Skrevet 18. februar 2004 while ($rad = mysql_fetch_row($data)) { printf(" <tr> <td>%s</td> <td>%s</td> <td>%s</td> </tr> ", $rad[1], $rad[2], $rad[3]); } Hvis ikke jeg har misforstått, skulle noe liknende det være løsningen. kanskje dette er litt teit spørsmål, men hva gjør %s...? Lenke til kommentar
sven-o Skrevet 18. februar 2004 Del Skrevet 18. februar 2004 while ($rad = mysql_fetch_row($data)) { printf(" <tr> <td>%s</td> <td>%s</td> <td>%s</td> </tr> ", $rad[1], $rad[2], $rad[3]); } Hvis ikke jeg har misforstått, skulle noe liknende det være løsningen. kanskje dette er litt teit spørsmål, men hva gjør %s...? %s fungerer på en måte som å fortelle php "putt strengen her!" Det som da får plassen til %s blir de variablene som er 2. argument< til printf. Dette fungerer på samme måte: printf(" <tr> <td>".$rad[1]."</td> <td>".$rad[2]."</td> <td>".$rad[3]."</td> </tr>"); Lenke til kommentar
ilpostino Skrevet 18. februar 2004 Forfatter Del Skrevet 18. februar 2004 %s fungerer på en måte som å fortelle php "putt strengen her!"Det som da får plassen til %s blir de variablene som er 2. argument< til printf. det er jo en ganske fiffig løsning om jeg får si det..... et dumt spørsmål til: når en bruker 'mysql_fetch_array' blir innholdet (den valgte linjen/raden i tabellen) puttet inn i en 'vanlig' array eller en multidimensjonal array...? nå begynner jeg skjønne hvorfor jeg ikke fikk det til da jeg lagde denne tråden... Lenke til kommentar
Torbjørn Skrevet 18. februar 2004 Del Skrevet 18. februar 2004 et dumt svar: hvor mange dimensjoner har du i en mysqlrad? ellers: echo "<pre>"; print_r($din_array_her); echo "</pre>"; så ser du hva du har i arrayet. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå