Anzeige

Kann Datensatz nicht konkret ausgeben!

Kann Datensatz nicht konkret ausgeben! | PSD-Tutorials.de

Erstellt von Robbyn-, 09.02.2009.

  1. Robbyn-

    Robbyn- PHP / Flex Programmierer

    Dabei seit:
    18.12.2006
    Beiträge:
    553
    Geschlecht:
    männlich
    Ort:
    Schmallenberg
    Software:
    CC, JetBrains PhpStorm 8, Flash Builder 4.7
    Kann Datensatz nicht konkret ausgeben!
    Also folgendes Problem

    Ich arbeite gerade an einem Login Skript das eigentlich soweit fertig ist regestrieren kann man sich mann kann sich sogar erfolgreich auf die seite einloggen aber jetzt habe ich folgendes Problem wenn ich mich mit meinen Benutzerdaten einlogge dann soll dort z.b mein Name stehen und das bekomme ich nicht hin ich habe schonfolgendes versucht:

    mysql_select_db($database_Robbyn, $Robbyn);
    $query_planet = "SELECT planet FROM `user` ORDER BY ID ASC";
    $planet = mysql_query($query_planet, $Robbyn) or die(mysql_error());
    $row_planet = mysql_fetch_assoc($planet);
    $totalRows_planet = mysql_num_rows($planet);

    als ich das ausgeben wollte per echo da kam nur eine zahl und zwar die anzahl der regestrierten user bei mir 8 soviel wie user regestriert sind aber ich will keine zahl ausgegeben haben sondern einen Namen und jetzt meine frage wie geht das ???
     
    #1      
  2. daimonion

    daimonion Nicht mehr ganz neu hier

    Dabei seit:
    23.04.2008
    Beiträge:
    83
    Geschlecht:
    männlich
    Kameratyp:
    EOS 400D
    Kann Datensatz nicht konkret ausgeben!
    AW: Kann Datensatz nicht konkret ausgeben!

    Na ja mysql_num_rows(..) liefert dir nur, wie der Name schon vermuten läßt, die Anzahl der ausgelesenen Zeilen.

    Grundlegende Vorgehensweise:

    1. SQL Statement Verfassen ($sqltext = "SELECT `planet` FROM ....";)
    2. query absenden ($sqlres = mysql_query($sqltext);)
    3. Ergebnis auswerten (while($row = mysql_fetch_assoc($sqlres)) { $zeile['planet']...})

    Es macht natürlich nur Sinn die Auswertung in einer Schleife laufen zu lassen, wenn das Ergebnis aus der Abfrage auch mehrere Zeilen enthält.

    Hierzu vielleicht nochmal ein paar Links

    PHP: mysql_fetch_assoc - Manual
    PHP: mysql_fetch_array - Manual
    PHP: mysql_query - Manual
    PHP: mysql_num_rows - Manual

    Da sind dann auch Beispiele dabei!

    PS.: Ich hab jetzt mal auf Gültigkeitsprüfungen verzichtet!
     
    #2      
  3. EnricoS

    EnricoS Nicht mehr ganz neu hier

    Dabei seit:
    13.11.2008
    Beiträge:
    161
    Geschlecht:
    männlich
    Kann Datensatz nicht konkret ausgeben!
    AW: Kann Datensatz nicht konkret ausgeben!

    mysql_fetch_assoc gibt ein Assoziatives Array zurück
    siehe PHP Doku -> PHP: mysql_fetch_assoc - Manual

    Wenn Du ein Login-Script schreibst welches Dein Username bei erfolgreichem Login zurückgeben soll, musst du Dein SQL Query korrekt schreiben.
    siehe MySQL - Doku -> MySQL :: MySQL 5.1 Referenzhandbuch :: 13.2.7 SELECT
    Z. B.
    "SELECT `user` FROM `user_tabelle` WHERE(`password` = '$passwort') LIMTIT 1;"

    Wenn Du dann den $var = mysql_fetch_assoc(...);
    korrekt ausgibts echo($var['user']); passt es auch.
     
    #3      
  4. Robbyn-

    Robbyn- PHP / Flex Programmierer

    Dabei seit:
    18.12.2006
    Beiträge:
    553
    Geschlecht:
    männlich
    Ort:
    Schmallenberg
    Software:
    CC, JetBrains PhpStorm 8, Flash Builder 4.7
    Kann Datensatz nicht konkret ausgeben!
    AW: Kann Datensatz nicht konkret ausgeben!

    also moment ich fasse nochmal zusammen was ich verstanden habe:

    ich soll ein SQL Statement erstellen diese Anfrage mit einem SQL Query an die Datenbank schicken dann soll ich die wieder zurückkomende daten auslesen.

    Das sieht dan bei mit so aus:

    $query = "SELECT 'planet' FROM 'user' WHERE('id' = '$id') LIMTIT 1;"
    $var = mysql_query($query);
    .... Ja und ab hier weiß ich net weiter ich muss die datei ausgeben und dan in der richtigen spalte in der tabelle zuordnen ja aber wie?
     
    #4      
  5. daimonion

    daimonion Nicht mehr ganz neu hier

    Dabei seit:
    23.04.2008
    Beiträge:
    83
    Geschlecht:
    männlich
    Kameratyp:
    EOS 400D
    Kann Datensatz nicht konkret ausgeben!
    #5      
  6. Robbyn-

    Robbyn- PHP / Flex Programmierer

    Dabei seit:
    18.12.2006
    Beiträge:
    553
    Geschlecht:
    männlich
    Ort:
    Schmallenberg
    Software:
    CC, JetBrains PhpStorm 8, Flash Builder 4.7
    Kann Datensatz nicht konkret ausgeben!
    AW: Kann Datensatz nicht konkret ausgeben!

    hä irgendwie klappt das nicht ich habe jetzt folgenden code

    $query = "SELECT 'planet' FROM 'user' WHERE('ID' = '$ID') ;"
    $ergebnis = mysql_query($query);
    $row = mysql_fetch_assoc($ergebniss);

    ja schön das werde ich dan mit echo ausgeben dan passiert folgendes entweder kommt eine fehlermeldung oder es wird immer der letzte eintrag von dem feld angezeigt
     
    #6      
  7. daimonion

    daimonion Nicht mehr ganz neu hier

    Dabei seit:
    23.04.2008
    Beiträge:
    83
    Geschlecht:
    männlich
    Kameratyp:
    EOS 400D
    Kann Datensatz nicht konkret ausgeben!
    AW: Kann Datensatz nicht konkret ausgeben!

    1. bin ich mir nicht sicher ob die Abfrage beim Where korrekt ist (Klammer).
    2. das Ergebnis von mysql_query wird in $ergebnis gespeichert. mysql_fetch_assoc greift aber auf $ergebniss zu.

    Wie EnricoS schon beschrieben hat. mysql_fetch_assoc liefert ein assoziatives Array zurück. Ausgabe nicht mittels echo sondern print_r($row);
     
    Zuletzt bearbeitet: 09.02.2009
    #7      
  8. Robbyn-

    Robbyn- PHP / Flex Programmierer

    Dabei seit:
    18.12.2006
    Beiträge:
    553
    Geschlecht:
    männlich
    Ort:
    Schmallenberg
    Software:
    CC, JetBrains PhpStorm 8, Flash Builder 4.7
    Kann Datensatz nicht konkret ausgeben!
    AW: Kann Datensatz nicht konkret ausgeben!

    ok habe alles so gemacht wie du gesagt hast dann kommt aber folgende fehlermeldung

    Parse error: syntax error, unexpected T_VARIABLE in C:\xampp\htdocs\Login\index.php on line 76

    in Zeile 76 steht geschrieben:

    $ergebnis = mysql_query($query);

    was habe ich jetzt falsch gemacht?

    P.S. achso und an der betroffenen stelle wo der datensatz ausgegeben werden soll habe ich es mit <? print_r($row); ?> ausgeführt.
     
    #8      
  9. daimonion

    daimonion Nicht mehr ganz neu hier

    Dabei seit:
    23.04.2008
    Beiträge:
    83
    Geschlecht:
    männlich
    Kameratyp:
    EOS 400D
    Kann Datensatz nicht konkret ausgeben!
    AW: Kann Datensatz nicht konkret ausgeben!

    In Zeile 75 ein Semikolon vergessen?

    Die Fehlermeldung ist ja recht ausführlich: Dein Skript (PHP-Datei) kann vom PHP Parser nicht übersetzt werden. Das hat nichts mit deinem hier geposteten Problem zu tun!
     
    #9      
  10. EnricoS

    EnricoS Nicht mehr ganz neu hier

    Dabei seit:
    13.11.2008
    Beiträge:
    161
    Geschlecht:
    männlich
    Kann Datensatz nicht konkret ausgeben!
    AW: Kann Datensatz nicht konkret ausgeben!

    Falsch:
    $query = "SELECT 'planet' FROM 'user' WHERE('ID' = '$ID') ;"
    $ergebnis = mysql_query($query);
    $row = mysql_fetch_assoc($ergebniss);

    Richtig:
    $query = "SELECT `planet` FROM `user` WHERE(`ID` = '$ID') ;";
    $ergebnis = mysql_query($query);
    $row = mysql_fetch_assoc($ergebnis);

    Achte auf die richtige Schreibweise. Sowohl in PHP ( ; ) als auch MySQL. `Feldname` = 'Wert'

    Gruß
    Enrico
     
    #10      
  11. Robbyn-

    Robbyn- PHP / Flex Programmierer

    Dabei seit:
    18.12.2006
    Beiträge:
    553
    Geschlecht:
    männlich
    Ort:
    Schmallenberg
    Software:
    CC, JetBrains PhpStorm 8, Flash Builder 4.7
    Kann Datensatz nicht konkret ausgeben!
    AW: Kann Datensatz nicht konkret ausgeben!

    hast recht simikolon hat gefhelt

    ja sry aber das hat schon zum thema gehört da der fehler ja durch den abruf des datensatzes ausgelöst wurde und schon kommt der nächste fehler

    Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\Login\index.php on line 77

    was habe ich jetz mit dem mysql_fetch_assoc falsch gemacht

    *edit* danke das war es so ok jetzt kommt zwar keine fehlermeldung aber ausgegeben bekomme ich auch nichts ich habe an der stelle in der tabelle folgenden befehl eingegeben um den datensatz aufzurufen:

    <? print_r($row); ?>
     
    Zuletzt bearbeitet: 09.02.2009
    #11      
  12. daimonion

    daimonion Nicht mehr ganz neu hier

    Dabei seit:
    23.04.2008
    Beiträge:
    83
    Geschlecht:
    männlich
    Kameratyp:
    EOS 400D
    Kann Datensatz nicht konkret ausgeben!
    AW: Kann Datensatz nicht konkret ausgeben!

    Liefert das SQL Statement auch das zurück, was du zurück haben möchtest?

    Was sagt PHPmyAdmin zu dem SQL Statement.

    Nach wie vor: Befasse dich lieber erst mal mit den Grundlagen als Wild drauf los zu programmieren.
     
    #12      
  13. Robbyn-

    Robbyn- PHP / Flex Programmierer

    Dabei seit:
    18.12.2006
    Beiträge:
    553
    Geschlecht:
    männlich
    Ort:
    Schmallenberg
    Software:
    CC, JetBrains PhpStorm 8, Flash Builder 4.7
    Kann Datensatz nicht konkret ausgeben!
    AW: Kann Datensatz nicht konkret ausgeben!

    also ich habe das jetzt soweit hinbekommen das ich den wert aus meiner tabeller "user" feld "planet" zu sehen bekomme doch nur noch ein kleinens problem ich bekomme egal wer sich anmeldet immer den gleichen wert und zwar den der an erster stelle steht. um es zu verdeutlichen.

    Jeder der sich regestriert muss einen namen eintragen so wenn er sich dann anmeldet soll dieser name auch ganz oben offen zu sehen sein und da jeder einen anderen namen hat ist es ja wohl klar das auch immer andere namen dort oben stehen müssen meine frage dazu ist jetzt. Wie bekomme ich das hin das immer der korrekte name der regestrierten person dort steht also nach id's sind die benutzer schon angeordnet dennoch wenn ich ein datensatz an dieser stelle ausgeben möchte bekomme ich immer nur den obersten namen also nach der id die nummer 1 (id = 1) irgendwie muss ich das doch hinbekommen das er die id des jeweils angemeldetn ausließt und so in der datenbank nach der korrekten id such und somit auch den korrekten namen ausgibt.

    hat jemand eine lösung?
     
    Zuletzt bearbeitet: 09.02.2009
    #13      
  14. daimonion

    daimonion Nicht mehr ganz neu hier

    Dabei seit:
    23.04.2008
    Beiträge:
    83
    Geschlecht:
    männlich
    Kameratyp:
    EOS 400D
    Kann Datensatz nicht konkret ausgeben!
    AW: Kann Datensatz nicht konkret ausgeben!

    Dein SQL Statement liefert dir ja immer den Wert aus der Spalte Planet zu der die ID passt die du in der WHERE Klausel angegeben hast. Gibst du denn dort auch immer die ID an, die der Benutzer hat?

    Wenn nicht, müßtest du dein Statement so umbauen, das du die jeweils richtige Zeile aus der DB auslesen kannst.
     
    Zuletzt bearbeitet: 09.02.2009
    #14      
  15. Robbyn-

    Robbyn- PHP / Flex Programmierer

    Dabei seit:
    18.12.2006
    Beiträge:
    553
    Geschlecht:
    männlich
    Ort:
    Schmallenberg
    Software:
    CC, JetBrains PhpStorm 8, Flash Builder 4.7
    Kann Datensatz nicht konkret ausgeben!
    AW: Kann Datensatz nicht konkret ausgeben!

    nein also eine id gebe ich nicht an da ja die seite für jeden der sich eingeloggt verfügbar sein soll und wenn ich jetzt einen id festlege dann wird ja auch immer dieser benutzer ausgegeben aber es soll ja immer die id ausgegeben werden die zur person passt


    und wie meinst du das umbauen?
     
    #15      
  16. daimonion

    daimonion Nicht mehr ganz neu hier

    Dabei seit:
    23.04.2008
    Beiträge:
    83
    Geschlecht:
    männlich
    Kameratyp:
    EOS 400D
    Kann Datensatz nicht konkret ausgeben!
    AW: Kann Datensatz nicht konkret ausgeben!

    Also.......

    Du hast dein SQL Statement, welches du die ganze Zeit in die DB schiebst begriffen?

    So wie du das willst müßtest du nach dem einloggen über jeden Link eine ID mitliefern. Am einfachsten, aber auch am anfälligsten, wäre das wenn du einfach an jeden Link auf deiner Seite mittels ?id="ID_DES_BENUTZERS" die ID anhängst. In deinem Skript kannst du dann die ID aus dem $_GET Array holen und in das SQL Statement mit einbauen, was du ja momentan auch schon hast (WHERE `id`= $id).
    Wie aber schon gesagt ist das höchst gefährlich, da es recht einfach ist die ID zu ändern und somit als anderer Nutzer da zu erscheinen.

    Schöner und sicherer wäre es, wenn du ne Session aufmachst und über diese die Benutzer von einer Seite zur anderen führst. Im Session Array könntest du dann die ID mitführen und damit dann ebenso dein SQL Statement aufbauen...

    php session - Google Search
     
    #16      
  17. Robbyn-

    Robbyn- PHP / Flex Programmierer

    Dabei seit:
    18.12.2006
    Beiträge:
    553
    Geschlecht:
    männlich
    Ort:
    Schmallenberg
    Software:
    CC, JetBrains PhpStorm 8, Flash Builder 4.7
    Kann Datensatz nicht konkret ausgeben!
    AW: Kann Datensatz nicht konkret ausgeben!

    ja aber verstehst du den nicht wenn ich die id anhänge von jeweiligen benutzer dann bin ich ja wieder an dem punkt das ich nur einen auslesen kann und nicht mehrere oder doch?
     
    #17      
  18. daimonion

    daimonion Nicht mehr ganz neu hier

    Dabei seit:
    23.04.2008
    Beiträge:
    83
    Geschlecht:
    männlich
    Kameratyp:
    EOS 400D
    Kann Datensatz nicht konkret ausgeben!
    AW: Kann Datensatz nicht konkret ausgeben!

    Oder doch..... Wenn du im Skript immer die ID von dem Benutzer anhängst, der gerade das Skript aufruft, dann passts doch.

    Nimms mir nicht übel, aber ich hab den Eindruck, dass du nicht den blassesten Schimmer von dem hast was du da machst!
     
    #18      
  19. Robbyn-

    Robbyn- PHP / Flex Programmierer

    Dabei seit:
    18.12.2006
    Beiträge:
    553
    Geschlecht:
    männlich
    Ort:
    Schmallenberg
    Software:
    CC, JetBrains PhpStorm 8, Flash Builder 4.7
    Kann Datensatz nicht konkret ausgeben!
    AW: Kann Datensatz nicht konkret ausgeben!

    achso so meinst du das ja oben klang es so als ob du meintest ich soll in ? id die id des benutzeres eingeben deswegen war ich etwas verwührt also nochmal zum mitschreiben.

    ich soll beim login eine session_id schreiben die bei jedem login auf die andere seite die id des jeweiligen nutzers überträgt ist es soweit richtig?!
     
    #19      
  20. daimonion

    daimonion Nicht mehr ganz neu hier

    Dabei seit:
    23.04.2008
    Beiträge:
    83
    Geschlecht:
    männlich
    Kameratyp:
    EOS 400D
    Kann Datensatz nicht konkret ausgeben!
    AW: Kann Datensatz nicht konkret ausgeben!

    Grob gesagt ja!
     
    #20      
x
×
×