Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] tablica dwuwymiarowa jak pobrac dane ?
Forum PHP.pl > Forum > Przedszkole
kielich
Witam mam sobie tablice

Kod
echo "<pre>";
  print_r($_SESSION['ksiazka']['nazwa']);
  echo '
  
  
  ';
  print_r($_SESSION['koszyk']);
  echo "</pre>";
  
  $tab[]=$_SESSION['ksiazka'];
  $tab[]= $_SESSION['koszyk'];
  echo "<pre>";
  print_r($tab);
  echo "</pre>";
  
  
  -------------------------
  <pre>jakis tam laptop
  
  
  Array
  (
      [5] => 7
      [6] => 1
      [4] => 16
  )
  </pre><pre>Array
  (
      [0] => Array
          (
              [id] => 4
              [nazwa] => jakis tam laptop
              [nazwa_kategorii] => laptopy
              [opis] => fv
              [status] => 1
              [foto] => lap.jpg
              [foto1] =>
              [foto2] =>
              [foto3] =>
              [cena] => 2500.98
              [czas_wystawienia] => 2009-06-29 23:03:29
              [promo] => 0
              [wysylka] =>
              [gw] =>
              [stan] =>
          )
  
      [1] => Array
          (
              [5] => 7
              [6] => 1
              [4] => 16
          )
  
  )
  </pre>


chce pobrac wszystki nazwy co sa w koszyk mam np. 2 produkty w wyciga mi tylko 1 "jakis tam laptop"
duxo czytałem juz od wczoraj no ale .... sad.gif nic nie moge wymysle bardzo prosze o jaką kolwiek pomoc
Wicepsik
  1. <?php
  2. foreach($_SESSION['ksiazka'] as $key => $value){
  3. echo 'Klucz:  '.$key.'  - wartość:  '.$value.'<br/>';
  4. }
  5. ?>
kielich
no tak fajnie wszystko ładnie

Klucz: id - wartość: 6
Klucz: nazwa - wartość: ksiazk jakas
Klucz: nazwa_kategorii - wartość: ksiazki
Klucz: opis - wartość: dgfdgfdgdgfdgdfgdfgdfgdfgdfgdfgdfgdfgiudfd
Klucz: status - wartość: 1
Klucz: foto - wartość: book1.jpg
Klucz: foto1 - wartość: book1.jpg
Klucz: foto2 - wartość: book1.jpg
Klucz: foto3 - wartość:
Klucz: cena - wartość: 59.99
Klucz: czas_wystawienia - wartość: 2009-06-30 16:36:40
Klucz: promo - wartość: 1
Klucz: wysylka - wartość: 7,50
Klucz: gw - wartość: BRAK
Klucz: stan - wartość: Nowa

ale to jest 1 produkt nowo dodany a ja chciałem mieć wszystkie nazwy jakie są w koszyku sad.gif kurcze ... poratujcie jakos
230005
Jeśli ten kod co Wicepsik podał nie wypisuje całej zawartości koszyka, to znaczy że jest w nim jedna pozycja. Sprawdź lepiej czy dodając produkt nie nadpisujesz poprzednich wartości.
kielich
nom w tym poscie mam tam wszystko lecz zrobił sie burder smile.gif to zrobiłem nowy tylko do tablicy z ktara mecze sie juz od 2 dni
[PHP][MYSQL] extract,koszyk,sesja= problem
Wicepsik
To zrób w sesji:
Jeżeli osoba dodaje produkt to dodajesz do $_SESSION['ile'] +1
Jeżeli osoba usuwa produkt to odejmujesz od $_SESSION['ile'] -1
Początkowa wartość to 0

No i dodajesz do
  1. <?php
  2. $_SESSION['koszyk'][$_SESSION['ile']]
  3. ?>
230005
Przeczytałem twojego posta pięć razy Kielich i nic nie rozumiem. Mógłbyś napisać jeszcze raz, tym razem bardziej po polsku smile.gif? Sprawdziłeś i rzeczywiście nadpisuje, czy jak?
kielich
to jest mój koszyk
Kod
    <?php

