Array in SESSIONS
jom
- php
0 Tobias Kloth0 jom0 Dennis0 jom0 Tobias Kloth0 jom0 Tobias Kloth0 Tom
0 Andreas Korthaus
Hallo,
Folgendes script wird ausgeführt wenn ich versuche einen Artikel(=$_REQUEST["artid"]) und seine Menge(=$_REQUEST["artq"]) in der Session(=$_SESSION["basket"]) zu speichern
session_start();
$art["artid"][]=$_REQUEST["artid"];
$art["artq"][]=$_REQUEST["artq"];
$_SESSION["basket"]=$art;
Wie kann ich jetzt alle Artikel printen??
Ich habe es folgendermassen versucht, aber es funktioniert nicht. Was mache ich falsch?
foreach($_SESSION["basket"]["artq"] as $q => $count)
{
print $q."<br>";
}
print "anzahl=".$count;
Hallo jom,
$art["artid"][]=$_REQUEST["artid"];
damit legst machst du aus $art['artid'] ein Array, das ein Element enthält (mit dem Key 0 und als Wert das Array aus $_REQUEST['artid']) - ich vermute, du willst eher
$art['artid'] = $_REQUEST['artid'];
(also ohne die zusätzlichen »[]«)
Wie kann ich jetzt alle Artikel printen??
du möchtest die Artikel /ausgeben/, oder? (»printen« gibt es nicht)
Ich habe es folgendermassen versucht, aber es funktioniert nicht.
definiere "funktioniert nicht".
Grüße aus Nürnberg
Tobias
$_REQUEST["artid"] und $_REQUEST["artq"] sind keine array sondern einfach nur die Artikel ID und parallel die menge dieser Artikel(also wenn ich auf den button 'in den warenkorb' klicke);
Also ich will damit ereichen das bei jedem aufruf dieser funktion das array $ary mit dem schlüssel artid(die artikel id) und artq(die menge der artikel) um ein Wert erhöht wird, und das dieses 2 dimensionale array in $_SESSION["basket"] gespeichert wird.
Und mit printen meinte ich, das die werte aller Artikel im warenkorb ausgeben will,die in der SESSION gespeichert sind, um mein query zu schreiebn.
was muss ich denn tun?
Hi jom,
Und mit printen meinte ich, das die werte aller Artikel im warenkorb ausgeben will,die in der SESSION gespeichert sind, um mein query zu schreiebn.
Lasse dir erst mal durch
echo "<pre>";
print_r($_SESSION);
echo "</pre>";
ausgeben, wie überhaupt die Struktur in deinem Session Array aussieht.
MfG, Dennis.
Hallo,
Sieht nun folgendermassen aus:
Array
(
[basket] => Array
(
[artid] => 1213
[artq] => 1
)
)
Wie kann ich denn jetzt bei artid und artq wert hinzufügen und wie kann ich sie nun ausgeben?
Hallo jom,
Array
(
[basket] => Array
(
[artid] => 1213
[artq] => 1
)
)
wenn ich das richtig verstehe, möchtest du sowas:
Array
(
[basket] => Array
(
[0] => Array
(
[artid] => 3445
[artq] => 3
)
[1] => Array
(
[artid] => 8877
[artq] => 1
)
)
)
, oder?
in dem Fall brauchst du in der Zeile $_SESSION["basket"]=$art; ein Satz Klammern vor dem »=«, also:$_SESSION["basket"][]=$art; (bei der Zuweisung an $art[...] aber keine). Übersichtlicher ist es aber imho so:
$_SESSION["basket"][] = array(
'artid' => $_REQUEST['artid'],
'artq' => $_REQUEST['artq']
);
Wie kann ich denn jetzt bei artid und artq wert hinzufügen und wie kann ich sie nun ausgeben?
ausgeben kannst du das ganze jetzt mit
foreach($_SESSION['basket'] as $datensatz){
echo 'ID: '.$datensatz['artid'].' - Anzahl: '.$datensatz['artq'];
}
Grüße aus Nürnberg
Tobias
hallo,
das funktioniert soweit ganz gut.
Nur noch eine Frage.
Warum habe ich immer nach dem 1 wert "[artq] =>" stehen ?
woher kommt das ??
Es kommt immer vor dem 2 array
=====================================
Array
(
[basket] => Array
(
[0] => Array
(
[artid] => 54
[artq] => 1
)
[artq] =>
[1] => Array
(
[artid] => 55
[artq] => 1
)
[2] => Array
(
[artid] => 62
[artq] => 10
)
)
)
========================================
Hallo jom,
Warum habe ich immer nach dem 1 wert "[artq] =>" stehen ?
wie sieht dein Code jetzt aus?
Grüße aus Nürnberg
Tobias
Hello,
Warum habe ich immer nach dem 1 wert "[artq] =>" stehen ?
woher kommt das ??
Es kommt immer vor dem 2 array
Gegenfrage:
Wann hast Du denn Deine Session das letzte Mal geleert, bzw
$_basket = array();
das Array basket wieder freigegeben und neu ninitialisiert?
Villeicht stammt Dein [artq] noch von einem vorangegangenen Versuch?
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hallo Tobias!
du möchtest die Artikel /ausgeben/, oder? (»printen« gibt es nicht)
Und ob - man kann sie sogar essen: http://de.wikipedia.org/wiki/Printen ;-)
Aachen ist quasi zugepflastert mit Printen-Läden *g*
Grüße
Andreas
Hallo Andreas,
du möchtest die Artikel /ausgeben/, oder? (»printen« gibt es nicht)
Und ob - man kann sie sogar essen: http://de.wikipedia.org/wiki/Printen ;-)
erstens schreibt sich das mit einem großen »P«, und zweitens geht nichts über richtige Nürnberger Lebkuchen :-)
Grüße aus Nürnberg
Tobias
Hallo Tobias!
du möchtest die Artikel /ausgeben/, oder? (»printen« gibt es nicht)
Und ob - man kann sie sogar essen: http://de.wikipedia.org/wiki/Printen ;-)
erstens schreibt sich das mit einem großen »P«, und zweitens geht nichts über richtige Nürnberger Lebkuchen :-)
;-)
Grüße aus Aachen,
Andreas
Hallo Andreas,
du möchtest die Artikel /ausgeben/, oder? (»printen« gibt es nicht)
Und ob - man kann sie sogar essen: http://de.wikipedia.org/wiki/Printen ;-)
erstens schreibt sich das mit einem großen »P«, und zweitens geht nichts über richtige Nürnberger Lebkuchen :-)
Nimm das: http://googlefight.com/cgi-bin/compare.pl?q1=Aachener+Printen&q2=N�rnberger+Lebkuchen&B1=Make+a+fight!&compare=1&langue=us
der Google-Fight taugt nichts - mit http://www.google.com/search?q=Nürnberger+Lebkuchen bekomme ich 40.300 Suchtreffer - http://www.google.com/search?q=Aachener Printen findet dagegen nur 15.100 - also haben die Nürnberg Lebkuchen gewonnen :-P
Grüße aus Nürnberg
Tobias