Ankündigung

Einklappen
Keine Ankündigung bisher.

Ausrichtungsproblem beim Ausgeben der DB

Einklappen

Neue Werbung 2019

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

  • Ausrichtungsproblem beim Ausgeben der DB

    Hallo Leute,

    ich versuche schon seit Stunden eine Spalte meiner Datenbank in vertikaler Ausrichtung nach meinem Timestamp sortiert auszugeben. Meine Daten beziehe ich aus einer Siemens S7 und lasse mir diese als 1 oder 0 mit ID und Timestamp anzeigen.

    Das Problem besteht nun darin, das ich in meiner Tabelle nicht nur 0 und 1 stehen haben will, sondern mir die 1 durch einen grünen Kreis und die 0 mit einem Roten Kreis anzeigen lassen möchte. Der Timestamp wird so wie ich es mir wünsche auch vertikal angezeigt und solange ich mir nur 1 und 0 anzeigen lasse diese auch, aber sobald ich die Grünen und roten Punkte einbinde sind diese plötzlich horizontal und stehen in keiner Verbindung mehr zu dem Timestamp.

    Ich hoffe Ihr könnt mir helfen, da ich in Sachen PHP nicht sehr versiert bin

    Hier mein Code

    PHP-Code:
    <?php

    $result 
    mysql_query("SELECT * FROM szlesen ORDER BY STR_TO_DATE (Zeit,'%d.%m.%Y %H:%i:%s') DESC LIMIT 0,10");
    while(
    $row mysql_fetch_row($result))
    if(
    $row[2]=="0")
    { echo 
    "<img src='img/5.gif'>";
    }
    else
    { if(
    $row[2]=="1")
      { echo
    "<img src='img/6.gif>";
    }}
    ?>


  • #2
    Wo ist denn da die Tabelle?
    You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.

    Kommentar


    • #3
      $result = mysql_query("SELECT * FROM szlesen ORDER BY STR_TO_DATE (Zeit,'%d.%m.%Y %H:%i:%s') DESC LIMIT 0,10");
      mysql_* ist veraltet. Bitte mysqli oder PDO nutzen. Bitte * vermeiden und lieber gezielt die spalten aufzuzählen, die du wirklich brauchst!
      while (!asleep()) sheep++;

      Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

      Kommentar


      • #4
        Sorry ich dachte das reicht, weil ich vermute das wahrscheinlich dort mein Fehler liegt, aber nun nochmal mit Tabelle

        PHP-Code:
        <table>
        <table border="2">
        <head>
        <th>Automatik</th>
        <th>Wartung</th>
        <th>Feuer</th>
        <th>Störmeldung</th>
        <th>Alarmmeldung</th>
        <th>Zeit</th>
        <tr><td>

        <?php

        $result 
        mysql_query("SELECT * FROM szlesen ORDER BY STR_TO_DATE (Zeit,'%d.%m.%Y %H:%i:%s') DESC LIMIT 0,10");
        while(
        $row mysql_fetch_row($result))
        if(
        $row[2]=="0")
        { echo 
        "<img src='img/5.gif'>";
        }
        else
        { if(
        $row[2]=="1")
          { echo
        "<img src='img/6.gif>";
        }}
        ?> 
        </td>

        Kommentar


        • #5
          und wo machst du das </tr> ?

          Üblicherweise "looped" (schleift ) man das <tr>...</tr>

          Und schau dir dringend EVA an: http://php-de.github.io/jumpto/eva-prinzip/

          LG
          Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
          PHP.de Wissenssammlung | Kein Support per PN

          Kommentar


          • #6
            PHP-Code:
            <table>
            <
            table border="2">
            <
            head>
            <
            th>Automatik</th
            Syntaktisch voll daneben, sorry. Schau mal, wie man eine Tabelle aufbaut:

            http://de.selfhtml.org/html/tabellen/aufbau.htm

            Bsp. für's Verständnis mit PDO:

            PHP-Code:
            <?php
            $stmt 
            $db->query("SELECT spalte1, spalte2 FROM meineTabelle");

            if(
            $stmt->rowCount() >= 1){
             
            ?>
             <table>
              <tr>
               <th>Spalte1</th>
               <th>Spalte2</th>
              </tr>
             <?php
             
            While($row $stmt->fetch(PDO::FETCH_ASSOC)){
              echo 
            "<tr>";
               echo 
            "<td>";
                echo (
            $row["spalte1"] == "1") ? "<img src=\"img/5.gif\">" "<img src=\"img/6.gif\">";
               echo 
            "</td>";
               echo 
            "<td>".$row["spalte2"]."</td>";
              echo 
            "</tr>";
             }
             
            ?>
             </table>
             <?php
            }else{
             echo 
            "sorry...keine einträge vorhanden";
            }
            while (!asleep()) sheep++;

            Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

            Kommentar


            • #7
              @ hausl

              das </tr> kommt ganz zum Schluss.
              Ist nur ein Ausschnitt aus dem Programm, weil sich diese Abfrage mehrmals wiederholt. Das problem ist nur das er mir die "img" Datein nur horizontal in einer Linie anzeigt und nicht vertikal wie die Zeit.

              @wolf29

              okay von den Neuerungen wusste ich jetzt ehrlich gesagt nichts. Aber danke für den Hinweis, werde ich kmich mal drüber belesen

              Kommentar


              • #8
                Ich wette du produzeirst HTML-Mist. Wenn alles in einer Zeile angezeigt wird ist das einzeichen das du die <tr> nicht schliesst, schau das mal an. Lass den HTML Code validieren. (google W3C valdiator)

                LG
                Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                PHP.de Wissenssammlung | Kein Support per PN

                Kommentar


                • #9
                  Okay :/
                  Ich werde mich wohl noch mit so einigen Themen belesen müssen. Normalerweise mache ich PIC Programmierung, aber HTML und PHP sind denn doch nicht so einfach wie ich dachte.

                  Danke für eure Antworten

                  Kommentar


                  • #10
                    Ich weis nicht ob das weiter hilft, aber wenn ich das ganze so schreibe ohne if und else, werden mir die Schaltzustände ordentlich nach der Zeit sortiert angezeigt, aber halt nur mit 1 und 0.

                    PHP-Code:
                     <?php

                    $result 
                    mysql_query("SELECT * FROM szlesen ORDER BY STR_TO_DATE (Zeit,'%d.%m.%Y %H:%i:%s') DESC LIMIT 0,10");
                    while(
                    $row mysql_fetch_row($result))
                    echo 
                    $row[2].'<br />';
                    ?>

                    Kommentar


                    • #11
                      Hier ist noch ein Bild was mein Problem wohl am besten zeigt.

                      Kommentar


                      • #12
                        werden mir die Schaltzustände ordentlich nach der Zeit sortiert angezeigt
                        Ja, weil du die auch so ausgibts. Wenn du eine tabelle baust gibt es aber spalten ("nach rechts") und Zeilen ("nach unten") und da musst du halt das HTML entsprechend korrekt mit PHP zusammenbauen.

                        Wenn du hierzu:
                        PHP-Code:
                        SELECT FROM szlesen 
                        das beherzigst: http://php-de.github.io/jumpto/code-smells/#select-

                        dann kann man zumindest mal sehen welche Felder du konkret abholst.

                        Hier ist noch ein Bild
                        ... auf dem man genau nichts erkennen kann

                        LG
                        Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                        PHP.de Wissenssammlung | Kein Support per PN

                        Kommentar


                        • #13
                          Problem gelöst

                          der Fehler lag an den Zeilenumbrüchen bei der Ausgabe (echo ..... <br />)

                          Danke für eure Hilfe und die nützlichen Tipps

                          LG

                          Kommentar

                          Lädt...
                          X