Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] explode() funktion

Einklappen

Neue Werbung 2019

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

  • [Erledigt] explode() funktion

    Halialo, ich hätte mal wieder eine frage.

    Und zwar, programmiere ich im moment eine kleine Bildergallerie.

    Folgende Lage ich habe z.B. 5 Variablen das kann allerdings variieren,
    diese serialisiere ich, lege sie in einer MySQL Datenbank ab.

    Anschließend wen die Gallerie abgerufen wird hole ich mit diese wieder aus der
    Datenbank und deserialisiere sie wieder und daher das die ja zusammenhängend in die Datenbank geschrieben werden muss ich sie mit explode() wieder auseinander spalten.

    Das problem wenn ich nur eine variable --[ variablexy; (semikolon wegen der trennzechenfrage bei explode()) ]-- habe die den inhalt picture.jpg trägt bekomme ich danach nicht den folgenden effekt $var["012"] heraus wie es bei der funktion beschrieben ist. Ist das normal oder hab ich einen Fehler oder besser was kann ich dagegen tun.

    Achja ich Post den code mal hier rein nach dem oberen teil des PHP Scripts ist noch alles ungetestet und zum teil nicht fertig also bitte nicht beachten.
    Sollte es allerdings doch Jemanden interressieren kan er mir allerdings ja Feedback geben ob es funktioniert oder nicht

    Achja und ich mache jetzt Feierabend also ich antworte morgen.

    Schonmal THX im vorraus.

    UND edit kommt morgen ich bin mir sicher das ich bestimmt irgendwas
    schon wieder vergessen habe Informationelles zu schreibe.
    PHP-Code:

    // HIER ANFANG DES PROBLEMCODES!!!

     <?php
      
    // Abfrage und Darstellung
        
        
    $_session->vars["article"]["number"] = $_GET["artnr"];        //variablenübergabe GET der art_nr der aktuellen session
        
        
    require('../system/modules/general/config/cfg.general.php');    //general config
                
                
                //DB abfrage mysql
            
    $db = new mysqli($_config["database"]["shop"]["host"], $_config["database"]["shop"]["username"], $_config["database"]["shop"]["password"], $_config["database"]["shop"]["dbname"]);
                    
                    if (
    mysqli_connect_errno()) {                //if connect error dann...
                    
    echo 'Fehler: Verbindung zur Datenbank nicht möglich.';
                        exit;        
                    }
                    
    $artnr $_session->vars["article"]["number"];
                    
                    
    $query "SELECT art_pic_res, art_pic_first FROM art WHERE art_nr = $artnr";        //query
                    
                
    $result $db->query($query);         //query ausfürhung
                    
    $row $result->fetch_assoc();        //sqlspalten umformung in arrays
                    
                    
                    
    printf ("%s %s \n"$row["art_pic_res"], $row["art_pic_first"]);  //Überprüfung ob variablen vorhanden
                    
                    
    $GLOBALS["art_pic_res"] = $row["art_pic_res"];
                    
    $GLOBALS["art_pic_first"] = $row["art_pic_first"];
                    
                
    $result->close();
                    
            
    $db->close();
                    
                    
    $picresource $GLOBALS["art_pic_res"];
                    
    $firstpic     $GLOBALS["art_pic_first"];
                    
                    echo 
    $picresource;
                    
                    
    $picresource unserialize($picresource);    //uncodeing of  $picresource
                    
                    
    echo $picresource;
                    
                    
    $picsresource explode(';',$picresource);  // $picresource[0], $picresource[1], $picresource[2], $picresource[3],...
                    
                    
    echo $picresource[0];
                    
                
                
                
    ?>
                
        //  HIER ENDE DES PROBLEMCODES        
                
        // HIER ANFANG DES JAVASCRIPTS GEHÖRT ABER NICHT ZUM
            //THEMA WENN ALLERDINGS DOCH JEMAND FEEDBACK        
            // GEBEN WILL KANN ER DAS MEINERSEITS GERNE TUN 

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">

    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Ohne_Titel_1</title>
    <style type="text/css">
    .style1 {
        text-align: center;
    }
    </style>



               <title>Meine ersten Ajax Erfahrungen</title>
            <script type=\"text/javascript\"><!--

           
           function doIt(){
           
    var bild            =null;            // Großbildanzeige der Gallerie
           
        if (window.XMLHttpRequest) {
       
       bild             = new XMLHttpRequest();
       }    
     
    else if (window.ActiveXObject) {
       bild             = new ActiveXObject('Microsoft.XMLHTTP');
       }

    if (bild != null) {
       bild.open('GET', '<?php echo $_config["module"]["gallerie"]["picpath"].$picresource[0]; ?>', true);
       bild.onreadystatechange = ausgeben;
       bild.send(null);
       }

    function ausgeben() {
            if (bild.readyState == 4) {
                document.getElementById('bild').innerHTML =
                bild.responseText;
            }
        }



    var aktuell         =null;   // Mittlerer Thumbnail

    if (window.XMLHttpRequest) {
        aktuell            = new XMLHttpRequest();
       } 
       else if (window.ActiveXObject) {
        aktuell         = new ActiveXObject('Microsoft.XMLHTTP');
        }

    if (aktuell != null) {
       aktuell.open('GET', '<?php echo $_config["module"]["gallerie"]["picpath"].$picresource[0]; ?>', true);
       aktuell.onreadystatechange = ausgeben;
       aktuell.send(null);
       }

    function ausgeben() {
            if (aktuell.readyState == 4) {
                document.getElementById('aktuell').innerHTML =
                aktuell.responseText;
            }
        }

        //while für listenabfrage, ob -1 beim array, picresource vorhanden ist ( ob bild anzeigen oder nicht)
    <?php while (list($key$val) = each($picresource))  {
                    
                    if(
    $key == -1) {
                    
        
    ?>

    var previouspicture = null;  //vorheriger thumbnail

    if (window.XMLHttpRequest) {
       previouspicture    = new XMLHttpRequest();
       } 
       else if (window.ActiveXObject) {
       previuspicture     = new ActiveXObject('Microsoft.XMLHTTP');
       }

    if (previouspicture != null) {
       previouspicture.open('GET', '<?php echo $_config["module"]["gallerie"]["picpath"].$picresource[-1?>', true);
       previouspicture.onreadystatechange = ausgeben;
       previouspicture.send(null);
       }

    function ausgeben() {
            if (previouspicture.readyState == 4) {
                document.getElementById('previouspicture').innerHTML =
                previouspicture.responseText;
            }
        }

    <?php            }
            }

    ?>


        //while für listenabfrage, ob 1 beim array, picresource vorhanden ist  ( ob bild anzeigen oder nicht)
        <?php  while (list($key$val) = each($picresource))  {
                    
                    if (
    $key == 1){
                    
                    
    ?>
        
    var nextpicture        =null;     // nächster thumbnail

    if (window.XMLHttpRequest) {
       nextpicture        = new XMLHttpRequest();
       } 
       else if (window.ActiveXObject) {
       nextpicture         = new ActiveXObject('Microsoft.XMLHTTP');
       }
       
    if (nextpicture != null) {
       nextpicture.open('GET', '<?php echo $_config["module"]["gallerie"]["picpath"].$picresource[1?>', true);
       nextpicture.onreadystatechange = ausgeben;
       nextpicture.send(null);
       }

    function ausgeben() {
            if (nextpicture.readyState == 4) {
                document.getElementById('nextpicture').innerHTML =
                nextpicture.responseText;
                
            }
        }
    }    
    <?php 
                
    }
        } 
    ?>
    //-->
    </script>
    </head>
    <body>

    <table style="width: 100%">
        <tr>
            <td colspan="5" class="style1">
            <div id="bild"></div>
            </td>
        </tr>
        <tr>
            <td style="width:20px;"><a href="http://www.php.de/modules/articles/modules/mod.articlepicturegallery.php?goleft=true"><img src="http://www.php.de/grafik/black_15x11_left.gif"></a></td>
            <td class="style1"><div id="previouspicture"></div></td>
            <td class="style1"><div id="aktuell"></div></td>
            <td class="style1"><div id="nextpicture"></div></td>
            <td style="width:20px;"><a href="http://www.php.de/modules/articles/modules/mod.articlepicturegallery.php?goright=true"><img src="http://www.php.de/grafik/black_15x11.gif"></a></td>
        </tr>
    </table>

    </body>

    </html>
    Kaffe braunes Gold

  • #2
    mal dumm gefragt: wenn du nur einfache variablen und keine objekte hast, wieso speicherst du dann nicht nur den wert der variablen? das wär nämlich viel einfacher. ansonsten kann ich dir nur empfehlen, bei der speicherung zwischen deine serialisierten sachen irgendein trennzeichen zu hängen, meinetwegen ein ° oder | oder so und beim schreiben in die datenbank verbietest du dieses zeichen als variablenwert.

    PS: hast du nach dem explode nicht unserialize vergessen?

    Kommentar


    • #3
      mhh unserialize() habe ich ja drinn, das mach ich ja noch bevor ich explode() anwende und lege die Variablen serialized in die Datenbank ab.

      und ein Trennzeichen ist ja drinne --> ; <--

      mhh Ja eigentlich ne gute Frage wieso will ich die als Variablen abspeichern mhh
      naja ich habs mir so ausgedacht hab mein PHP Guru gefragt und der hat gemeint ja so könnte manns machen
      Kaffe braunes Gold

      Kommentar


      • #4
        ähhh wie wärs wenn du den richtigen variablen namen benutzt?

        $picsresource = explode(';',$picresource); // $picresource[0], $picresource[1], $picresource[2], $picresource[3],...

        echo $picresource[0];

        Kommentar


        • #5
          -.- das so n mist immer erst im Forum auffallen muss... echt depremierend ..

          Ok dann ist das Thema wohl auch schon wieder abgeschlossen THX für posts.
          Kaffe braunes Gold

          Kommentar

          Lädt...
          X