Auslesen von Daten aus der Datenbank

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #31
    Zitat von AnMa Beitrag anzeigen
    Nicht bedacht habe ich, dass es für jemanden mit viel Ahnung, einerseits lästig und andererseits auch schwierig ist einem Einsteiger komplexere Abläufe zu erklären.
    Aber genau das tun Tutorial-Autoren doch. Ich verstehe nicht ganz, welchen Unterschied es macht, ob es in einem Tutorial steht oder hier. Davon abgesehen ist der Hauptgrund, es nicht hier zu tun der, dass die allgemeinen Dinge bereits in unzähligen Tutorials erklärt werden und die speziellen Dinge, die du alle wissen möchtest, ein gewisses Maß an Zeit benötigen, sie aufzuschreiben.

    Wenn du allerdings deine Fragen in kleine Häppchen aufteilst, die man kurz und knapp beantworten kann, kommst du in Foren schneller zurecht.

    Beispiel:

    Die Frage „Hab ich das richtig verstanden, dass man immer XY tun muss, um YZ zu erreichen oder gibt es da auch noch einen anderen Weg?“ bringt dir eine präzise Antwort in weniger als 10 Minuten.

    Die Frage „Kann mir jemand erklären, wie man XY macht?“ klingt weniger attraktiv. Hier muss man abschätzen, welchen Kenntnisstand du hast, welche Möglichkeiten am besten auf dein Problem passen (also den Thread nochmal komplett lesen) und dann versuchen, das ganze so zu schreiben, dass es einem Einsteiger einigermaßen leicht fällt, den Ausführungen zu folgen. Diese Mühe macht man sich in der Regel nur, wenn im Forum sonst nicht viel los ist.

    Du siehst also, dass es keinesfalls böse gemeint ist, wenn du keine ausführlichen Antworten bekommst, die der Qualität und dem Umfang eines Tutorials würdig sind, sondern es ist einfach zu mühsam, zumal es im Forum noch viele andere gibt, die das auch gerne so hätten.

    Liebe Grüße und weiterhin viel Erfolg,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #32
      Also bevor hier irgendwelche Missverständnisse entstehen

      Ich habe so das Gefühl, dass meine Beiträge als "böse" angesehen werden?

      Dem ist aber ganz und garnicht so, ich versuche nur zu verstehen und zu diskutieren. Ich suche sicherlich niemand Schuldigen, denn dass ist grundsätzlich niemals produktiv.

      Stellenweise habe ich nur das Gefühl ... und man möge mir bitte die schlechte Formulierung verzeihen .... dass ich anscheinend garnicht wirklich erklären kann wo mein aktuelles Problem liegt.

      Gehen wir doch mal auf mein eigentliches Anliegen als Beispiel zurück.

      Ich habe mir für einen Einsteiger eine recht große Aufgabe vorgenommen, das habe ich auch schnell erkannt und wie geschrieben erstmal die Idee im Kleinen umgesetzt.
      Eine simple Abfrage mit einfacher Ausgabe.
      Diese habe ich dann Stück für Stück um das erweitert oder verändert bis ich in meinem EXTERNEN Script die perfekte Lösung hatte. Also genau das was ihr auch gesagt habt.
      Nun ist es aber so, dass dieses Script in ein bestehendes CMS integriert werden soll und da habe ich eben das Problem, dass ich dazu nirgendwo ein Tutorial oder ähnliches finde.

      Vielleicht sollte ich es mehr in Häppchen angehen wie Amica meinte? In einem anderen Forum (Linux) wurde ich dafür allerdings schon beinahe gegrillt. Dort hieß es: Schreib doch das gesammte Problem, damit man überhaupt weiß was Du willst."

      Wenn ich also darf und ihr noch die Geduld habt, würde ich das dann gerne nochmal versuchen?

      Lieben Gruß
      Anna

      Kommentar


      • #33
        Okay, dazu kann man eigentlich nur sagen, dass Anpassungen an einem CMS etwas tiefergehende Kenntnisse erfordern, die du vermutlich noch nicht hast. Meine Vorschläge für dich sehen so aus:
        1. Ein anderes CMS nehmen, was mindestens genau das kann, was du suchst.
        2. Das CMS so nehmen, wie es ist und Abstriche hisichtlich der Features machen.
        3. Kein CMS nehmen, sondern es als großes Lernprojekt sehen, alles selber zu machen.
        4. Das ganze Projekt auf Eis legen, bis du etwas mehr Erfahrungen gesammelt hast.
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #34
          Dann mal zu meinem Versuch

          Wenn ich es richtig verstehe, füttere ich in dem PHP-Script eine Varibale über einen Array mit Daten durch eine While-Schleife.

          Also sollte ich am Ende des Scripts eine fertige Variable haben die mit den gewünchten Daten gefüllt ist.

          Wo ich nicht weiter weiß ist die richtige Reihenfolge und Verkettung:

          1. SQL Bedingung:
          PHP-Code:
          $sql "SELECT * FROM vote_rated LEFT JOIN user
          ON vote_rated.vote_userid = user.userid
          WHERE vote_rated.vote_rated_cat = 'forum'
          AND vote_rated.vote_rated_contid='"
          .$threadid."'"
          2. SQL Abfrage:
          PHP-Code:
          $db_erg mysql_query$sql );
          if ( ! 
          $db_erg )
          {
          die(
          'Ungültige Abfrage: ' mysql_error());

          3. Definition der Array-Variablen:
          PHP-Code:
          $collection = array(); // Array zum Sammeln definieren 
          4. While-Schleife mit befüllen der Array-Variablen:
          PHP-Code:
          while ($row mysql_fetch_assoc($db_erg)) { // nächste Zeile vom Ergebnis abfragen 
              
          $collection[] = $row["user_nick"]; // Die Spalte fieldname aus dem Datensatz dem Array hinzufügen 

          Ist das nun so korrekt und wenn ich das richtig verstehe, habe ich jetzt eine Variable "collection" die mit den geünschten Nicknamen befüllt ist?

          LG
          Anna

          PS:
          Das hab ich jetzt leider zu spät gelesen, na dann muß ich wohl oder übel zu Option 4 greifen.

          Danke Euch trotzdem für die Mühe
          Zuletzt geändert von AnMa; 28.08.2011, 14:30.

          Kommentar


          • #35
            Genau so ist es!
            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
            Super, danke!
            [/COLOR]

            Kommentar


            • #36
              OK, das hört sich doch gut an

              Also liegt mein Problem nun darin wie ich diese Variable "collection" in der HTM-Template Datei ausgeben lasse.

              Da hattest Du mir ja freundlicher Weise den Tipp mit der "foreach" schleife gegeben, was bei mir dann so aussieht:

              HTML-Code:
              <tr>
                      <td colspan="2" class="left" align="left">
                          <font colour="FFFFFF">Abgestimmt haben: <i>
              <?php foreach($collection as $voted_user) ?> |
              <?php echo $voted_user; ?> |
              <?php endforeach; ?>
              </i></font>
                      </td>
                  <tr>
              Hier muß ich dann ja wohl den Denkfehler haben, da ich keine Ausgabe bekomme, nur seh ich ihn nicht.

              Kommentar


              • #37
                Überprüfe mit print_r($collection) ob deine Variable zu dem Ausgabezeitpunkt gefüllt ist.

                Kannst du denn garantieren, das deine SQL Statement Ergebnisse liefert?
                :: BackTix - Textlink Marktplatz
                :: Online PHP Formular Manager & Generator
                :: PHP Gästebuch Script | PHP HTAccess Passwortschutz Generator

                Kommentar


                • #38
                  Hier oben habe ich ja der Übersicht halber eine gekürzte Fassung gepostet, die origial "sql" bringt bei einer 1 zu 1 Kopie im externen Script das gewünschte Ergebnis

                  Bei der Ausgabe von print_r($collection) bekomme ich in der Seite jedoch nur "Array"

                  Kommentar


                  • #39
                    Dann enthält dein Array (Collection) keine Daten und dein foreach kann in dieser Folge auch nichts ausgeben

                    In deinem Fall wurde die Variable aber bereits initialisiert. Also kommt es wohl an der Zeile $collection=array(); vorbei, nur wird es anschließend nicht befüllt. Dein SQL liefert also keine Ergebnisse.

                    Als nächsten Test mach du..

                    PHP-Code:
                    while ($row mysql_fetch_assoc($db_erg)) { // nächste Zeile vom Ergebnis abfragen 
                       
                    print_r($row)
                       ... 
                    Löse dich von deinen Vermutungen (Kopie vom SQL liefert dies und das), suche nach dem Fehler!
                    Zuletzt geändert von Scar; 28.08.2011, 16:00.
                    :: BackTix - Textlink Marktplatz
                    :: Online PHP Formular Manager & Generator
                    :: PHP Gästebuch Script | PHP HTAccess Passwortschutz Generator

                    Kommentar


                    • #40
                      Dann bekomme ich leider nur noch eine schöne weiße Seite zu sehen

                      Ich frage mich ob es Sinn macht diese ganze Abfrage wirklich vom Anfang an (Also mit der Erfindung des Rads) zu beginnen?

                      Dass ich erst mal im PHP-Script nur eine Variable setze:
                      PHP-Code:
                      $collection "TESTUSER"
                      und in der HTML-Datei:
                      HTML-Code:
                      <tr>
                      </td>$TESTUSER</td>
                      </tr>
                      Und wenn dass dann innerhalb des CMS funktioniert, die nächste kleine Aktion hinzufügen? Dann sehe ich ja eigentlich ab wann es nicht mehr läuft?

                      Kommentar


                      • #41
                        So, man möchte es nicht glauben, aber ich habe mich nun solange durchgebissen, bis ich die Lösung hatte


                        Diese sieht nun voll funktionsfähig wie folgt aus:

                        PHP-Code:
                        ## ANFANG - AUSGABE der USER die bereits abgestimmt haben

                                                
                        $user_abgleich mysql_query("SELECT user_id, user_nick FROM ".pkSQLPREFIX."_user
                                                 LEFT JOIN "
                        .pkSQLPREFIX."_vote_rated ON vote_rated_userid = user_id
                                                 WHERE vote_rated_cat = 'forum' AND vote_rated_contid='"
                        .$threadid."'");

                                                
                        $user_collect = array();

                                                while(
                        $row mysql_fetch_array($user_abgleich))
                                                    {
                                                    
                        $user_collect[] = $row["user_nick"];
                                                    }

                                                foreach (
                        $user_collect as $voted_user_list)
                                                {
                                                
                        $voted_user .= $voted_user_list' | | ';
                                                }

                        ## ENDE - AUSGABE der USER die bereits abgestimmt haben 
                        und ganz schlicht in der HTML:
                        HTML-Code:
                        <tr>
                             <td colspan="4" class="left" align="left">
                                  <font colour="FFFFFF">Abgestimmt haben:<br> <i>$voted_user</i></font></td>
                        <tr>
                        Danke an Allen die mir mit den diversen Denkanstößen geholfen haben. Das schöne ist, ich verstehe sogar was ich getan habe.

                        Lieben Gruß
                        Anna
                        Zuletzt geändert von AnMa; 28.08.2011, 21:39.

                        Kommentar

                        Lädt...
                        X