michel: array und session

hallo zusammen

folgendes problem stellt sich mir:
ich möchte aus einer db heraus daten auf einer site anzeigen lassen und nach auswahl einiger daten diese per session an eine weitere site übergeben. die anzeige auf der ersten site funktioniert auch einwandfrei...allein, an die nächste site wird, egal was gewählt wurde, immer nur der letzte array übergeben. hier mal die quelle:
********
<?
//**datei waren.php
ini_set("session.use_cookies", "0");
ini_set("url_rewriter.tags",   "");

session_start();
session_register('warenkorb');

$link = mysql_connect("localhost", "user", "passwort") or die ("Keine Verbindung möglich!");
mysql_select_db("waren", $link ) or die("Auswahl der Datenbank fehlgeschlagen");

$query = ("select * from gehaeuse")  or die ("Auswahl der Tabelle fehlgeschlagen");
$result = mysql_query($query);

while($row = mysql_fetch_array($result)){
$i=1;
$waren = array($i => array('bild' => $row['imageURL'], 'name' => $row['gehaeuseName'], 'beschreibung' => $row['beschreibung'], 'preis' => $row['gehaeusePreis']));
$i++;

}
  foreach ($waren as $id => $produkt) {
 echo "$id <br>";
    printf('<p>
            <table>
            <tr>
            <td width="200" align="left">
            <b>%s</b>
            </td>
            <td width="500" align="left">
            %s
            </td>
            <td width="100" align="right">
            <b> %01.2f Euro</b>
            </td>
            <td width="300" align="right">
            <a href="bestellen.php?id=%d&%s">Bestellen</a>
            </td>
            </tr>
            </table>
            </p>',

$produkt['name'],
           $produkt['beschreibung'],
           $produkt['preis'],

$id,
           SID
          );
}
mysql_close($link);
?>
*****hierhin sollen die daten übergeben werden
<?php
//datei index.php
include_once "waren.php";
if (isset($_SESSION['warenkorb']) &&
   !empty($_SESSION['warenkorb'])) {

print "Sie haben folgende Waren bereits ausgewählt:";
    print "<ul>";
    foreach ($_SESSION['warenkorb'] as $id) {
        printf('<li>
                %s
                (<a href="entfernen.php?id=%d&%s">
                   Entfernen
                </a>)
                </li>',
               $waren[$id]['name'],
               $id,
               SID
              );
    }
    print "</ul>";
}
?>
******hier sollen die daten dann weiterverarbeitet werden

<?php
//datei bestellen.php
include_once "waren.php";

if (!isset($_GET['id'])) {
    die("Kein Produkt ausgewählt");
}

// Wenn das Produkt noch nicht gekauft wurde...
if (!isset($_SESSION['warenkorb']) ||
    !in_array($_GET['id'], $_SESSION['warenkorb'])) {

// In den Warenkorb legen:
    $_SESSION['warenkorb'][] = $_GET['id'];
}
?>
<p>
    Das Produkt wurde ihrem Warenkorb hinzugefügt.<br />
    <a href="index.php?<?php print SID; ?>">
  Zurück zur Startseite
</a>
</p>
****zum entfernen der Einträge

<?php
//datei entfernen.php
include_once "waren.php";

// Wenn kein Produkt ausgewählt wurde, oder
// das Produkt nicht im Warenkorb ist...
if (!isset($_GET['id']) ||
    !in_array($_GET['id'], $_SESSION['warenkorb'])) {

print("Sie haben dieses Produkt noch nicht bestellt,
           oder kein Produkt ausgewählt");
}
else {
    foreach ($_SESSION['warenkorb'] as $id => $produkt) {
        if ($produkt == $_GET['id']) {
            unset($_SESSION['warenkorb'][$id]);
        }
    }
    print "Das Produkt wurde aus ihrem Warenkorb gelöscht.";
}
?>
<br />
<a href="index.php?<?php print SID; ?>">
  Zurück zur Startseite
</a>

*******
hoffentlich war das jetzt nicht zu viel quelle. ich denke das problem liegt auf der waren.php.

danke im voraus
michel

  1. HallO!

    hoffentlich war das jetzt nicht zu viel quelle. ich denke das problem liegt auf der waren.php.

    das war in der Tat zu viel.

    Es liegt daran dass Du den Array mit den Waren immer überschreibst und so nur der letzte Eintrag drin sein kann!

    Grüße
    Andreas

    1. hallo andreas

      Es liegt daran dass Du den Array mit den Waren immer überschreibst und so nur der letzte Eintrag drin sein kann!

      hast du vieleicht einen lösungsvorschlag? ich häng an diesem einem problem schon seit zwei tagen  und so langsam sehe ich den wald vor bäumen nicht mehr. dummerweise ist dies ein teil eines projekts in meiner ausbildung und muss bis zum nächsten dienstag fertig sein. wenn du mir also den ein oder anderen tip geben kannst wäre ich dir mehr als dankbar.

      gruß
      michel

      1. Hi!

        hast du vieleicht einen lösungsvorschlag? ich häng an diesem einem problem schon seit zwei tagen  und so langsam sehe ich den wald vor bäumen nicht mehr. dummerweise ist dies ein teil eines projekts in meiner ausbildung und muss bis zum nächsten dienstag fertig sein. wenn du mir also den ein oder anderen tip geben kannst wäre ich dir mehr als dankbar.

        Wie ich schon sagte überschreibst Du immer den Array in den Du die Waren speicherst. Du willst aber vermutlich ein Element anhängen, also liest Du am besten mal:

        http://php-faq.de/q/q-arrays-einfuegen.html

        Grüße
        Andreas