Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] PHP Abfrage in HTML Tabelle ausgeben

Einklappen

Neue Werbung 2019

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

  • [Erledigt] PHP Abfrage in HTML Tabelle ausgeben

    Hallo an alle
    Ich habe das Forum durchsucht, jedoch nicht gefunden wonach ich suche.
    Sollte es eine Thema geben, welches meine Frage beantwortet und ich es nur nicht gefunden habe, dann entschuldigt das bitte.

    Worum geht es? Nun ich habe eine Abfrage vom SQL Server dessen Werte in einer HTML Tabelle ausgegeben werden sollen. Das funktioniert auch, nur legt er bei Abfrage einer Kundennummer pro Bestellung eines Kunden, immer jeweils die Tabellenüberschrift und darunter den Wert den ich aus der Datenbank hole an.
    BSP: Kunde hat 2 Bestellungen getätigt dann erhalte ich folgende Anzeige
    KDNr | Name | Nachname | email | Summe |...
    123 | xyzm | mammaa |xx@xx.xx| 123,25 | ...
    KDNr | Name | Nachname | email | Summe |...
    123 | xyz | mammaa |xx@xx.xx| 254,56 |...

    Ich möchte gern, dass die einzelnen Bestellungen untereinander aber nicht jeder Array() eine neue Überschrift erzeugt (KDNR ...)
    Bsp:

    KDNr | Name | Nachname | email | Summe |...
    123 | xyzm | mammaa |xx@xx.xx| 123,25 | ...
    123 | xyz | mammaa |xx@xx.xx| 254,56 |...

    Das ganze sieht so aus:

    AUSSCHNITT:

    $Kundennummer = isset($_POST["Kundennummer"]) ? $_POST["Kundennummer"] : "";

    // Formular erstellen
    $Kundennummer = "<form action='Bestellung.php' method='post'>
    Kundennummer: <input type='text' name='Kundennummer' value='$Kundennummer'>
    <input type='submit'>
    </form>";

    // Wurden Daten über POST gesendet?
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // Hier wird die Eingabe überprüft
    if ($_POST["Kundennummer"] != "") {
    $Bestellungen = db_lesen('sales_flat_order', 'customer_prefix', 'customer_prefix = "'.$_POST["Kundennummer"].'"');

    foreach($Bestellungen as $Bestellung) {
    echo"<html>
    <body>
    <table border=2>
    <tr>
    <th>Anzeige customer_prefix</th>
    <th>Anzeige customer_firstname</th>
    <th>Anzeige customer_lastname</th>
    <th>Anzeige customer_email</th>
    <th>Anzeige entity_id</th>
    <th>Anzeige increment_id</th>
    <th>Anzeige store_id</th>
    <th>Anzeige base_grand_Total</th>
    <th>Anzeige base_shipping_amount</th>
    <th>Anzeige base_subtotal</th>
    <th>Anzeige weight</th>
    </tr>
    <tr>
    <td align=center>".$Bestellung["customer_prefix"]."</td>
    <td align=center>".$Bestellung["customer_firstname"]."</td>
    <td align=center>".$Bestellung["customer_lastname"]."</td>
    <td align=center>".$Bestellung["customer_email"]."</td>
    <td align=center>".$Bestellung["entity_id"]."</td>
    <td align=center>".$Bestellung["increment_id"]."</td>
    <td align=center>".$Bestellung["store_id"]."</td>
    <td align=center>".$Bestellung["base_grand_total"]."</td>
    <td align=center>".$Bestellung["base_shipping_amount"]."</td>
    <td align=center>".$Bestellung["base_subtotal"]."</td>
    <td align=center>".$Bestellung["weight"]."</td>
    </tr>
    </table>
    </body>
    </html>";
    }
    echo '<a href="Bestellung.php">Weitere Kundennummer prüfen!</a>';

  • #2
    Formatiere deinen Code bitte und nimm die Überschrift aus der Schleife raus
    Die Jatravartiden auf Viltwodl VI können den Kram von dir auch nicht nachvollziehen

    Kommentar


    • #3
      ich habe den Teil mit den <th></th> entfernt, nur habe ich dann keine Überschrift mehr der einzelnen Spalten. Die sollten schon angezeigt werden, jedoch nur an oberster Stelle und darunter alle Bestellungen angezeigt werden.
      Wie meinst du das mit "Formatiere deinen Code bitte" ?

      Kommentar


      • #4
        Zitat von ChrisChross Beitrag anzeigen
        ich habe den Teil mit den <th></th> entfernt, nur habe ich dann keine Überschrift mehr der einzelnen Spalten. Die sollten schon angezeigt werden, jedoch nur an oberster Stelle und darunter alle Bestellungen angezeigt werden.
        Wie meinst du das mit "Formatiere deinen Code bitte" ?
        Du sollst den Überschriftenteil oberhalb deiner foreach packen. Stell dir doch einfach die Frage, was foreach ist, was diese programmier element machen? Dann frage dich, warum du die Überschrift mit in die Foreach gepackt hast.

        Wenn du hier im Text Editor bist, kannst du auf einen KNOPP drücken PHP. der macht deinen Code fürs Forum schöner zum lesen
        Die Jatravartiden auf Viltwodl VI können den Kram von dir auch nicht nachvollziehen

        Kommentar


        • #5
          und auch nicht für jeden Eintrag <html><body> etc. erstellen.

          Kommentar


          • #6
            FORMATIERT:
            PHP-Code:
            $Kundennummer = isset($_POST["Kundennummer"]) ? $_POST["Kundennummer"] : "";

            // Formular erstellen
            $Kundennummer "<form action='Bestellung.php' method='post'>
            Kundennummer: <input type='text' name='Kundennummer' value='
            $Kundennummer'>
            <input type='submit'>
            </form>"
            ;

            // Wurden Daten über POST gesendet?
            if ($_SERVER["REQUEST_METHOD"] == "POST") {
            // Hier wird die Eingabe überprüft
            if ($_POST["Kundennummer"] != "") {
            $Bestellungen db_lesen('sales_flat_order''customer_prefix''customer_prefix = "'.$_POST["Kundennummer"].'"');

            foreach(
            $Bestellungen as $Bestellung) {
            echo
            "<html>
            <body>
            <table border=2>
            <tr>
            <th>Anzeige customer_prefix</th>
            <th>Anzeige customer_firstname</th>
            <th>Anzeige customer_lastname</th>
            <th>Anzeige customer_email</th>
            <th>Anzeige entity_id</th>
            <th>Anzeige increment_id</th>
            <th>Anzeige store_id</th>
            <th>Anzeige base_grand_Total</th>
            <th>Anzeige base_shipping_amount</th>
            <th>Anzeige base_subtotal</th>
            <th>Anzeige weight</th>
            </tr>
            <tr>
            <td align=center>"
            .$Bestellung["customer_prefix"]."</td>
            <td align=center>"
            .$Bestellung["customer_firstname"]."</td>
            <td align=center>"
            .$Bestellung["customer_lastname"]."</td>
            <td align=center>"
            .$Bestellung["customer_email"]."</td>
            <td align=center>"
            .$Bestellung["entity_id"]."</td>
            <td align=center>"
            .$Bestellung["increment_id"]."</td>
            <td align=center>"
            .$Bestellung["store_id"]."</td>
            <td align=center>"
            .$Bestellung["base_grand_total"]."</td>
            <td align=center>"
            .$Bestellung["base_shipping_amount"]."</td>
            <td align=center>"
            .$Bestellung["base_subtotal"]."</td>
            <td align=center>"
            .$Bestellung["weight"]."</td>
            </tr>
            </table>
            </body>
            </html>"
            ;
            }
            echo 
            '<a href="Bestellung.php">Weitere Kundennummer prüfen!</a>'
            Allerdings solltest du einrücken lernen
            Die Jatravartiden auf Viltwodl VI können den Kram von dir auch nicht nachvollziehen

            Kommentar


            • #7
              Also
              PHP-Code:
              <html
              <
              body
              <
              table border=2
              <
              tr
              <
              th>Anzeige customer_prefix</th
              <
              th>Anzeige customer_firstname</th
              <
              th>Anzeige customer_lastname</th
              <
              th>Anzeige customer_email</th
              <
              th>Anzeige entity_id</th
              <
              th>Anzeige increment_id</th
              <
              th>Anzeige store_id</th
              <
              th>Anzeige base_grand_Total</th
              <
              th>Anzeige base_shipping_amount</th
              <
              th>Anzeige base_subtotal</th
              <
              th>Anzeige weight</th
              </
              tr
              gehört vor die Schleife und
              PHP-Code:
              </table
              </
              body
              </
              html
              gehört hinter die Schleife danach sollte es so aussehen wie du es dir vorstellst. Allerdings sollte das </Body> und </html> auch erst hinter dem Link stehen.
              Der Code ist auch nicht vollständig nehme ich an, ich zähle zwei nicht beendete If Abfragen.

              Kommentar


              • #8
                Zitat von TessaKavanagh Beitrag anzeigen
                PHP-Code:
                </table
                </
                body
                </
                html
                gehört hinter die Schleife danach sollte es so aussehen wie du es dir vorstellst. Allerdings sollte das </Body> und </html> auch erst hinter dem Link stehen.
                Der Code ist auch nicht vollständig nehme ich an, ich zähle zwei nicht beendete If Abfragen.
                Ja Verzeihung Stimmt natürlich den Kram darfste da auch noch hinterpacken.
                Die Jatravartiden auf Viltwodl VI können den Kram von dir auch nicht nachvollziehen

                Kommentar


                • #9
                  Danke für die schellen Antworten.

                  Der Auszug unten ist nur ein Teil des ganzen und der Auszug ist ja der Teil um den es geht.

                  Nun macht er zwar nur eine Überschrift und die erste Bestellung auch in die Tabelle, jedoch die 2te Bestellung steht darunter, nur nicht mehr in der Tabelle.
                  Somit wird das zweite Array() außerhalb der Tabelle angezeigt. Das soll so nicht sein.

                  KDNr | Name | Nachname | email | Summe |... (Überschrift)
                  123 | xyz | mammaa |xx@xx.xx| 123,25 | ... (Tabelleninhalt)
                  123 xyz mammaa xx@xx.xx 254,56 ... (unterhalb der Tabelle)


                  Ich habe eure Vorschläge einmal umgesetzt und als PHP Code eingefügt, hoffe es klappt, dass hier nicht mehr geschimpft wird

                  PHP-Code:
                  // Variable $Bestellung einen Wert zuweisen (Wenn das Formular 
                      // gesendet wurde, enthält die Variable die Eingabe des Benutzers)
                  $Kundennummer = isset($_POST["Kundennummer"]) ? $_POST["Kundennummer"] : "";

                      
                  // Formular erstellen
                  $Kundennummer "<form action='Bestellung.php' method='post'>
                      Kundennummer: <input type='text' name='Kundennummer' value='
                  $Kundennummer'>
                      <input type='submit'>
                  </form>"
                  ;

                      
                  // Wurden Daten über POST gesendet?
                  if ($_SERVER["REQUEST_METHOD"] == "POST") {
                   
                  // Hier wird die Eingabe überprüft
                   
                  if ($_POST["Kundennummer"] != "") {
                      
                  $Bestellungen db_lesen('sales_flat_order''customer_prefix''customer_prefix = "'.$_POST["Kundennummer"].'"');
                      
                      echo
                  "<table border=2>
                                              <tr>
                                                  <th>Anzeige customer_prefix</th>
                                                  <th>Anzeige customer_firstname</th>
                                                  <th>Anzeige customer_lastname</th>
                                                  <th>Anzeige customer_email</th>
                                                  <th>Anzeige entity_id</th>
                                                  <th>Anzeige increment_id</th>
                                                  <th>Anzeige store_id</th>
                                                  <th>Anzeige base_grand_Total</th>
                                                  <th>Anzeige base_shipping_amount</th>
                                                  <th>Anzeige base_subtotal</th>
                                                  <th>Anzeige weight</th>
                                              </tr>"
                  ;
                      
                      foreach(
                  $Bestellungen as $Bestellung) {
                              
                                          echo 
                  "<tr>
                                                  <td align=center>"
                  .$Bestellung["customer_prefix"]."</td>
                                                  <td align=center>"
                  .$Bestellung["customer_firstname"]."</td>
                                                  <td align=center>"
                  .$Bestellung["customer_lastname"]."</td>
                                                  <td align=center>"
                  .$Bestellung["customer_email"]."</td>
                                                  <td align=center>"
                  .$Bestellung["entity_id"]."</td>
                                                  <td align=center>"
                  .$Bestellung["increment_id"]."</td>
                                                  <td align=center>"
                  .$Bestellung["store_id"]."</td>
                                                  <td align=center>"
                  .$Bestellung["base_grand_total"]."</td>
                                                  <td align=center>"
                  .$Bestellung["base_shipping_amount"]."</td>
                                                  <td align=center>"
                  .$Bestellung["base_subtotal"]."</td>
                                                  <td align=center>"
                  .$Bestellung["weight"]."</td>
                                              </tr>    
                                          </table>"
                  ;
                      }
                      echo 
                  '<a href="Bestellung.php">Weitere Kundennummer prüfen!</a>'

                  Kommentar


                  • #10
                    Jetzt solltest du noch das umsetzen was Tessa geschrieben hat.

                    1. Tags auch in HTML haben schon ihren Sinn und die Logik mit <öffnendes Tag></schließendes Tag> auch.
                    2. Schleifen sind sinnreiche gebilde die es einem ermöglichen die Anweisungen innerhalb der Schleife mehrach zu durchlaufen

                    Dein Beispiel vereinfach dargestellt

                    Code:
                    <table>
                       <tr>
                          <th>Überschrift 1</th>
                          <th>Überschrift 2</th>
                          <th>Überschrift 3</th>
                       </tr>
                       <tr>
                          <td>Daten Reihe 1 Spalte 1</td>
                          <td>Daten Reihe 1 Spalte 2</td>
                          <td>Daten Reihe 1 Spalte 3</td>
                       </tr>
                       <tr>
                          <td>Daten Reihe 2 Spalte 1</td>
                          <td>Daten Reihe 2 Spalte 2</td>
                          <td>Daten Reihe 2 Spalte 3</td>
                       </tr>
                    </table>
                    So sieht eine Tabelle im allg. aus.
                    Jetzt willst du die Tabellen Reihen, welche Daten beinhalten durch eine Schleife X-Mal ausgeben. Du hast dich für die foreach entschieden
                    PHP-Code:
                    echo"
                    <table>
                       <tr>
                          <th>Überschrift 1</th>
                          <th>Überschrift 2</th>
                          <th>Überschrift 3</th>
                       </tr>
                    "
                    ;
                    foreach(
                    $somethin as diverseWerte)
                    {
                       echo
                    "
                          <tr>
                             <td>diverseWerte[0]</td>
                             <td>diverseWerte[1]</td>
                             <td>diverseWerte[2]</td>
                          </tr>
                       "
                    ;
                    }
                    echo
                    "
                    </table>
                    "

                    Die Jatravartiden auf Viltwodl VI können den Kram von dir auch nicht nachvollziehen

                    Kommentar


                    • #11
                      Ach man sieht den Wald vor lauter Bäumen nicht

                      Danke das </table> nach der geschlossenen } Klammer nun sieht die Welt wieder bunt aus.


                      Ich danke allen für eure Mithilfe.
                      Hat etwas gedauert... manche Mühlen mahlen langsamer als andere

                      Kommentar

                      Lädt...
                      X