tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
12
ZUGRIFFE
327
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Surfer100 Surfer100 ist offline Mitglied
    Registriert seit
    May 2008
    Beiträge
    10
    Hallo,

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

    PHP-Code:
    $abfrage "SELECT * FROM [I]meine Tabelle[/I] WHERE user_id = ''";
    $ergebnis mysql_query($abfrage);
    while(
    $row mysql_fetch_object($ergebnis))
       {
       echo 
    "$row->[I]mein Spaltenname[/I]|<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
     

  2. #2
    merzi86 merzi86 ist offline Mitglied Gold
    Registriert seit
    Jun 2007
    Ort
    Sachsen
    Beiträge
    244
    Wieso willst du sie noch in einer Variablen speichern?
    Sie stehen doch schon im array $row.
     
    Zitat Zitat von Albert Einstein
    „Ich weiß nicht, welche Waffen im nächsten Krieg zur Anwendung kommen, wohl aber, welche im übernächsten: Pfeil und Bogen.“
    Würde mich über eine Positive beurteilung freuen.

  3. #3
    ne0hype ne0hype ist offline Mitglied Brokat
    Registriert seit
    Mar 2007
    Beiträge
    274
    Surfer100 was du suchst ist http://de.php.net/manual/de/function.list.php
    dabei musst du aber stats
    PHP-Code:
    while($row mysql_fetch_object($ergebnis)) 
    das hier verwenden
    PHP-Code:
    while($row mysql_fetch_array($ergebnis)) 
     

  4. #4
    Avatar von Jacka
    Jacka Jacka ist offline Mitglied Brokat
    Registriert seit
    Sep 2004
    Beiträge
    390
    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-Code:
    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-Code:
    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
     
    Biologie ist das was lebt, Chemie das was kracht und Physik das, wo nichts funktioniert!

    - - - - - - - - - - - - - - - -

    Open Source JS-Framework für Business Web-Applications: ExtJS

  5. #5
    Surfer100 Surfer100 ist offline Mitglied
    Registriert seit
    May 2008
    Beiträge
    10
    [QUOTE=Jacka;1615313]
    PHP-Code:
    while($row mysql_fetch_object($ergebnis))
       {
       
    $werte[] = $row->Spaltenname;
       } 
    /QUOTE]

    genau das wollte ich ... danke
     

  6. #6
    ne0hype ne0hype ist offline Mitglied Brokat
    Registriert seit
    Mar 2007
    Beiträge
    274
    Sorry... LOL
     

  7. #7
    Avatar von Jacka
    Jacka Jacka ist offline Mitglied Brokat
    Registriert seit
    Sep 2004
    Beiträge
    390
    @Surfer100: Freut micht! Grüße!

    @ne0hype: Was soll das denn?
     
    Biologie ist das was lebt, Chemie das was kracht und Physik das, wo nichts funktioniert!

    - - - - - - - - - - - - - - - -

    Open Source JS-Framework für Business Web-Applications: ExtJS

  8. #8
    ne0hype ne0hype ist offline Mitglied Brokat
    Registriert seit
    Mar 2007
    Beiträge
    274
    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? ...
     

  9. #9
    Avatar von Jacka
    Jacka Jacka ist offline Mitglied Brokat
    Registriert seit
    Sep 2004
    Beiträge
    390
    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
     
    Biologie ist das was lebt, Chemie das was kracht und Physik das, wo nichts funktioniert!

    - - - - - - - - - - - - - - - -

    Open Source JS-Framework für Business Web-Applications: ExtJS

  10. #10
    Avatar von maeTimmae
    maeTimmae maeTimmae ist offline Mitglied Platin
    Registriert seit
    Aug 2007
    Ort
    Erfurt, Saarbrücken, Leipzig und Fulda
    Beiträge
    515
    Zitat Zitat von ne0hype Beitrag anzeigen
    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.

    Zitat Zitat von ne0hype Beitrag anzeigen
    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.

    Zitat Zitat von ne0hype Beitrag anzeigen
    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-Code:
    $werte = array();
    while ( 
    $row mysql_fetch_num$ergebnis ) ) {
        list( 
    $werte[] ) = $row;

     
    Zitat Zitat von Steve Wozniak
    Never trust a computer you can't throw out a window.

  11. #11
    ne0hype ne0hype ist offline Mitglied Brokat
    Registriert seit
    Mar 2007
    Beiträge
    274
    Also das Thema ist ja eigentlich schon abgeschlossen aber nochmal ganz kurz möchte ich darauf eingehen

    Also ich glaube ein übersichtlicheren Programmabschnitt wie:
    PHP-Code:
    $row mysql_fetch_assoc($result); 
    gibt es nicht.


    maeTimmae in was für einer Einheit der Zeit reden wir ? Ich denke den unterschied ist also ziemlich vernachlässigbar.
     

  12. #12
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    Blog-Einträge
    65
    Zitat Zitat von ne0hype Beitrag anzeigen
    Also das Thema ist ja eigentlich schon abgeschlossen aber nochmal ganz kurz möchte ich darauf eingehen

    Also ich glaube ein übersichtlicheren Programmabschnitt wie:
    PHP-Code:
    $row mysql_fetch_assoc($result); 
    gibt es nicht.


    maeTimmae in was für einer Einheit der Zeit reden wir ? Ich denke den unterschied ist also ziemlich vernachlässigbar.
    Damit hast du aber nur das letzte Ergebnis, falls das Query mehrere Ergebnisse zurückgibt.
     
    KIDS Kinderbetreuungsdienst
    Xing

    "When you play the game of thrones, you win or you die. There is no middle ground."
    by Cersei Lannister in "A Game Of Thrones"

  13. #13
    ne0hype ne0hype ist offline Mitglied Brokat
    Registriert seit
    Mar 2007
    Beiträge
    274
    Zitat Zitat von Felix Jacobi Beitrag anzeigen
    Damit hast du aber nur das letzte Ergebnis, falls das Query mehrere Ergebnisse zurückgibt.
    Ich denke wenn er sowas hier bevorzugt:
    PHP-Code:
    while($row mysql_fetch_object($ergebnis))
       {
       
    $werte[] = $row->Spaltenname;
       } 
    und mehrere Spalten hat, bekommt er Probleme.

    Daher ging ich davon aus das er nur eine Spalte hat und dann ist eine while() überflüssig


    maeTimmae: ich hab gerade mal mysql_fetch_object und mysql_fetch_array getestet und mysql_fetch_object ist langsamer. Und genau 0,000074863433838 bei 45 Datensätzen.
     

Ähnliche Themen

  1. Mit MySQL ID weiterarbeiten
    Von Dark Ranger im Forum PHP
    Antworten: 8
    Letzter Beitrag: 20.10.08, 08:29
  2. datenbank abfrage in der datenbank funktioniert, aber in der ausgaben nicht
    Von grillfleisch im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 29.12.06, 11:48
  3. JDBC-Problem: Vertauschung in den abgefragten Tabellen
    Von hubertb im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 1
    Letzter Beitrag: 17.10.06, 13:17
  4. Mit Hexacode weiterarbeiten
    Von tommy07 im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 22.04.05, 22:47
  5. Antworten: 1
    Letzter Beitrag: 15.03.05, 23:35