Zelleninhalt einer Tabelle ausschneiden und in Variable packen

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

  • Zelleninhalt einer Tabelle ausschneiden und in Variable packen

    Hallo,

    Ich habe in Word Press ein Formular erstellt wo das Ergebnis in eine Datenbank gespeichert wird.
    Die Einträge werden alle in einer Zelle gespeichert. Siehe Unten.

    Ich möchte mit PHP die einzelnen Werte ausschneiden in eine Variable packen und in einer Tabelle auf einer Webseite ausgeben.
    (Variablen und Datenbankinhalte in einer Tabelle auszugeben ist kein Problem)
    Habe im Internet viel geforscht (Split Explodet..) aber bin überfordert.
    Könnte man nicht sagen packe den Inhalt
    zwischen dem dritten und vierten Anführungszeichen in die Variable $name
    zwischen dem sibten und achten Anführungszeichen in die Variable $e-mail
    ....
    Code:
    a:6:{s:4:"Name";s:19:"siegfried schumacher";s:10:"your-email";s:20:"siegfried@schumacher.de";s:12:"Kontaktdaten";s:16:"Tel.025984565645";s:3:"vom";s:10:"2020-06-04";s:12:"your-message";s:54:"Ich freue mich schon";s:13:"buchugsstatus";s:0:"Gebucht";}
    ----- Zeileninhalt muste ich als code eingeben da sonst Symbole eingefügt werden ------
    Ich hoffe einer kann mir helfen.
    Grüße
    Siegfried
    Zuletzt geändert von hagenmann; 28.06.2020, 18:01.

  • #2
    https://www.php.net/manual/de/function.unserialize.php

    Kommentar


    • #3
      Hallo,
      danke für den Link.
      konnte aber damit nichts anfangen.
      Ich habe es ua. mit mit strrchr und strrpos versucht.
      Vielleicht habe ich mein Anliegen falsch interpretiert.
      Ich möchte aus der unten stehenden Zeichenkette die Zeichen zwischen den 3 und 4 Anführungszeichen ausschneiden und in eine Variable übergeben.$name ="siegfried schumacher"
      Auch möchte ich die Zeichen zwischen der 7 und 8 Anführungszeichen ausschneiden und in eine Variable mit dem Namen $email übergeben.
      Die Variablen möchte ich dann weiter verarbeiten.


      Grüße
      Siegfried

      Kommentar


      • #4
        Der Wert ist kaputt. Da steht s:19 => 19 Zeichen.

        "siegfried schumacher" hat aber 20 Zeichen.

        Kommentar


        • #5
          Oh ja,
          Da habe ich einen Fehler gemacht.
          Ich habe den Richtigen namen durch Schumacher getauscht.
          und der hat 20.

          Code:
          a:6:{s:4:"Name";s:17:"martin mustermann";s:10:"your-email";s:20:"martin@mustermann.de";s:12:"Kontaktdaten";s:18:"Stresshauserstr  26";s:3:"vom";s:10:"2020-07-03";s:12:"your-message";s:36:"ich habe  keine besonderenBemerkungen";s:13:"buchugsstatus";s:0:"";}
          Zuletzt geändert von hagenmann; 30.06.2020, 09:29.

          Kommentar


          • #6
            Der Wert hat immer noch Fehler. Wieso machst du den Wert kaputt, bevor du ihn postest? Damits für alle Beteiligten schwieriger und langwieriger wird?

            Kommentar


            • #7
              Jetst sollten die Werte im vorigen Post stimmen.
              habe nun das Formular mit Testnamen neu ausgefüllt und abgeschickt.
              Weißt du warum alle Feldergebnisse aus einem Wordpress Formular in einer Zelle gespeichert und nicht für jeden Wert eine Angelegt wird?
              Grüße
              Siegfried
              Zuletzt geändert von hagenmann; 30.06.2020, 09:30.

              Kommentar


              • #8
                Zitat von hagenmann Beitrag anzeigen
                Jetst sollten die Werte im vorigen Post stimmen.
                Was heißt "sollten"? Offenbar hast du es wieder kaputt gemacht. Tu das bitte nicht.

                s:17 -> 17 Zeichen
                "martin mustermann" -> 18 Zeichen

                Zitat von hagenmann Beitrag anzeigen
                Weißt du warum alle Feldergebnisse aus einem Wordpress Formular in einer Zelle gespeichert und nicht für jeden Wert eine Angelegt wird?
                Frag das doch diejenigen Programmierer, die das gemacht haben.

                Kommentar


                • #9
                  Hallo,
                  habe das so aus der Datenbank kopiert. Ich weiß nicht wie da ein weiteres Leerzeichen beim kopieren rein gekommen ist. Sorry! Habe das Leerzeichen gelöscht.
                  Ich bin kein Programmierer und wuste nicht das das ausschlaggebend für meine Frage ist.
                  Aber es geht mir hier um eine Formel/Befehl wie man das löst.
                  Das, Ob du weißt warum das so gemacht wird, ist nur eine Intressensfrage und nicht so wichtig.
                  Grüße
                  Siegfried
                  Zuletzt geändert von hagenmann; 30.06.2020, 09:31.

                  Kommentar


                  • #10
                    PHP-Code:
                    $value unserialize('a:6:{s:4:"Name";s:17:"martin mustermann";s:10:"your-email";s:20:"martin@mustermann.de";s:12:"Kontaktdaten";s:18:"Stresshauserstr 26";s:3:"vom";s:10:"2020-07-03";s:12:"your-message";s:36:"ich habe keine besonderenBemerkungen";s:13:"buchugsstatus";s:0:"";}');

                    $name $value['Name'];
                    $email $value['your-email'];

                    echo 
                    $name PHP_EOL;
                    // martin mustermann

                    echo $email PHP_EOL;
                    // martin@mustermann.de 

                    Kommentar


                    • #11
                      Super Super.
                      Der Code ist ja einfach/kurz.

                      Ich habe den Code eingetragen und es geht.
                      Ein Problem habe ich noch.
                      In der Tabelle wird die Variable $Name nicht angezeigt, wenn ein ÄÜÖ in dem Feld fields ist.
                      Wende ich das Skript vor der Schleife an, werden auch ÄÜÖ angezeigt.
                      Die Spalte habe ich als Text utf8_general_ci gestellt
                      Auf dem Webspace ist php 7.3.15 installiert
                      PHP-Code:
                      <?php
                      include("camp_login.php");
                      ?>
                      <strong><font color="#333333">Gebuchte Campingplätze</font></strong>
                      <?php
                      //testausgabe
                      $value  unserialize('a:6:{s:4:"Name";s:14:"lilli  Schäfer";s:10:"your-email";s:20:"schaefer@autohaus.de";s:12:"Kontaktdaten";s:13:"Sützenstr   23";s:3:"vom";s:10:"2020-06-12";s:12:"your-message";s:5:"keine";s:13:"buchugsstatus";s:0:"";}');
                      $name $value['Name'];
                      $email $value['your-email'];
                      echo 
                      $name PHP_EOL;
                      // martin mustermann
                      echo $email PHP_EOL;
                      // martin@mustermann.de  
                      ?>
                      <?php
                      //Ausgabe der Tabelle Raummiete
                      $ergebnisse mysqli_query($db"SELECT * FROM `wp_cf7_dbt_entries` WHERE `form_id`=42 ");

                          echo 
                      "<table border= 0 cellpadding=10 width=100%>";
                          echo 
                      "<tr bgcolor=#003064 >";
                          echo 
                      "<td><font color=#FFFFFF>",NR"</td>";
                          echo 
                      "<td><font color=#FFFFFF>",time"</td>";
                          echo 
                      "<td><font color=#FFFFFF>",form_id"</td>";
                          echo 
                      "<td><font color=#FFFFFF>",fields"</td>";
                          echo 
                      "</tr>";

                      while(
                      $row mysqli_fetch_object($ergebnisse))
                          
                      // Schleife fuer Tabelle    
                      {
                      // Ausgabe Abschneiden
                      $value unserialize($row->fields);
                      $name $value['Name'];
                      $name2 $name PHP_EOL;
                      // Ende Abschneiden

                        
                      echo "<tr bgcolor=#efefef>";
                        echo 
                      "<td>",$row->ID,"</td>";
                        echo 
                      "<td>",$row->time,"</td>";    
                        echo 
                      "<td>",$name2,"</td>";
                        echo 
                      "<td>",$row->fields,"</td>";
                        echo 
                      "</tr>";
                      }
                      echo 
                      "</table>";
                      ?>
                      Die Testtabelle kann man hier einsehen

                      http://skerra.net/Buchungen/camp_tabelle.php


                      Grüße

                      Kommentar


                      • #12
                        Da hast du wohl ein Problem mit der Zeichenkodierung. Diese muss überall identisch sein. Wichtig vor allen sind Zeichenkodierung im Content-Type vom HTTP-Response und Zeichenkodierung der Datenbankverbindung.

                        Kommentar

                        Lädt...
                        X