Mam koszyk na zakupy. Dziala dobrze jednak chcialbym aby uzytkownik mial mozliwosc wyboru atrybutu przedmiotu ktory kupuje (np. kolor zielony). Formularz i wszystko inne przygotowane, tylko nie moge sobie poradzic z tym aby przy wyswietlaniu koszyka 1 produkt ale z roznymi atrybutami byly wyswietlane oddzielnie i traktowane jako rozne produkty. Obecnie jesli produkt zostaje poraz kolejny dodany do koszyka to zostaje zwiekszona ilosc zakupionych produktow o tym id o 1. oto kod:
Kod
      @ $nowy = $_GET['nowy'];
    $stat = $_POST['stat']; //w tej zmiennej jest zapisany atrybut dodawanego produktu
       if($nowy)
       {
         // wybrany nowy produkt
         if(!isset($_SESSION['koszyk']))
         {
           $_SESSION['koszyk'] = array();
           $_SESSION['produkty'] = 0;
           $_SESSION['calkowita_wartosc'] ='0.00';
                             }
         if(isset($_SESSION['koszyk'][$nowy]))
           $_SESSION['koszyk'][$nowy]++;
         else
         $_SESSION['koszyk'][$nowy] = 1;
         $_SESSION['calkowita_wartosc'] =      
                                           oblicz_wartosc($_SESSION['koszyk']);
         $_SESSION['produkty'] = oblicz_produkty($_SESSION['koszyk']);
     $_SESSION['calkowita_wartosc_netto'] =      
                                           oblicz_wartosc_netto($_SESSION['koszyk']);
       }
       if(isset($_POST['zapisz']))
       {  
         foreach ($_SESSION['koszyk'] as $id => $ilosc)
         {
           if($_POST[$id]=='0')
             unset($_SESSION['koszyk'][$id]);
           else
             $_SESSION['koszyk'][$id] = $_POST[$id];
         }
         $_SESSION['calkowita_wartosc'] =
     oblicz_wartosc($_SESSION['koszyk']);
         $_SESSION['produkty'] = oblicz_produkty($_SESSION['koszyk']);
       }
    
    
    
       if($_SESSION['koszyk']&&array_count_values($_SESSION['koszyk']))
         wyswietl_koszyk($_SESSION['koszyk']);
       else
       {
         echo '<p>Koszyk jest pusty</p>';
         echo '<hr />';
       }
       $cel = 'indeks.php';
    
       // jeżeli do koszyka został właśnie dodany przedmiot
       // kontynuacja zakupów w danej kategorii
       if($nowy)
       {
         $dane =  pobierz_dane_ksiazki($nowy);
         if($dane['idkat'])    
           $cel = 'pokaz_kat.php?idkat='.$dane['idkat'];
       }
         ?>
       <a href="http://www.<?php echo "$login"; ?>.creoharta.pl">Kontynuacja zakupów</a>
  
          <a href="http://www.<?php echo "$login"; ?>.creoharta.pl/kasa.php">Zrealizuj zamówienie</a>


przydać może się też kod funkcji wyswietl_koszyk
Kod
function wyswietl_koszyk($koszyk, $zmiana = true, $obrazki = 0)
{
   // wyświetlenie zawartości koszyka
   // opcjonalnie pozwala na zmiany (true lub false)
   // opcjonalnie dołącza obrazki(1 — tak, 0 — nie)

   echo '<center>
<table border = 0 width = 95% cellspacing = 0>
         <form action = pokaz_kosz.php method = post>
         <tr><th colspan = '. (1+$obrazki) .' bgcolor="#cccccc" align="left">Produkt</th>
         <th bgcolor="#cccccc" align="left">Cena</th><th bgcolor="#cccccc" align="left">Ilość</th>
         <th bgcolor="#cccccc" align="left">Netto</th>
         <th bgcolor="#cccccc" align="left">Brutto</th></tr>';

   // wyświetlanie każdego produktu jako wiersza tabeli
   foreach ($koszyk as $id => $ilosc)
   {
     $ksiazka = pobierz_dane_ksiazki($id);
        
         echo '<tr>';
     if($obrazki ==true)
     {
       echo '<td align = left>';
       if (file_exists("obrazki/$id.jpg"))
       {
          $wielkosc = GetImageSize('obrazki/'.$id.'.jpg');  
          if($wielkosc[0]>0 && $wielkosc[1]>0)
          {
            echo '<img src="obrazki/'.$id.'.jpg" border="0" ';
            echo 'width = '. $wielkosc[0]/3 .' height = ' .$wielkosc[1]/3 . ' />';
          }
       }
       else
          echo '&nbsp;';
       echo '</td>';
     }
         $stat = atrybut;
         echo '<td align = left>';
     echo '<a href = "produkt-'.$id.'.html">'.$ksiazka['nazwa'].'</a>
<i>'.$stat.'</i>';
     echo '</td><td align = left>PLN '.number_format($ksiazka['netto'], 2);
     echo '</td><td align = left>';
     // jeżeli zmiany są dozwolone, ilości znajdują się w polach tekstowych
     if ($zmiana == true)
       echo "<input type = 'text' name = \"$id\" value = \"$ilosc\" size = \"3\">";
     else
       echo $ilosc;
              echo '</td><td align = "left">PLN '.number_format($ksiazka['netto']*$ilosc,2)."</td>";
     echo '</td><td align = "left"><b>PLN '.number_format($ksiazka['cena']*$ilosc,2)."</td></tr>\n";
   }
   // wyświetl wiersz sumy
     $wartnetto = number_format(oblicz_wartosc_netto($_SESSION['koszyk']), 2);
   echo "<tr>
           <th colspan = ". (2+$obrazki) ." bgcolor=\"#cccccc\" align=\"left\">&nbsp;</td>
           <th align = \"left\" bgcolor=\"#cccccc\">
               ".$_SESSION['produkty']."
           </th><td align = \"left\" bgcolor=\"#cccccc\">PLN $wartnetto</td>
           <th align = \"left\" bgcolor=\"#cccccc\" align=\"left\">
               PLN ".number_format($_SESSION['calkowita_wartosc'], 2).
           '</th>
         </tr>';
   // wyświetl przycisk zapisujący zmiany
   if($zmiana == true)
   {
     echo '<tr>
             <td colspan = '. (2+$obrazki) .' align=\"left\">&nbsp;</td>
             <td align = left>
               <input type = hidden name = zapisz value = true />  
               <input type = image src = "obrazki/zapisz-zmiany.gif"
                      border = "0" alt = "Zapisz zmiany" heigth = 50 width = 135>
             </td>
             <td>&nbsp;</td>
         </tr>';
   }
   echo '</form></table></center>';
}