Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Keine Ausgabe, obwohl kein Fehler! Datenbank Abfrage

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Keine Ausgabe, obwohl kein Fehler! Datenbank Abfrage

    Hallo Leute, ich hab ein Problem, dass sich nicht ergründen lässt...
    Ich habe folgendes Script:
    PHP-Code:
    $sql = ("SELECT * FROM  `user` where uid > '0' ORDER BY  prestiges DESC ");
        
    $user $db->fetch_array($sql);
        echo 
    "$user[name]";
        while(
    $user=$db->fetch_array($sql))
        {
            
    $sql2 $db->query("SELECT * FROM area where uid='$user[uid]' AND type != 'build'");
            
    $buildings $db->num_rows($sql2);
            
            
    $sql0 $db->query("SELECT * FROM studios_workers where uid='$userdata[uid]'");
            
    $sql1 $db->query("SELECT * FROM studios_workers");
            
    $sql2 $db->query("SELECT * FROM workers");
            
    $worker round((100/($db->num_rows($sql1)+$db->num_rows($sql2)))*$db->num_rows($sql0), 2);
            
            
    $userrank .= "<tr>
            <td>
    $user[user]</td>
            <td>
    $buildings Geb&auml;de</td>
            <td>
    $worker&prcnt; der Arbeiter</td>
            <td>
    $user[prestiges]</td>
            </tr>"
    ;
        } 
    Wenn ich das Script ausführe, kommt für $userrank keine Ausgabe, er kommt nichtmal in die while schleife rein!
    Wenn ich manuell den namen ausgeben möchte, kommt das auch nicht raus!
    DB Klasse is in Ordnung und sonst seh ich da keinen Fehler.

    Wäre schön, wenn mir jemand helfen könnte.
    PS: andere Variablen, die später deklariert wurden werden wunderbar ausgegeben!

    mfg T!g3R
    Wer es nicht besser kann, der lässt es lieber bleiben...
    Wers besser kann, soll es erst mal machen!


  • #2
    PHP-Code:
    echo "$user[name]"
    Nur mal so: Warum die Anführungszeichen?

    Was gibt denn
    PHP-Code:
    print_r($user); 
    aus?

    Hast mal versucht, die SQL-Anweisung in bspw. PHPMyAdmin zu testen?
    Was kommt da zurück?
    Competence-Center -> Enjoy the Informatrix
    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

    Kommentar


    • #3
      Wenn ich nur print_r ausgebe, erscheint vor mir ein wunderschönes weißes Bild.
      Wie gesagt, ich arbeite mit xampp, der neusten version und ich programmiere jetzt seit zwei wochen an diesem projekt und es gab kein solches problem.

      Kann es daran liegen, dass prestiges bei alles usern 0 ist?
      Wer es nicht besser kann, der lässt es lieber bleiben...
      Wers besser kann, soll es erst mal machen!

      Kommentar


      • #4
        Bitte ändere deinen Threadtitel! Warum? Wie?
        http://hallophp.de

        Kommentar


        • #5
          hab ich gemacht, ist so besser? ist halt schwierig, da ich keinen blassen schimmer hab worans liegen könnte...
          Wer es nicht besser kann, der lässt es lieber bleiben...
          Wers besser kann, soll es erst mal machen!

          Kommentar


          • #6
            Und nochmal zurück zur Frage:
            Hast mal versucht, die SQL-Anweisung in bspw. PHPMyAdmin zu testen?
            Was kommt da zurück?
            Competence-Center -> Enjoy the Informatrix
            PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

            Kommentar


            • #7
              Zitat von T!G3R Beitrag anzeigen
              PHP-Code:
                      $userrank .= "<tr>
                      <td>
              $user[user]</td>
                      <td>
              $buildings Geb&auml;de</td>
                      <td>
              $worker&prcnt; der Arbeiter</td>
                      <td>
              $user[prestiges]</td>
                      </tr>"
              ;
                  } 
              Wenn ich das Script ausführe, kommt für $userrank keine Ausgabe...
              Mal abgesehen von einer noch nie gesehenen Schreibweise deines Quelltextes, müßtest Du als erstes ein echo oder print vor $userrank setzen.
              Und mit Schreibweise meine ich z. B.:
              PHP-Code:
              $userrank .= "<td>$user[user]</td>"
              Fällt Dir was auf?
              PHP-Code:
              $userrank .= "<td>".$user["user"]."</td>"
              PHP-Code:
              $userrank .= '<td>'.$user['user'].'</td>'
              Und wie so eigentlich .= wenn danach nichts mehr kommt?

              Kommentar


              • #8

                bitte sehr wunderbare ausgabe
                Wer es nicht besser kann, der lässt es lieber bleiben...
                Wers besser kann, soll es erst mal machen!

                Kommentar


                • #9
                  Zitat von Registrierer
                  Und wie so eigentlich .= wenn danach nichts mehr kommt?
                  Wahrscheinlich, weil der Table-Tag davor kommt...

                  Wenn Du das oben gepostete Ergebnis in PHPMyAdmin bekommst und print_r($user); Dir nichts anzeigt, wird diese Aussage nicht stimmen:
                  DB Klasse is in Ordnung...
                  Competence-Center -> Enjoy the Informatrix
                  PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                  Kommentar


                  • #10
                    @registrierer:
                    Ich bin doch nicht völlig bescheuert, es kommt noch ein kleiner anderer Code, der damit allerdings keinerlei verbindung hat. Darin wird ein <table> Tag deklariert mit $userranks darin.
                    Und wie so eigentlich .= wenn danach nichts mehr kommt?
                    Du hasst aber schon gesehndas dass ne while schleife is und wenn ich stat .= = schreibe ich dann nur die letzte zeile habe?

                    Und ich schreibe immer so: "<td>" und z.b. <a href=\"\">. Daran liegt es nicht, da der Code nur aus so etwas besteht und alles andere wunderbar funktioniert

                    @Arne Drews:
                    Doch, denn ersten hätte mir mein Script (stammt eigentlich von dem Litotex BG-Set, aber ein etwas älteres) einen fehler erzeugt, und zweitens habe ich eine gloabl.php eingebunden, mit der ich über 20 Abfragen auf die gleiche Weise mache:
                    PHP-Code:
                     if(isset($_SESSION['userid'])) {
                      
                    $result=$db->query("SELECT * FROM user WHERE uid='".$_SESSION['userid']."'");
                      
                    $userdata=$db->fetch_array($result);
                      
                    $userdata['name']=c_trim($userdata['name']);
                      
                    $userdata['username']=c_trim($userdata['username']);
                      if(
                    $userdata['usesid'] == 0) {
                          
                    $SID_1="?cxid=";
                          
                    $SID_2="&cxid=";
                      } 
                    Ausgabe in der Header Datei:
                    Code:
                     <td class="hr">test</td> 
                            </tr> 
                            <tr> 
                              <td class="headerng">500&euro;</td> 
                            </tr> 
                            <tr> 
                              <td class="headerng">10 Bauarbeiter</td> 
                            </tr> 
                            <tr> 
                              <td class="headerng">0 Prestiges</td>
                    Wie du anhand meines phpmyadmin screens sehen kannst, hat der user test 0 prestiges, 500 auf seinem konto und 10Bauarbeiter (builder)

                    Wie kann dann die andere Abfrage falsch sein?
                    Wer es nicht besser kann, der lässt es lieber bleiben...
                    Wers besser kann, soll es erst mal machen!

                    Kommentar


                    • #11
                      Wie kann dann die andere Abfrage falsch sein?
                      Das kann ich Dir nicht sagen.
                      Klar ist für mich nur:
                      1. Abfrage ist korrekt und gibt Ergebnis zurück (Screenshot beweist das)
                      2. Das Script bekommt aber von der Abfrage in $user scheinbar keine Daten!

                      Mein persönliches Fazit: Dazwischen hakelt es irgendwo!
                      Und das läßt mich unter Umständen auch das Problem in der DB-Klasse vermuten.
                      Wobei Du natürlich recht hast, wenn alle anderen nach gleichem Schema funktionieren, sollte das eher ungewöhnlich sein, aber nicht auszuschliessen...

                      Ändere doch mal bitte das
                      PHP-Code:
                      $sql = ("SELECT * FROM  `user` where uid > '0' ORDER BY  prestiges DESC ");
                      $user $db->fetch_array($sql); 
                      in
                      PHP-Code:
                      $sql = ("SELECT * FROM  `user` where uid > '0' ORDER BY  prestiges DESC ");
                      print_r($db->fetch_array($sql)); 
                      und säch ma' wat dat auf'n Monitor gibt...
                      Competence-Center -> Enjoy the Informatrix
                      PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                      Kommentar


                      • #12
                        Fehlt da nicht
                        $db->query ?

                        Kommentar


                        • #13
                          Zitat von Hexe Beitrag anzeigen
                          Fehlt da nicht
                          $db->query ?
                          Dat hatte ich ja auch mal vermutet, allerdings sollen laut Aussage des TE auf dieser Basis 20 andere Abfragen einwandfrei funktionieren.
                          Vielleicht wird die Query innerhalb der Methode fetch_array() ausgeführt.

                          Aber da kann man halt nichts zu sagen, weil für den TE 100%ig klar ist, daß es nicht an der DB-Klasse und der Art der Verwendung liegt...
                          Competence-Center -> Enjoy the Informatrix
                          PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                          Kommentar


                          • #14
                            ups,
                            vedammt Hexe hat ja recht
                            Code:
                            <table> 
                            	<tr> 
                            		<td><b>Username</b></td> 
                            		<td><b>Geb&auml;de</b></td> 
                            		<td><b>Angestellte</b></td> 
                            		<td><b>Prestiges</b></td> 
                            	</tr> 
                            	<tr> 
                            		<td>Franzeros</td> 
                            		<td>0 Geb&auml;de</td> 
                            		<td>71.43% der Arbeiter</td> 
                            		<td>3</td> 
                            		</tr><tr> 
                            		<td>test</td> 
                            		<td>2 Geb&auml;de</td> 
                            		<td>71.43% der Arbeiter</td> 
                            		<td>1</td> 
                            		</tr> 
                            	</table>
                            Aber eigentlich komisch, dass da keine Fehlermeldung kommt...
                            Naja problem gelöst danke
                            Wer es nicht besser kann, der lässt es lieber bleiben...
                            Wers besser kann, soll es erst mal machen!

                            Kommentar


                            • #15
                              Oh mann... Da hättest mit Debugging schnell selbst drauf kommen können!
                              Competence-Center -> Enjoy the Informatrix
                              PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                              Kommentar

                              Lädt...
                              X