Tabelle abfragen

  • Hi,


    ich bräuchte mal Eure Hilfe und wird mich echt über Antworten freuen. Und zwar hab ich das Problem das ich jetzt eine kleine Seite geschrieben hab bei der man sich für etwas eintragen kann.
    Das ganze wird in einer Datenbank gespeichert. Der Code is von einer anderen Seite, die ich benutze, kopiert. Diese Seite diehnt dazu ein Profil zu bearbeiten - sprich es werden immer die Daten des eigenen Users abgerufen.


    Jetzt brauch ich aber auf der neuen Seite eine einzige Abfrage die eine ganze Spalte der Tabelle abrufen soll und nicht nur die eigene.
    Mit dem Befehl


    ".htmlentities($row['Player'], ENT_QUOTES)."


    Wir nur die eigene abgerufen... kann mir jemand sagen was ich benutzen muss damit ich die ganze Spalte der Datenbank abrufen kann?



    MfG, Eggerd

  • Hi,


    so können wir Dir nicht helfen. Vermutlich musst Du einfach die WHERE Klausel in dem MySQL Statement weglassen. Hier mal ein Beispiel:
    Hier fragst Du nur den Namen des Users ab, der den login 'myname' hat. Als Tabellennamen nehme ich mal 'users'

    Code
    $login = 'myname';
    $result = mysql_query("SELECT name FROM users WHERE login='".$login."'");


    Um nun alle Namen aus der Tabelle users zu bekommen, musst Du einfach die WHERE Klausel weglassen:

    Code
    $result = mysql_query("SELECT name FROM users");


    Falls das nicht hilft, dann poste bitte mal die gesammte SQL Abfrage.


    Gruß Talwin

  • Hi, erst mal danke für die schnelle Antwort... ich hab jetzt mal unten den Code angehängt da ich das mit dem WHERE bedacht hatte...


  • Der relevante Teil ist dann wohl diese Abfrage, oder? Willst Du hier alle Player aus der Tabelle Training ausgeben?:

    Code
    $sql = "SELECT
                             Player
                         FROM
                             Training
                         "; 
    $result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
                $row = mysql_fetch_assoc($result);


    Dann musst Du den mysql_fetch Teil natürlich in einer while-Schleife ausführen, da in $result eine Ergebnismenge zurück gegeben wird:

    Code
    while($row = mysql_fetch_assoc($result)) {
      // hier der Code zum Ausgeben/Verarbeiten des einzelnen Player
    }


    Gruß Talwin

  • Hm,


    also ich möchte eigentlich nur in einem bestimten Bereich der Seite eine ganze Spalte haben. Denn wenn ich ja jetzt den von die genannten Befehl änder wird doch bei allen Abfragen immer alles angezeigt.
    Dort gibt es aber Felder die den eigenen Teil anzeigen sollen, nur der folgende Teil soll alles anzeigen:



    (fast ganz unten im Code)...



    Muss ich da etwa auch die row neu definieren oder gibts einfach nen anderen Code zum abfragen?

  • Also, am einfachsten ist es da, 2 unabhängige Abfragen zu machen. Eine mit der Where Einschränkung nur für den User und eine Zweite ohne Where Klausel, wo Du dann die ganze Spalte hast. die beiden Abfragen musst Du dann natürlich in verschiedenen Variablen abspeichern (z.B. $result1 und $result2 usw.)


    Gruß Talwin

  • Ok, das klingt logisch und das heißt ich muss den Code benutzen wo du gepostet hast.


    Da stellt sich mir aber mel eben die Frage was ich denn jetzt da einfügen soll wo du dieses Kommentar eingefügt hast... Beispiel?



    MfG, Eggerd

  • Was willst Du denn mit der ganzen Spalte machen? Ausgeben? wenn ja, dann z.B. so:

    Code
    $sql = "SELECT Player FROM Training"; 
    $result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
    
    
    
    
    while($row = mysql_fetch_object($result)) {
        echo('<p>'.$row->Player.'</p>');
    }


    Gibt einfach für jeden Player einen Absatz mit dem Wert, der in der Spalte steht.


    Gruß Talwin

  • kommst auf die anzahl deiner Zeilen an.
    Bei wenigen playern wäre eine if-Abfrage denkbar.
    Bei vielen playern ist (wie talwin bereits gesagt hatte) eine 2. Datenbankabfrage schneller.


    PS: bis 300 Player kannst du getrost eine if abfrage machen.

  • Ok, wenn ich das im Code benutz gehts toll... aber wie verwende ich es in einem echo... den die Anzeige soll ja in der Tabelle erfolgen die durch ein echo angezeigt wird...


    wenn ich deinen code einfach einfüg kommt aber immer nur

    Code
    Parse error: syntax error, unexpected T_WHILE, expecting ',' or ';' in ADRESSE/DATEI.php on line 169


    Zeile 169 entspricht der ersten Zeile deines Codes... und den Code hab ich in " " damit er erkannt wird...




    Was mach ich falsch?
    PS: Sorry fürs nerven!

  • Du kannst keine While Schleife in einem echo ausführen. Beende davor das echo, führe meinen Code aus, dann gebe den Rest der Tabelle in einem zweiten echo aus.


    Gruß Talwin

  • Aber dann muss ich das echo ja zwichen die { } des Codes setzten damit die Abfrage geht... wenn ja wird dann aber die Tabelle doppelt angezeigt...

  • Nein, natürlich nicht. Den Anfang der Tabelle gibst Du vor der while Schleife aus <table...> dann in der Schleife die Tabellenzellen, dann nach der Schleife das Tabellenende </table>. Musst es halt für Dich anpassen.


    Gruß Talwin

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!