Autor Zpráva
vojtan
Profil
Vytvořil jsem nákupní košík pomocí session

$_SESSION['kosik'][intval($_GET['id'])] = array('pocet' => intval($_POST['pocet']), 'cena' => intval($_POST['cena']));


A potřebuji vypsat položky z košíku, které se budou vytahovat z databáze pomocí id, ale nevím jak z pole vypsat jednotlivé proměnné, abych měl zvlášť jako proměnou počet kusů, cenu a id. Asi to jde nějak přes funkci foreach, ale nějak to nemůžu zprovoznit. Děkuji za radu
Darker
Profil
$idecka = array_keys($_SESSION["kosik"]); //ciselne jednourovnove pole obsahujici veci v kosiku
/**NEBO**/
$idecka=array();
$i=0;
foreach ($_SESSION['kosik'] as $key => $value)
{
$idecka[$i]=array(
               "ID" => $key,
               "pocet"=> $value["pocet"],
               "cena" => $value["cena"]

);
$i++;
}
vojtan
Profil
A jak to teda vypíšu ty hodnoty, tady mám ukázku kódu a potřebuji z pole získat id, cenu a počet kusů ke každému objednanému produktu

if ($_SESSION["kosik"]) {
	echo '<table border="0" width="130">';
	foreach ($_SESSION["kosik"] as $polozka) {
	$id = 
	$cena =
	$pocet =
	
	$result = mysql_query("SELECT id, nazev, fotografie, katalog FROM sortiment WHERE id = '$id'");
	while ($row = mysql_fetch_assoc($result)) {
	$id_p = $row["id"];
	$nazev = $row["nazev"];
	$fotografie = $row["fotografie"];
	$cena2 = $cena * $pocet;
	$total =  $total + $cena2;
	$katalog = $row["katalog"];
	$produkt .= $nazev . " (" . $katalog. ") ; ";
	echo '<tr><td><b>'. $nazev. '</b><br /><img src="sortiment/miniatury/'. $fotografie .'" vspace="5"><br />' .
                          $cena. ',- Kč &nbsp;&nbsp; <a href="kosik_del.php?id=' . $id_p . '"><img src="admin/pics/delete.png"
                           border="0"></a><hr>
                           </td></tr>';
    }
	echo '</table>';
	mysql_free_result($result);
	}
    
}
Darker
Profil
Už jsem to napsal výše, nemám co dodat. Akorát používej
if(isset($variable))
/*místo*/
if($variable)

A taky bych ti doporučil ušetřit si práci tím, že budeš přetypovávat na integer takto:
$int=(int)$string;
/*místo*/
$int=intval($string);

Z toho cos předvedl mám pocit že sis [#2] ani nepřečetl.
DarkMeni
Profil *
WHERE id='".$id."'
ti najde jen jedno idečko, lepší bude používat asi OR, zkusil jsem něco sestrojit ale předtím než jsem to odeslal napsal Darker kratší a lepší kód, jinak ten můj vypadal asi takto:
$id = "1;2;3;4;6;8"; // $_SESSION["id"]
$pocet = "1ks10ks5ks4ks1ks2ks"; // $_SESSION["pocet"];
$cena = "20kc100kc50kc10kc3kc5kc"; // $_SESSION["cena"];
$pole_id = explode(";",$id);
$pole_pocet = explode("ks",$pocet);
$pole_cena = explode("kc",$cena);
$sql_query = "SELECT * FROM neceho WHERE id='-1'";
foreach($pole_id as $id){
  $sql_query .= " OR id='".$id."'";
}
$result = mysql_query($sql_query);
$rows = mysql_num_rows($result);
if($rows==count($pole_pocet) AND $rows==count($pole_cena)){
  echo "<table><tr><td>Produkt:</td>";
  while($produkt = mysql_fetch_array($result)){echo "<td>".$produkt["produkt"]."</td>";}
  echo "</tr><tr><td>Počet:</td>";
  foreach($pole_pocet as $pocet){echo "<td>".$pocet."</td>";}
  echo "</tr><tr><td>Cena:</td>";
  foreach($pole_cena as $cena){echo "<td>".$cena."</td>";}
  echo "</tr><tr><td>Celkem:</td>";
  $hodnot = count($pole_cena);
  for($a=0;$a<$hodnot;$a++){
    $cena = $pole_cena[$a];
    $pocet = $pole_pocet[$a];
    $celkem = $pocet*$cena;
    echo "<td>".$celkem."</td>";
  }
  echo "</tr></table>";
}
Darker
Profil
DarkMeni:
ti najde jen jedno idečko
Jelikož ID představuje jednotlivé výrobky je nanejvýš pravděpodobné, že se v tomto sloupci nevyskutují shodné hodnoty.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0