Der folgende Beitrag wurde am 15. 08. 2006, 23:28 Uhr von Thomas veröffentlicht.
Hi!
ich hab eine Session, die (wenn das script laufen soll) ca. so aussieht (is nicht von mir programmiert, aber nicht leicht änderbar):
...
$_SESSION['contents']['31{4}3{8}5'] = array();
$_SESSION['contents']['31{4}3{8}5']['quantity'] = 1;
$_SESSION['contents']['31{4}3{8}5']['attributes'] = array();
$_SESSION['contents']['31{4}3{8}5']['attributes']['4'] = 3;
$_SESSION['contents']['31{4}3{8}5']['attributes']['8'] = 5;
$_SESSION['contents']['13{3}2{7}2'] = array();
....
jetzt will ich das in eine Mysql-Tabelle schreiben lassen:
foreach($_SESSION['cart']['contents'] as $product_image_save) {
$query = 'insert into orders id values '.$id;
Das is natürlich stark gekürzt (es werden in die Tabelle natürlich viel mehr Daten gespeichert, die sind aber für meine Frage unwichtig):
Also wie erhalte ich die $id, das wäre die erste Nummer des Array-Namens
=> bei ['31{4}3{8}5'] is das 31
Kann mir da jemand helfen?
THX
Thomas
Der folgende Beitrag wurde am 16. 08. 2006, 04:55 Uhr von Auge veröffentlicht.
Hallo
> ich hab eine Session, die (wenn das script laufen soll) ca. so aussieht (is nicht von mir programmiert, aber nicht leicht änderbar):
>
> ...
> $_SESSION['contents']['31{4}3{8}5'] = array();
> $_SESSION['contents']['31{4}3{8}5']['quantity'] = 1;
> $_SESSION['contents']['31{4}3{8}5']['attributes'] = array();
> $_SESSION['contents']['31{4}3{8}5']['attributes']['4'] = 3;
> $_SESSION['contents']['31{4}3{8}5']['attributes']['8'] = 5;
> ....
Nunja, sieht verwirrend aus.
> foreach($_SESSION['cart']['contents'] as $product_image_save) {
nanu, wo kommt jetzt das ['cart'] her?
Abgesehen von der Vierdimansionalität, in der _ich_ mich wahrscheinlich verirren täte, kannst du eine foreach-Schleife anweisen, den Key eines Arrayelements auszugeben.foreach ($bla as $key=>$$val)
{
echo $key.": ".$val."\n";
}
Ansonsten fällt mir da noch die Funktion key() ein.
Tschö, Auge
--
Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
(Victor Hugo)
Veranstaltungsdatenbank Vdb 0.1
Der folgende Beitrag wurde am 16. 08. 2006, 09:32 Uhr von dedlfix veröffentlicht.
echo $begrüßung;
> > $_SESSION['contents']['31{4}3{8}5'] = array();
> > $_SESSION['contents']['31{4}3{8}5']['quantity'] = 1;
> > $_SESSION['contents']['31{4}3{8}5']['attributes'] = array();
> > $_SESSION['contents']['31{4}3{8}5']['attributes']['4'] = 3;
> > $_SESSION['contents']['31{4}3{8}5']['attributes']['8'] = 5;
> > ....
> Abgesehen von der Vierdimansionalität, in der _ich_ mich wahrscheinlich verirren täte, kannst du eine foreach-Schleife anweisen, den Key eines Arrayelements auszugeben.
So wie es aussieht, handelt es sich nicht um vier Dimensionen sondern um eine (unregelmäßige) Baumstruktur mit einer Verschachtelungstiefe von maximal 4 Levels (wenn man das cart unbeachtet lässt). quantity beispielsweise befindet sich in Level 3 und hat nur einen skalaren Wert.
> Ansonsten fällt mir da noch die Funktion key() ein.
key() eignet sich nicht für das Arbeiten mit foreach. für key() wird das Weitersetzen des internen Array-Zeigers benötigt (next()). foreach kümmert sich aber nicht um diesen.
echo "$verabschiedung $name";
Der folgende Beitrag wurde am 16. 08. 2006, 13:08 Uhr von Thomas veröffentlicht.
Hi nochmal!
Danke für den Tipp mit key, das werd ich dann einfach umprogrammieren...
Ich wollte das ['cart'] rauslöschen da ich dachte dass es unwichtig is, hab jedoch jetzt noch ein problem entdeckt :-(
['cart'] ist ein object und kein array! Wie kann ich denn dann die ['contents'] auslesen wenn ['cart'] ein object is?
thx
Thomas
Der folgende Beitrag wurde am 16. 08. 2006, 13:16 Uhr von dedlfix veröffentlicht.
echo $begrüßung;
> ['cart'] ist ein object und kein array! Wie kann ich denn dann die ['contents'] auslesen wenn ['cart'] ein object is?
So wie bei Objekten üblich mit der Notation $object->property statt $array['key'].
echo "$verabschiedung $name";
Der folgende Beitrag wurde am 16. 08. 2006, 15:26 Uhr von Mathias Brodala veröffentlicht.
Hallo Thomas.
> wie erhalte ich aus dem string '31{1}1{2}6{100}12' nur den Wert VOR der ersten geschwungenen Klammer => 31
> anderes Bsp. '4{523}32{5}24' => 4
Recht einfach, indem du mittels strpos nach der ersten geschweiften Klammer suchst und diese Positionsangabe zum Extrahieren eines Teilstrings per substr verwendest.
Einen schönen Mittwoch noch.
Gruß, Mathias
--
sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
„It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
[HTML Design Constraints: Logical Markup]
© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4