Preluare variabile din sesiune

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
giulian9
Mesaje: 28

Preluare variabile din sesiune

Salut ,

Nu am reusit sa inteleg cum se pot pot prelua variabilele dintr-o sesiune php si sa le introduc intr-o baza de date. E de ajuns sa folosesc ceva de genul
$variabilaq = $_SESSION['variabila']; sau ?

Folosesc ceva de genul pentru afisare:

Cod: Selectaţi tot

if(!empty($_SESSION["cart"])) {
    $total = 0;
    foreach($_SESSION["cart"] as $keys => $values)
    {
  ?>
  <tr>
    <td><?php echo $values["item_name"]; ?></td>
    <td><?php echo $values["item_quantity"]; $quantity=$values["item_quantity"]; ?></td>
    <td>&euro; <?php echo $values["item_price"]; ?></td>
    <td>&euro; <?php echo number_format($values["item_quantity"] * $values["item_price"], 2);?></td>
    <td><a href="index.php?action=delete&id=<?php echo $values["item_id"]; ?>">
    <span class="text-danger">Loeschen</span></a></td>
  </tr>
  <?php
      $total = $total + ($values["item_quantity"] * $values["item_price"]);
    }
  ?>
  <tr>
    <td colspan="3" align="right">Total</td>
    <td align="right">&euro; <?php echo number_format($total, 2); ?></td>
    <td></td>

MarPlo
Salut,
In primul rand, cand lucrezi cu $_SESSION, se adauuga session_start(); la inceputul scriptului php.
$_SESSION e un array cu valori; poate fi un array simplu sau array multi-dimensional; depinde cum structurezi si salvezi datele in el.
Deci, cu $_SESSION se lucreaza ca si cu array.

- Daca e simplu, se preia valoarea direct:

Cod: Selectaţi tot

<?php
if(!isset($_SESSION)) session_start();

if(isset($_SESSION['name'])){
  $v_name = $_SESSION['name'];
  echo $v_name;
}
- Daca e multi-dimensional array, se parcurge cu foreach().

Ca sa vezi toate datele din $_SESSION si cum e structurat, poti sa folosesti var_export():

Cod: Selectaţi tot

<?php
if(!isset($_SESSION)) session_start();
echo '<pre>';
var_export($_SESSION);  //Or: var_export($_SESSION['name']);
echo '</pre>';

giulian9
servus ,
e multidimensional ,am incercat cu foreach, insa tot nu reusesc , imi lipseste ceva ?

Cod: Selectaţi tot

if(is_array($var)) {
    foreach($var as $key => $value) {
     $produkt = mysql_real_escape_string( $value["item_name"] ); 
    $preis = mysql_real_escape_string( $value["item_price"] );
    $anzahl = mysql_real_escape_string( $value["item_quantity"] );
 
    $sql = "INSERT INTO `bestellung` (`produkt`, `preis`, `anzahl` ) VALUES  ('$produkt', '$preis', '$anzahl')";
    mysql_query($sql) or exit(mysql_error()); 
    }
}

MarPlo
Nu stiu care e problema. Ca sa o depistezi, aplica var_export($var); ca sa vezi ce si cum sunt datele in accel array.

giulian9
Salut ,

Am gasit ca mysql_real_escape_string nu functioneaza cum ar trebui, este asteptat un "string" insa el e array. Pentru un singur array merge cu implode insa pentru un array multidimensional are cineva idee cum ar arata ?
Ma gandesc la o bucla FOR insa nu pare solutia buna .
Cod actual:

Cod: Selectaţi tot

$var=array();
$var=$_SESSION['shopping_cart'];
$marime = count ($var);
for (i=0;i<$marime;i++) {
$str = implode(",",$array[i]);
}
dupa care sa fac INSERT in mysql :

Cod: Selectaţi tot

INSERT INTO bestellung (produs,nume,bucati) values ($str) ;
insa nu imi introduce toate valorile ...

Subiecte similare