Auslesen von Daten aus der Datenbank

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

  • Auslesen von Daten aus der Datenbank

    Hallo,

    ich weiß ich habe mich gerade erst angemeldet und dann kommt gleich eine vermutlich simple Frage, aber ich habe jetzt so lange nach eine Lösung im Netz gesucht und rumexperimentiert, dass ich mich doch dazu durchgerungen habe hier zu posten.

    Zu meinem Problem:
    Eigentlich sollte das eine simple Abfrage sein, aber ich habe irgendwo einen Denkfehler den ich nicht lösen kann.

    Im Originalscript wird mit:
    PHP-Code:
    $user_vote=$SQL->fetch_array($SQL->query("SELECT COUNT(vote_rated_userid) FROM ".pkSQLTAB_POLL_COUNT." WHERE
    vote_rated_cat='forum' AND vote_rated_contid='"
    .$threadid."'")); 
    Die anzahl der user abgefragt die bereits abgestimmt haben.

    Ich wollte diese nun um die Anzeige der Namen der User erweitern die bereits abgestimmt haben. Dazu habe ich folgende Zeile eingegeben:
    PHP-Code:
    $user_vote_id=$SQL->fetch_array($SQL->query("SELECT (vote_rated_userid) FROM ".pkSQLTAB_POLL_COUNT." WHERE
    vote_rated_cat='forum' AND vote_rated_contid='"
    .$threadid."'")); 
    Das reicht zwar noch nicht, dass ich die Namen ausgegeben bekomme, aber es müßten doch zumindest die User-ID's angezeigt werden?

    Wenn ich aber auf der HP dann die $user_vote_id ausgeben lassen will, bekomme ich nur "ARRAY"

    Was mach ich bitte falsch ?

    Vielen lieben Dank
    Anna

  • #2
    Du fragst ja auch ein Array ab. Bei deiner Abfrage kommen viele Datensätze zurück, die kannst du nicht einfach mit "echo" ausgeben lassen. Dazu musst du einen foreach/for-loop ansetzen.

    Lass dir das Array mit var_dump() ausgeben, dann siehst du, was drinsteht.
    This is what happens when an unstoppable force meets an immovable object.

    Kommentar


    • #3
      Hallo,

      echo ist nur für die Ausgabe von Strings und numerischen Werten geeignet. Wenn du dir zu Debugzwecken und Tests den Inhalt einer Variablen ansehen willst, musst du print_r($var) oder noch besser var_dump($var) verwenden, wobei du $var durch den entsprechenden Variablennamen ersetzen musst.

      Im zweiten SQL-Statement gehören die Klammern um den Spaltennamen nicht hin, die gehören im ersten Statement zu COUNT(), welches im zweiten ja nicht mehr verwendet wird.

      Gruß,

      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


      • #4
        OK, das ich das so mit dem Array nicht ausgebenkann ist mir klar.

        Wenn ich das allerdings richtig sehe werden die Daten bei mir nicht mit "echo" ausgegeben, sondern ein html-document.

        HTML-Code:
            <tr>
                <td colspan="2" class="left" align="left">
                    <font colour="FFFFFF">Es haben bereits <i>$user_vote[0]</i> User abgestimmt</font></td>
                <td colspan="2" class="left" align="right">
                    <font colour="FFFFFF">Stimmen gesamt: <i>$votetotal[0]</i></font></td>
            </tr>
            <tr>
                <td colspan="2" class="left" align="left">
                    <font colour="FFFFFF">Abgestimmt haben: <i>$user_vote_id</i></font></td>
            </tr>
        Wie binde ich also "var_dump($var)" in diese html ein?

        Setze ich da dann für diesen kurzen Bereich auch
        PHP-Code:
        <?php
        Lieben Gruß und schonmal vielen Dank für die ersten INFOS

        Anna

        Kommentar


        • #5
          Ja, da musst du auch die PHP-Tags (<?php … ?>) benutzen, sonst wird es nicht von PHP interpretiert, sondern unangetastet durchgeschleust und dann steht in deinem Dokument eben auch nur „$user_vote[0]“.
          [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


          • #6
            Gut, dan lag ich da ja schon mal richtig

            Folgendes habe ich nun in meine HTML eingefügt, bekomme aber überhaupt keine Ausgabe.
            HTML-Code:
                <tr>
                    <td colspan="2" class="left" align="left">
                        <font colour="FFFFFF">Abgestimmt haben: <i><?php var_dump($user_vote_id); ?></i></font></td>
                </tr>
            Wenn ich mir aber zu Testzwecken eine php-Datei mit dem Inhalt
            PHP-Code:
            <?php
            var_dump
            ($user_vote_id);
            ?>
            auf der Domain anlege und aufrufe, gibt sie mir den Wert "NULL" aus.

            Kommentar


            • #7
              Dann stimmt wahrscheinlich mit der Abfrage was nicht, oder mit den Klassen/Methoden die du da verwendest.
              This is what happens when an unstoppable force meets an immovable object.

              Kommentar


              • #8
                Ich bin hier wohl an der Grenze meines derzeitigen Wissens angelangt

                Wobei mir gerade die Überlegung durch den Kopf ging, ob ich an diese Sache evtl. nicht zu kompliziert ran gehe?

                Für meine HP nutze ich ein CMS in das ich ein Addon eingepflegt habe, dieses speichert eben die User_ID, die Vote_CAT und die Forumthread_ID in die Datenbank.

                Eigentlich müßte ich doch nur die User_ID auslesen, die sowohl zur Vote_CAT als auch der Forumsthread_ID passt. Anschließend der User_ID aus einer anderen Tabelle den entsprechenden Nick zuordnen und das Ergebnis in der HTML ausgeben lassen?

                Setze ich hier vielleicht schon am falschen Punkt an?

                LG
                Anna

                Kommentar


                • #9
                  Klingt, ohne viel darüber zu wissen, eigentlich ganz vernünftig...
                  This is what happens when an unstoppable force meets an immovable object.

                  Kommentar


                  • #10
                    Ich habe mich inzwichen nochmal durch einige Googelergebnisse gekämpft und bin nun bei folgendem Konstrukt angekommen.


                    Leider noch immer nicht mit dem gewünschten ERfolg.

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

                                            
                    $SQL "SELECT vote_rated_userid FROM ".pkSQLPREFIX."_vote_rated WHERE vote_rated_cat='forum' AND vote_rated_contid='".$threadid."'";
                                            
                    $user_vote_id mysql_query($sql);
                                            while (
                    $row mysql_fetch_array($user_vote_id))
                                            

                    ## ENDE - AUSGABE der USER die bereits abgestimmt haben 

                    und


                    HTML-Code:
                        <tr>
                            <td colspan="2" class="left" align="left">
                                <font colour="FFFFFF">Abgestimmt haben: <i>BLA
                                    <?php
                                        while ($row = mysql_fetch_array($user_vote_id)){
                                    ?>
                                    </i></font></td>
                        </tr>
                    Nun bekomm ich im Forum aber nur noch eine schicke weiße Seite

                    Kommentar


                    • #11
                      $SQL ist nicht gleich $sql
                      [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


                      • #12
                        Mal abgesehen davon, dass ich es wirklich selbst hätte sehen müssen, dass die beiden unterschiedlich geschrieben sind (sorry for that), muß es ja wohl auch von der Funktion einen Unterschied geben?

                        Denn mit $SQL an beiden Stellen bekomme ich ne weiße Seie, mit $sql bekomme ich zwar noch kein Ergebnis, zumindest jedoch wieder die Seite angezeigt.

                        Kommentar


                        • #13
                          Huhu

                          ich habe mir mal eine extra php-Datei außerhalb des CMS angelegt um ersmtal die Funktionen zu verstehen und mein Problem gelöst zu bekommen.

                          Dabei kam bis jetzt folgendes zu Stande:
                          PHP-Code:
                          <?php
                          ## Logindaten vorgeben
                              
                          $mysqlhost="localhost"// MySQL-Host angeben
                              
                          $mysqluser="USER"// MySQL-User angeben
                              
                          $mysqlpwd="PASSWORT"// Passwort angeben
                              
                          $mysqldb="DATENBANK"// Datenbank angeben

                          ## Verbindung zum SQL Server
                              
                          $connection=mysql_connect($mysqlhost$mysqluser$mysqlpwd) or die("Verbindungsversuch fehlgeschlagen");

                          ## Verbindung zur Datenbank
                              
                          mysql_select_db($mysqldb$connection) or die("Konnte die Datenbank nicht waehlen.");

                          ## Auswahl der Spalten aus Tabelle
                              
                          $sql "SELECT vote_rated_userid FROM pk__vote_rated WHERE vote_rated_cat='forum' AND vote_rated_contid='745'";

                          ## Zuordnen der Variablen
                              
                          $user_id mysql_query($sql) or die("Anfrage nicht erfolgreich");

                          ## Ermitteln und Ausgabe der Anzahl
                              
                          $anzahl mysql_num_rows($user_id);
                              echo 
                          "Anzahl der Datensätze: $anzahl";
                              
                          ?>

                          <!-- Begin der Table -->
                              <table cellpadding="1" cellspacing="3" border="1">
                                  <tr>
                                      <td>User ID</td>
                                  </tr>

                          <!-- Schleife -->
                                      <?php
                                      
                          while ($adr mysql_fetch_array($user_id))
                                      {
                                      
                          $vote_user_id $adr['vote_rated_userid'];
                                      
                          $sql "SELECT user_nick FROM pk__user WHERE user_id = '".$vote_user_id."'";
                                      
                          $vote_user mysql_query($sql) or die("Anfrage nicht erfolgreich");
                                      
                          ?>
                                  <tr>

                          <!-- Ausgabe -->
                                      <td><?=$vote_user?></td>
                                  </tr>
                                  <?php
                                      
                          }
                                  
                          ?>
                              </table>
                          Wo ich aber garnicht weiter komme ist der Teil in der Schleife in dem ich die "ID" aus der Voting Tabelle mit der "ID" vergleichen und durch den "Nick" ersetzen lassen möchte.

                          Kann mir da jemand einen Tipp geben?

                          Lieben Dank
                          Anna

                          Kommentar


                          • #14
                            hmmm ... Keiner mehr ne Ahnung wie ich das lösen kann?

                            Naja, trotzdem Danke, dann versuch ich anderswo noch mein Glück.

                            Winke
                            Anna

                            Kommentar


                            • #15
                              Zitat von AnMa Beitrag anzeigen
                              Huhu

                              ich habe mir mal eine extra php-Datei außerhalb des CMS angelegt um ersmtal die Funktionen zu verstehen und mein Problem gelöst zu bekommen.

                              Dabei kam bis jetzt folgendes zu Stande:
                              PHP-Code:
                              <?php
                              ## Logindaten vorgeben
                                  
                              $mysqlhost="localhost"// MySQL-Host angeben
                                  
                              $mysqluser="USER"// MySQL-User angeben
                                  
                              $mysqlpwd="PASSWORT"// Passwort angeben
                                  
                              $mysqldb="DATENBANK"// Datenbank angeben

                              ## Verbindung zum SQL Server
                                  
                              $connection=mysql_connect($mysqlhost$mysqluser$mysqlpwd) or die("Verbindungsversuch fehlgeschlagen");

                              ## Verbindung zur Datenbank
                                  
                              mysql_select_db($mysqldb$connection) or die("Konnte die Datenbank nicht waehlen.");

                              ## Auswahl der Spalten aus Tabelle
                                  
                              $sql "SELECT vote_rated_userid FROM pk__vote_rated WHERE vote_rated_cat='forum' AND vote_rated_contid='745'";

                              ## Zuordnen der Variablen
                                  
                              $user_id mysql_query($sql) or die("Anfrage nicht erfolgreich");

                              ## Ermitteln und Ausgabe der Anzahl
                                  
                              $anzahl mysql_num_rows($user_id);
                                  echo 
                              "Anzahl der Datensätze: $anzahl";
                                  
                              ?>

                              <!-- Begin der Table -->
                                  <table cellpadding="1" cellspacing="3" border="1">
                                      <tr>
                                          <td>User ID</td>
                                      </tr>

                              <!-- Schleife -->
                                          <?php
                                          
                              while ($adr mysql_fetch_array($user_id))
                                          {
                                          
                              $vote_user_id $adr['vote_rated_userid'];
                                          
                              $sql "SELECT user_nick FROM pk__user WHERE user_id = '".$vote_user_id."'";
                                          
                              $vote_user mysql_query($sql) or die("Anfrage nicht erfolgreich");
                                          
                              ?>
                                      <tr>

                              <!-- Ausgabe -->
                                          <td><?=$vote_user?></td>
                                      </tr>
                                      <?php
                                          
                              }
                                      
                              ?>
                                  </table>
                              Wo ich aber garnicht weiter komme ist der Teil in der Schleife in dem ich die "ID" aus der Voting Tabelle mit der "ID" vergleichen und durch den "Nick" ersetzen lassen möchte.

                              Kann mir da jemand einen Tipp geben?

                              Lieben Dank
                              Anna
                              Warum arbeites du nicht mit einem JOIN (SQL)?
                              Dann kannst du dir die 2. SQL-Abfrage schenken.

                              php-Entwicklung | ebiz-consult.de
                              PHP-Webhosting für PHP Entwickler | ebiz-webhosting.de
                              die PHP Marktplatz-Software | ebiz-trader.de

                              Kommentar

                              Lädt...
                              X