Mit abgefragten Daten aus Datenbank weiterarbeiten ... aber wie ?

Surfer100

Grünschnabel
Hallo,

ich lasse momentan Werte aus meiner Datenbank abfragen.
Doch mit ihnen möchte ich (als Variable) weiterarbeiten.

PHP:
$abfrage = "SELECT * FROM meine Tabelle WHERE user_id = ''";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
   {
   echo "$row->mein Spaltenname|<br>";
   }

Als User-ID ist absichtlich nichts angegeben - ich möchte nämlich die Werte haben, bei denen noch keine user-id eingegeben ist.
Das funktioniert auch soweit.

Ich bekomme dann das raus:
Wert1|
Wert2|
... etc

Dieses Zeichen | ist da, weil ich schon versucht habe, das ganze mit explode zu trennen. Hat aber nicht funktioniert ...


Also ... was ich nun haben will ... ich bekomme da Werte heraus und mit denen möchte ich "weiterarbeiten" ... d.h. sie als Variablen abspeichern ...

Könnt Ihr mir weiterhelfen ?

Grüße
Surfer100
 
Könnt Ihr mir weiterhelfen ?
Nein, da ich leider nicht verstehe was du möchtest. :)

Du bekommst | weil du es in deiner echo-Ausgabe hast:
PHP:
echo "$row->Spaltenname |<br>"; // <- vor dem <br />
Explode ist hier also fehl am Platz..

Wenn du alle Werte in einem array haben möchtest:
PHP:
while($row = mysql_fetch_object($ergebnis))
   {
   $werte[] = $row->Spaltenname;
   }
Oder statt mysql_fetch_object nehme mysql_fetch_array.
So bekommst du über $row["Spaltenname"] deine Werte.

Edit: Oh, zu spät..

Viele Grüße,
Jacka
 
Ich denke mysql_fetch_assoc() oder mysql_fetch_array() tut das schneller und bringt den gleichen Effekt.

Und der große Vorteil... man glaubt es kaum es ist noch weniger Code.

Und wieso überhaupt eine While-Schleife? ...
 
Ich denke mysql_fetch_assoc() oder mysql_fetch_array() tut das schneller und bringt den gleichen Effekt.
Warscheinlich.

Warum While? Ich nehme an, es war ein Beispiel, was er kopiert und zum Testen mit echo ausgegeben hat. Könnte ich mir vorstellen..

Trotzdem muss "lol" nicht sein. Jeder muss seine Erfahrung selber machen. Es funktioniert jetzt und das ist primär die Hauptsachen. :)


Viele Grüße,
Jacka
 
Ich denke mysql_fetch_assoc() oder mysql_fetch_array() tut das schneller und bringt den gleichen Effekt.

Es lässt sich gut über die Effizienz aller in PHP implementierten mysql_* Funktionen diskutieren, schließlich sind allesamt ziemlich lahm. Letztenendes ist mysql_fetch_array (ohne Beschränkung auf numerische oder assoziative Keys) sogar noch langsamer als mysql_fetch_object, was aber bei den wohl eher geringen Datenmengen dann sowieso kaum was ausmacht.

Und der große Vorteil... man glaubt es kaum es ist noch weniger Code.

Das lässt sich so nicht pauschalieren. Weniger Code birgt die Gefahr von kompakteren Fehlern, Unübersichtlichkeit und Unwartbarkeit. Des Weiteren kann man einige Dinge mit etwas mehr Code wesentlich effizienter lösen.

Und wieso überhaupt eine While-Schleife? ...

Diese Methode ist nun mal äußerst simpel um alle zurückgegebenen Datensätze abzufangen.
Ich würde übrigens folgende Methode empfehlen:
PHP:
$werte = array();
while ( $row = mysql_fetch_num( $ergebnis ) ) {
    list( $werte[] ) = $row;
}
 
Zurück