Equerm Skrevet 12. oktober 2006 Skrevet 12. oktober 2006 (endret) Hei, jeg holder på med et brukersystem å sliter med å få listet opp brukerene, jeg vil ha de i flere tabeller. Jeg lister de opp etter brukernnr som er inndelt slik: Admin: 100000 - 199999 Crew: 200000 - 299999 VIP: 300000 - 399999 Standardbruker: 400000 - 499999 Jeg får bare listet opp adminbrukerene med denne koden, noen som skjønner hvorfor? <?php $mat = "FALSE"; $sql = mysql_query("SELECT * FROM UMS_medlemmer ORDER BY medlnr"); echo '<table id="userlist">'; echo "<tr>\n <td colspan=\"10\">Administratorbrukarar:</td>\n </tr>\n"; echo '<tr>'; echo '<td width="70px"><strong>Medlemsnr:</strong></td>'; echo '<td width="400px"><strong>Namn:</strong></td>'; echo '<td width="200px"><strong>Adresse:</strong></td>'; echo '<td width="100px"><strong>Tlfnr:</strong></td>'; echo '<td width="400px"><strong>Epost:</strong></td>'; echo '<td width="200"><strong>Bustad:</strong></td>'; if ($mat === TRUE) {echo "<td><strong>Mat:</strong></td>";} echo '<td colspan="3"><strong>Handlinger</strong></td>'; echo '</tr>'; while ($object = mysql_fetch_object($sql)) { if ($object->medlnr[0] == 1) { echo "<tr>"; echo "<td>$object->medlnr</td>"; echo "<td>$object->namn <br>[$object->brukernamn]</td>"; echo "<td>$object->adresse</td>"; echo "<td>$object->tlfnr</td>"; echo "<td>$object->epost</td>"; echo "<td>$object->bosted</td>"; if ($mat === TRUE) {echo "<td>$object->mat</td>";} echo '<td><a href="#" title="Edit"><img border="0" src="http://dalalan.net/UMS/gfx/edit.png" alt="Edit"></a></td>'; echo '<td><a href="#" title="Delete"><img border="0" src="http://dalalan.net/UMS/gfx/delete.png" alt="Delete"></a></td>'; echo '<td><a href="#" title="Lock User"><img border="0" src="http://dalalan.net/UMS/gfx/lock.png" alt="Lock User"></a></td>'; echo "</tr>\n"; } } echo "</table>"; echo '<table id="userlist">'; echo "<tr>\n <td colspan=\"10\">Crew-brukarar:</td>\n </tr>\n"; echo '<tr>'; echo '<td width="70px"><strong>Medlemsnr:</strong></td>'; echo '<td width="400px"><strong>Namn:</strong></td>'; echo '<td width="200px"><strong>Adresse:</strong></td>'; echo '<td width="100px"><strong>Tlfnr:</strong></td>'; echo '<td width="400px"><strong>Epost:</strong></td>'; echo '<td width="200"><strong>Bustad:</strong></td>'; if ($mat === TRUE) {echo "<td><strong>Mat:</strong></td>";} echo '<td colspan="3"><strong>Handlinger</strong></td>'; echo '</tr>'; while ($object = mysql_fetch_object($sql)) { if ($object->medlnr[0] == 2) { echo "<tr>"; echo "<td>$object->medlnr</td>"; echo "<td>$object->namn <br>[$object->brukernamn]</td>"; echo "<td>$object->adresse</td>"; echo "<td>$object->tlfnr</td>"; echo "<td>$object->epost</td>"; echo "<td>$object->bosted</td>"; if ($mat === TRUE) {echo "<td>$object->mat</td>";} echo '<td><a href="#" title="Edit"><img border="0" src="http://dalalan.net/UMS/gfx/edit.png" alt="Edit"></a></td>'; echo '<td><a href="#" title="Delete"><img border="0" src="http://dalalan.net/UMS/gfx/delete.png" alt="Delete"></a></td>'; echo '<td><a href="#" title="Lock User"><img border="0" src="http://dalalan.net/UMS/gfx/lock.png" alt="Lock User"></a></td>'; echo "</tr>\n"; echo "</table>"; } } echo "</table>"; echo '<table id="userlist">'; echo "<tr>\n <td colspan=\"10\">VIP-brukarar:</td>\n </tr>\n"; echo '<tr>'; echo '<td width="70px"><strong>Medlemsnr:</strong></td>'; echo '<td width="400px"><strong>Namn:</strong></td>'; echo '<td width="200px"><strong>Adresse:</strong></td>'; echo '<td width="100px"><strong>Tlfnr:</strong></td>'; echo '<td width="400px"><strong>Epost:</strong></td>'; echo '<td width="200"><strong>Bustad:</strong></td>'; if ($mat === TRUE) {echo "<td><strong>Mat:</strong></td>";} echo '<td colspan="3"><strong>Handlinger</strong></td>'; echo '</tr>'; while ($object = mysql_fetch_object($sql)) { if ($object->medlnr[0] == 3) { echo "<tr>"; echo "<td>$object->medlnr</td>"; echo "<td>$object->namn <br>[$object->brukernamn]</td>"; echo "<td>$object->adresse</td>"; echo "<td>$object->tlfnr</td>"; echo "<td>$object->epost</td>"; echo "<td>$object->bosted</td>"; if ($mat === TRUE) {echo "<td>$object->mat</td>";} echo '<td><a href="#" title="Edit"><img border="0" src="http://dalalan.net/UMS/gfx/edit.png" alt="Edit"></a></td>'; echo '<td><a href="#" title="Delete"><img border="0" src="http://dalalan.net/UMS/gfx/delete.png" alt="Delete"></a></td>'; echo '<td><a href="#" title="Lock User"><img border="0" src="http://dalalan.net/UMS/gfx/lock.png" alt="Lock User"></a></td>'; echo "</tr>\n"; echo "</table>"; } } echo "</table>"; echo '<table id="userlist">'; echo "<tr>\n <td colspan=\"10\">Standardbrukarar:</td>\n </tr>\n"; echo '<tr>'; echo '<td width="70px"><strong>Medlemsnr:</strong></td>'; echo '<td width="400px"><strong>Namn:</strong></td>'; echo '<td width="200px"><strong>Adresse:</strong></td>'; echo '<td width="100px"><strong>Tlfnr:</strong></td>'; echo '<td width="400px"><strong>Epost:</strong></td>'; echo '<td width="200"><strong>Bustad:</strong></td>'; if ($mat === TRUE) {echo "<td><strong>Mat:</strong></td>";} echo '<td colspan="3"><strong>Handlinger</strong></td>'; echo '</tr>'; while ($object = mysql_fetch_object($sql)) { if ($object->medlnr[0] == 4) { echo "<tr>"; echo "<td>$object->medlnr</td>"; echo "<td>$object->namn <br>[$object->brukernamn]</td>"; echo "<td>$object->adresse</td>"; echo "<td>$object->tlfnr</td>"; echo "<td>$object->epost</td>"; echo "<td>$object->bosted</td>"; if ($mat === TRUE) {echo "<td>$object->mat</td>";} echo '<td><a href="#" title="Edit"><img border="0" src="http://dalalan.net/UMS/gfx/edit.png" alt="Edit"></a></td>'; echo '<td><a href="#" title="Delete"><img border="0" src="http://dalalan.net/UMS/gfx/delete.png" alt="Delete"></a></td>'; echo '<td><a href="#" title="Lock User"><img border="0" src="http://dalalan.net/UMS/gfx/lock.png" alt="Lock User"></a></td>'; echo "</tr>\n"; echo "</table>"; } } ?> Endret 12. oktober 2006 av Equerm
Peter Skrevet 12. oktober 2006 Skrevet 12. oktober 2006 if ($object->medlnr[0] == 1) { Dette kan da ikke stemme? $obj->medlnr er vel ikke et array?
Equerm Skrevet 12. oktober 2006 Forfatter Skrevet 12. oktober 2006 if ($object->medlnr[0] == 1) { Dette kan da ikke stemme? $obj->medlnr er vel ikke et array? 7055039[/snapback] Det stemmer, faktisk, det er ikke er array nei men det henter ut det første tallet fra variabelen. test f.eks PHP $var = "hm"; echo $var[0]; // output blir "h" echo $var[1]; // output blir "m"
Gjest Slettet+142 Skrevet 12. oktober 2006 Skrevet 12. oktober 2006 (endret) PHP <?php if ($object->medlnr[0] == 4) { echo "<tr>"; echo "<td>$object->medlnr</td>"; echo "<td>$object->namn <br>[$object->brukernamn]</td>"; echo "<td>$object->adresse</td>"; echo "<td>$object->tlfnr</td>"; echo "<td>$object->epost</td>"; echo "<td>$object->bosted</td>"; if ($mat === TRUE) {echo "<td>$object->mat</td>";} echo '<td><a href="#" title="Edit"><img border="0" src="http://dalalan.net/UMS/gfx/edit.png" alt="Edit"></a></td>'; echo '<td><a href="#" title="Delete"><img border="0" src="http://dalalan.net/UMS/gfx/delete.png" alt="Delete"></a></td>'; echo '<td><a href="#" title="Lock User"><img border="0" src="http://dalalan.net/UMS/gfx/lock.png" alt="Lock User"></a></td>'; echo "</tr>\n"; echo "</table>"; }else echo "<tr><td colspan='10'>Feil. Medlemsnr'et var ikke 4, det var ".$object->medlnr[0]."</td></tr>; ?> prøv å erstatte den siste if'en med denne... da vil du finne ut hvorfor/hva som gir feilmelding EDIT: og utenfor while'en legger du PHP <?php echo '</table>'; ?> Endret 12. oktober 2006 av Slettet+142
Equerm Skrevet 12. oktober 2006 Forfatter Skrevet 12. oktober 2006 Gjorde det nå, feilmeldinga kom ikke opp
Gjest Slettet+142 Skrevet 12. oktober 2006 Skrevet 12. oktober 2006 (endret) du har prøvd echo mysql_error(); sant? PHP <?php if ($object->medlnr[0] == 4) { echo "<tr>"; echo "<td>$object->medlnr</td>"; echo "<td>$object->namn <br>[$object->brukernamn]</td>"; echo "<td>$object->adresse</td>"; echo "<td>$object->tlfnr</td>"; echo "<td>$object->epost</td>"; echo "<td>$object->bosted</td>"; if ($mat === TRUE) {echo "<td>$object->mat</td>";} echo '<td><a href="#" title="Edit"><img border="0" src="http://dalalan.net/UMS/gfx/edit.png" alt="Edit"></a></td>'; echo '<td><a href="#" title="Delete"><img border="0" src="http://dalalan.net/UMS/gfx/delete.png" alt="Delete"></a></td>'; echo '<td><a href="#" title="Lock User"><img border="0" src="http://dalalan.net/UMS/gfx/lock.png" alt="Lock User"></a></td>'; echo "</tr>\n"; echo "</table>"; }else{ echo "<tr><td colspan='10'>"; print_r(get_class_vars("stdClass")); echo "</td></tr>"; } ?> hmm.. prøve dette da? Endret 12. oktober 2006 av Slettet+142
Equerm Skrevet 12. oktober 2006 Forfatter Skrevet 12. oktober 2006 Ble ingen endring der heller, hva gjør den siste koden der da?
Gjest Slettet+142 Skrevet 12. oktober 2006 Skrevet 12. oktober 2006 (endret) den skulle ha listet opp variablene.. kan du prøve å kjøre en ny sql i ny fil? PHP <? $res = mysql_query("SELECT * FROM UMS_medlemmer ORDER BY medlnr"); $i = 0; while ($i < mysql_num_fields($res)) { $data = mysql_fetch_field($res, $i); echo '<td>'.$data->name.'</td>'; $i++; } echo "</tr></table>"; ?> da skal du få listet opp feltene... EDIT: liten feil Endret 12. oktober 2006 av Slettet+142
Peter Skrevet 12. oktober 2006 Skrevet 12. oktober 2006 Synes ikke den "arraymetoden" er så veldig fin å bruke på tall, men det er jo så. Uansetttttttttttt, grunnen til at dette ikke funker er fordi du glemmer at array_fetch_*-funksjonene avanserer en intern peker til resultatsettene. Når du har kjørt den første loopen, så er du i enden av av disse interne pekerene. Løsningen er å lagre alle dataene i den første loopen i et nytt array. Capish? (eller må jeg vise?)
Equerm Skrevet 12. oktober 2006 Forfatter Skrevet 12. oktober 2006 Synes ikke den "arraymetoden" er så veldig fin å bruke på tall, men det er jo så. Uansetttttttttttt, grunnen til at dette ikke funker er fordi du glemmer at array_fetch_*-funksjonene avanserer en intern peker til resultatsettene. Når du har kjørt den første loopen, så er du i enden av av disse interne pekerene. Løsningen er å lagre alle dataene i den første loopen i et nytt array. Capish? (eller må jeg vise?) 7055454[/snapback] Hadde vert fint om du kunne vise
Peter Skrevet 12. oktober 2006 Skrevet 12. oktober 2006 PHP <?php $res = mysql_query(....); if( $res ) { $objs = array(); // Denne loopen skal bare kjøres én gang while( $obj = mysql_fetch_object( $res ) ) { $objs[] = $obj; } // Denne loopen kan brukes så mange ganger du vil. foreach( $objs as $obj ) { echo $obj->medlnr; } } ?> ok?
Equerm Skrevet 13. oktober 2006 Forfatter Skrevet 13. oktober 2006 Takk takk, det fungerte, men egentlig skjønte jeg ikke hva den gjorde da, får lese litt på php.net
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å