DePlague Geschrieben 7. März 2002 Geschrieben 7. März 2002 Okay ich weiß ich bin nen DAU das brauch mir keiner sagen Also kommen wir zu meinen Problem ich habe eine Tabelle (MSSQL - gleiche Syntax wie MySQL) wo die so aussieht... Bsp.: Tabelle UserRechte ID | UserName | Tabelle | Status 1 UserA TabA TRUE 2 UserA TabB TRUE 3 UserA TabC TRUE 4 UserA TabD FALSE 5 UserA TabE TRUE 6 UserB TabA FALSE 7 UserB TabB TRUE 8 UserB TabC TRUE 9 UserB TabD FALSE 10 UserB TabE TRUE 11 UserB TabA TRUE 12 UserB TabB TRUE . : ich will jetzt die Spalte UserName durchgängig sortiert nach ASC abfragen und in ein Array schrieben. Wie mache ich das? Fragt mich bitte nicht wieso? Das würde wohl den Rahmen sprengen... ich hatte es mit... $query = "SELECT * FROM UserRechte order by UserName ASC"; $result = mssql_query($query); print "RESULT: $result<br>"; versucht, bekomme aber immer $result = "Resource id #2" zurück. THX4HELP Zitieren
Dagegen Geschrieben 7. März 2002 Geschrieben 7. März 2002 So weit wars schon richtig, in result wird der inhalt der db geschrieben mit $row=mysql_fetch_row($result) liest du einzelne Reihen aus ueber die du dann mit row[spalte] darauf zugreifen kannst. In deinem fall while($row=mysql_fetch_row($result)) /*list solange bis alle Reihen abgearbeitet sind*/ $user=$row[0] . . . Hoffe ich konnte dir helfen Zitieren
Valium Geschrieben 7. März 2002 Geschrieben 7. März 2002 Einfacher weil lesbarer: while($row=mysql_fetch_object($result)) { echo $row->UserName; ... } mysql_fetch_object macht den ausgelesenen Array sehr viel lesbarer und spart Verwirrung bei vielen auszulesenden Spalten. Zitieren
DanielH Geschrieben 8. März 2002 Geschrieben 8. März 2002 Noch einfacher: $result = mysql_fetch_row(mysql_query(...,...)); die Elemente sind dann über $result[0] bis $result[n] ansprechbar. über array_length($result) kannst du dann auch herausfinden wievile Elemente im Array sind. MfG:) Zitieren
Valium Geschrieben 8. März 2002 Geschrieben 8. März 2002 Original geschrieben von DanielH die Elemente sind dann über $result[0] bis $result[n] ansprechbar. Ich weiß leider nicht, was daran einfacher sein soll, den Array mit mit Zahlen anzusprechen. Wenn Du 10 Felder hast und am Ende vielleicht noch hinzufügst, kannst Du sehen, wie Du die Zahlen in die richtige Reihen folge bekommst. mysql_fetch_object() macht die Sache wesentlich einfacher. Oder schonmal versucht anderer Leute Quelltext zu lesen und zu entschlüsseln, wofür die Elemente der Arrays stehen? Zitieren
DanielH Geschrieben 8. März 2002 Geschrieben 8. März 2002 Original geschrieben von Valium Ich weiß leider nicht, was daran einfacher sein soll, den Array mit mit Zahlen anzusprechen. Wenn Du 10 Felder hast und am Ende vielleicht noch hinzufügst, kannst Du sehen, wie Du die Zahlen in die richtige Reihen folge bekommst. mysql_fetch_object() macht die Sache wesentlich einfacher. Oder schonmal versucht anderer Leute Quelltext zu lesen und zu entschlüsseln, wofür die Elemente der Arrays stehen? ist schon richtig, um eindeutig und nachvollziehbar zu arbeiten muß man die Daten dann noch eindeutige Varialennamen geben. Aber wenn man seine Dtenbanken kennt, dann ist das durchaus schneller, weil man sich dann die Zuweisung über z.B. $irgenwas = $row[0] oder gar $row -> bezeichnung spart. Macht beim ausführen keine Unterschiede, aber beim schreiben MfG Zitieren
DePlague Geschrieben 8. März 2002 Autor Geschrieben 8. März 2002 also da muss ich DanielH schon zustimmen... für meinen Fall brauche ich die Daten nicht expliziet zu weisen sondern für eine schnelle Auswertung die immer dynamisch ist und nicht fest dadurch ist für mich ein fester Variablenname nicht von Vorteil. Aber ich habe schon wieder nen Prob. Mein Code ist: $query = "SELECT * FROM UserRechte order by UserName ASC"; print "QUERY: $query<br>"; $result = MSSQL_FETCH_ROW(MSSQL_QUERY($query)); print "$result<br>"; $length = array_length($result); for ($i=0;$i==$length;$i++) { echo "RESULT: $result[$i]<br>"; } aber nun habe ich 2 Probleme 1. der Befehl $length = array_length($result); ist unbekannt 2. statt nach length die schleife abzufragen wollte ich Testweise mal bist 10 laufen lassen aber sie wurde nicht durchlaufen, wieso? DePlague Zitieren
DanielH Geschrieben 8. März 2002 Geschrieben 8. März 2002 Oh ich bereue... es heisst natürlich count($result)... woher hat ich nur arry_length ? MfG Zitieren
DePlague Geschrieben 8. März 2002 Autor Geschrieben 8. März 2002 Ähm Moment mal ich glaube wir reden am Thema vorbei ich will nicht nach UserRechte die Zeilen in ein Array schreiben. Sondern die ganzen Usernamen (UserName) in ein Array bekommen und das sortiert nach ASC. Also nicht die ROW (Zeile) sonderen die Column (Spalte) von UserName... da ich gerade mitbekommen habe das ich immer die Zeile einlesen, das war nicht das was ich brauch sondern alle Werte in der Spalte von Username. Ich weiß damit komm ich jetzt ziehmlich früh aber ich konnte erst seit ca. 2 Stunden den Code von euch testen... und hab gerade mitbekommen das ich immer die Werte von einer Zeile ins Array schreibe. Sorry NEED HELP :confused: Zitieren
DePlague Geschrieben 8. März 2002 Autor Geschrieben 8. März 2002 Okay THX an alle für die Hilfe... habs rausbekommen! Und alle die wissen wie ich's machen muss und jetzt sagen so ein OberDAU haben wohl recht Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.