php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 17.12.2008, 17:44  
Benutzer
 
Benutzerbild von Veqeta
 
Registriert seit: 20.11.2008
Beiträge: 90
PHP-Kenntnisse:
Anfänger
Veqeta befindet sich auf einem aufstrebenden Ast
Veqeta eine Nachricht über ICQ schicken
Standard [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>

Geändert von Veqeta (18.12.2008 um 09:12 Uhr).
Veqeta ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 17.12.2008, 17:48  
Erfahrener Benutzer
 
Registriert seit: 19.03.2007
Beiträge: 176
BlackWolf ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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?
BlackWolf ist offline  
Alt 18.12.2008, 09:06  
Benutzer
 
Benutzerbild von Veqeta
 
Registriert seit: 20.11.2008
Beiträge: 90
PHP-Kenntnisse:
Anfänger
Veqeta befindet sich auf einem aufstrebenden Ast
Veqeta eine Nachricht über ICQ schicken
Standard

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
Veqeta ist offline  
Alt 18.12.2008, 09:08  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

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

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

echo $picresource[0];
cycap ist offline  
Alt 18.12.2008, 09:19  
Benutzer
 
Benutzerbild von Veqeta
 
Registriert seit: 20.11.2008
Beiträge: 90
PHP-Kenntnisse:
Anfänger
Veqeta befindet sich auf einem aufstrebenden Ast
Veqeta eine Nachricht über ICQ schicken
Standard

-.- 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.
Veqeta ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
JS: Einführung - Javascript im Schichtenmodell nikosch Tutorials 4 11.04.2009 17:06
[Erledigt] Array innerhalb einer Funktion Marko_Schulze PHP Tipps 2008 8 02.12.2008 18:58
Wert einer Funktion an andere Funktion übergeben Secondary PHP Tipps 2008 14 27.08.2008 10:36
Rekursive Funktion bricht ab... duras666 PHP Tipps 2008 9 28.04.2008 11:36
gpc_quotes funktion: verbesserungsvorschläge? Promaetheus PHP Tipps 2007 10 12.08.2007 19:29
Komplexe Funktion: +Übersichtlichkeit, -Performance Jacks Rache PHP Tipps 2006 3 07.06.2006 14:22
PHP-GTK Tutorial Beitragsarchiv 9 02.11.2005 21:07
Rückgabewert einer rekrusiven Funktion PHP-Fortgeschrittene 7 06.10.2005 18:44
(schnellere) Funktion zum Zusammenfassen von CSS PHP-Fortgeschrittene 21 08.08.2005 16:47
In einer Funktion auf eine Funktion der Klasse zugreifen phpbeginner PHP Tipps 2005-2 2 28.07.2005 00:30
Funktion in einer Funktion aufrufen? PHP Tipps 2005-2 11 14.06.2005 15:14
[Erledigt] Array-Übergabe in Funktion PHP Tipps 2005 1 08.05.2005 21:05
[Erledigt] Wie kann ich beliebig viele Werte an eine Funktion übergeben PHP Tipps 2005 11 25.01.2005 10:44
[Erledigt] sql syntax error in funktion, kann aber nix finden :( PHP Tipps 2004 10 20.07.2004 19:19
[Erledigt] Referenz auf Funktion übergeben PHP-Fortgeschrittene 7 20.07.2004 09:51

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php explode utf8, php explode rückgabewert, http://www.php.de/php-tipps-2008/49896-erledigt-explode-funktion.html, php mysql explode, php explode rückgabe, mysql explode, php explode utf-8, php rückgabewert explode, php explode rückgabe verarbeiten, explode utf8, explode funktion, php explode performance, explode while, explode funktion php, php get html explode, php explode in key und var, explode php mit variable, explode php rückgabewert, explode beliebig viele leerzeichen, explode performance

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:35 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum