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

  • ChrisChross
    hat ein Thema erstellt [Erledigt] PHP Abfrage in HTML Tabelle ausgeben.

    [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>';

  • ChrisChross
    antwortet
    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

    Einen Kommentar schreiben:


  • Moewe
    antwortet
    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>
    "

    Einen Kommentar schreiben:


  • ChrisChross
    antwortet
    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>'

    Einen Kommentar schreiben:


  • Moewe
    antwortet
    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.

    Einen Kommentar schreiben:


  • TessaKavanagh
    antwortet
    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.

    Einen Kommentar schreiben:


  • Moewe
    antwortet
    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

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


  • Moewe
    antwortet
    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

    Einen Kommentar schreiben:


  • ChrisChross
    antwortet
    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" ?

    Einen Kommentar schreiben:


  • Moewe
    antwortet
    Formatiere deinen Code bitte und nimm die Überschrift aus der Schleife raus

    Einen Kommentar schreiben:

Lädt...
X