@ $nowy = $_GET['nowy'];



  if($nowy)

  {

    // wybrany nowy produkt

    if(!isset($_SESSION['koszyk']))

    {

      $_SESSION['koszyk'] = array();

      $_SESSION['produkty'] = 0;

      $_SESSION['calkowita_wartosc'] ='0';

    }

    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']);



  }

  if(isset($_POST['zapisz']))

  {  

    foreach ($_SESSION['koszyk'] as $isbn => $ilosc)

    {

      if($_POST[$isbn]=='0')

        unset($_SESSION['koszyk'][$isbn]);

      else

        $_SESSION['koszyk'][$isbn] = $_POST[$isbn];

    }

    $_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 "<span style='border:1px solid silver; color:#993a4e; font-weight:bold; padding:10px 250px 10px 25px; width:250px; line-height:100px;'>Koszyk jest pusty exclamation.gif!</span>";

header ('Refresh: 1; url=index.php');

  }
/* tu tylko tak na chwile bo patrze czy działa  :) */
echo "<pre>";
print_r($_SESSION['ksiazka']['nazwa']);
echo '<br /><br /><br />';
print_r($_SESSION['koszyk']);
echo "</pre>";

$tab[]=$_SESSION['ksiazka'];
$tab[]= $_SESSION['koszyk'];
echo "<pre>";
print_r($tab);
echo "</pre>";



foreach($_SESSION['koszyk'] as $nazwa => $value){
echo 'Klucz:  '.$nazwa.'  - wartość:  '.$value.'<br/>';
}


no chyba sie nadpisuje bo w koszyka mam powiedzmy 5 produktów i chce zeby na innej stronie byly same nazwy (ktore umieszcze w bazie) a jest tylko ostatio dodana do kosza

teraz luknijcie poprawiłem bo zle wkleiłem

Wicepsik

czy możesz podac przykład widzę ze znasz sie na zeczy dlatego bardzo cie prosze poradz Coś człowiekowi .... blinksmiley.gif


kurde czy na tym forum naprawde nie ma osoby która mogłaby pomóc questionmark.gifquestionmark.gif?exclamation.gif!!!
zbig
Witam !
Z tego co widze to w sesji koszyk nie masz danych o produkcie jedynie informacje o ilosci ksiazek zgrupowanych przez isbn , dlatego z sesji nie wyciagniez danych ksiazki jedynie jej isbn

Pozdrawiam
kielich
no tak ale nie w tym rzecz
mam taka funkcjie która mi pobiera ksiazke w funkcji wyswietl_koszyk
Kod
foreach ($koszyk as $isbn => $ilosc)

  {

    $ksiazka = pobierz_dane_ksiazki($isbn);
    $_SESSION['ksiazka']=$ksiazka;

    echo '<tr>';



      echo '<td align = center>';

  





           echo '<img src="Foto/'.$ksiazka['foto'].'" border="0" ';

           echo 'width = "150px" height = "130px;" />';

    





      echo '</td>';





    echo '<td align = left>';

    echo '<a href = "opis.php?kategoria='.$ksiazka['nazwa_kategorii'].'&nazwa='.$ksiazka['id'].'" style="color:black; text-decoration:none; margin-left:10px;">'.$ksiazka['nazwa'].'</a>';

    echo '</td><td align = center>PLN: '.str_replace(',','.',$ksiazka['cena']);

    echo '<td align = center>';

    // jeżeli zmiany są dozwolone, ilości znajdują się w polach tekstowych

    if ($zmiana == true)

      echo "<input type = 'text' name = \"$isbn\" value = \"$ilosc\" size = \"3\">";

    else

      echo $ilosc;

    echo '</td><td align = "center">PLN '.str_replace(',','.',$ksiazka['cena']*$ilosc).'<a href="delete_produkt.php?nazwa='.$ksiazka['id'].'" alt = "Usuń" title= "usuń"  ><span class="basket"></span></a></td></tr>';

    



  }

i jak widac do zminnej ksiazka przypisałem sobie zminna
Kod
  $ksiazka = pobierz_dane_ksiazki($isbn);
    $_SESSION['ksiazka']=$ksiazka;

no i w koszyk dałem sobie 3 produkty i teraz robie jak Wicepsik poradził
Kod
echo "<pre>";
$_SESSION['ile']=0;
if(isset($_SESSION['koszyk'][$nowy]))
{
$_SESSION['ile']++;
$_SESSION['ksiazka']['nazwa'][$_SESSION['ile']];
}

foreach($_SESSION['ksiazka'] as $nazwa => $value){
echo 'Klucz:  '.$nazwa.'  - wartość:  '.$value.'<br/>';
}
echo "</pre>";

i wyswietla mi tylko nowo todany produkt (jego nazwe) ale w koszyku wszytsko jest ładnie nazwa-fota-cena itp
PS.same nazwy musze wiciagnać ponieważ musze je umieścic w bazie po złóżeniu zamówienia no a funkcji wyswietl koszyk raczej do bazy nie wsadze tongue.gif
zbig
Wiem w koncu co Cie boli smile.gif .

W twojej funkcji wyswietl koszyk zastosuj niezalezna sesje do zebrania ksiazek do wyswietlenia.
  1. <?php
  2. $counter = 0;
  3. foreach ($koszyk as $isbn => $ilosc)
  4. {
  5.      $ksiazka = pobierz_dane_ksiazki($isbn);
  6.      $_SESSION['ksiazka']=$ksiazka;
  7.  
  8.      $_SESION[booksToDisplay][$counter] = $ksiazka;
  9.      $counter ++;
  10.      
  11.      //twoja dalsza czesc kodu .......
  12.  
  13. }
  14. ?>


a dalej

  1. <?php
  2. foreach($_SESION[bookToDisplay] as $v)
  3. {
  4.     echo $v["'nazwa'"];
  5. }
  6. ?>



Jakos tak mniej wiecej smile.gif . Mam nadzieje ze o to Ci chodzi
kielich
nom teraz nic nawet ostation dodanej nazwy nie pokazuje NIC
zbig
Masz jedynie do twojej istniejacej juz petli dodac te dwie linijki

  1. <?php
  2. $_SESION[booksToDisplay][$counter] = $ksiazka;
  3.       $counter ++;
  4. ?>



Nie maja one wplywu na dalsza czesc kodu . Twoj poprzedni kod musi pozostac bez zmian

EDIT

sorry jest
  1. <?php
  2. echo $v["'nazwa'"];
  3. ?>


powinno byc
  1. <?php
  2. echo $v["nazwa"];
  3. ?>
kielich
zbig

no dokładnie
teraz mam w funkacjach
Kod
foreach ($koszyk as $isbn => $ilosc)

  {

    $ksiazka = pobierz_dane_ksiazki($isbn);
    $_SESSION['ksiazka']=$ksiazka;
$_SESION[booksToDisplay][$counter] = $ksiazka;
     $counter ++;

    echo '<tr>';



      echo '<td align = center>';

  





           echo '<img src="Foto/'.$ksiazka['foto'].'" border="0" ';

           echo 'width = "150px" height = "130px;" />';

    





      echo '</td>';


.......


a na innej podstronie wyswietlam sobie
Kod
foreach($_SESION[bookToDisplay] as $v)
{
    echo $v["'nazwa'"];
}
zbig
Spojrz na moj poprzedni edit

nie $v["'nazwa'"]; a $v["nazwa"];
kielich
juz tak od razu zrobiłem i NIC kurcze sad.gif
zbig
A co pokazuje ci var_dump($_SESION[bookToDisplay])?

EDIT

jeszcze jedna literowka sad.gif

nie $_SESION[bookToDisplay] a $_SESION[booksToDisplay]

zapisujesz do $_SESION[booksToDisplay] dlatego w takiej samej sesji powinienes szukac smile.gif
kielich
NULL sad.gif
zbig
zobacz na ostani edit tam jest odpowiedz
kielich
OKKKKKKKKKKKKK działaaaaaaaa tongue.gif

dałem
Kod
$_SESSION['ile'][$counter] = $ksiazka;
     $counter ++;

i na stonie
Kod
foreach($_SESSION['ile'] as $v)
{
    echo $v["nazwa"];
}


ale ze mnie bardzo nakierowałeś dostajesz songa smile.gif

chyba tez tak moze być co nie questionmark.gif

co do

$_SESION[booksToDisplay]

z ciekawosci spradziłem i tez nie działa ale ale probelm ogolnie rozwiązany smile.gif
thx
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.