Wątek przeniesiony 2015-07-31 12:29 z PHP przez dzek69.

Ustawienie domyślnej wartości sesji

2015-07-31 07:51

Rejestracja: 5 lat temu

Ostatnio: 1 miesiąc temu

0

Witam
Mam problem z ustawieniem domyślnej wartości koszyka, problem polega na tym, że gdy dodam do koszyka jakieś produkty to tworzy mi sie sesja koszyka ale sesja powierzchni już niee. Domyślna wartość do wszystkich pól mam zapisana jako $powierzchnia=1 ale gdy mam np 4 produkty i pierwszego wartość zmienię na np 5 to reszta mi się restartuje i nic nie ma. Pokazałem na zdjęciach krok po kroku co się dzieje. Może coś podpowiecie :)

http://zapodaj.net/4a053a5f136b5.jpg.html
http://zapodaj.net/992284fa8c00e.jpg.html
http://zapodaj.net/fe1a486d719d1.jpg.html
http://zapodaj.net/ea09e6c28db87.jpg.html

A to jest kod którego problem dotyczy:

<?php
session_start();
echo "</br>(SESSION['powierzchnia'])            :";
print_r($_SESSION['powierzchnia']);

echo "</br></br>(GET['zapiszPowierzchnie'])            :";
print_r($_GET['zapiszPowierzchnie']);

echo "</br></br>(POST['iteamId'])                 :"; 
print_r($_POST['iteamId']);

echo "</br></br>(floatVal(POST['powierzchnia']))                 :"; 
print_r(floatVal($_POST['powierzchnia']));

echo "</br></br>(SESSION['koszyk'])                 :";
print_r($_SESSION['koszyk']);

/* inicjuje zmienna */
if(empty($_SESSION['powierzchnia'])){
  $_SESSION['powierzchnia'] = 0;
}
if(isset($_GET['zapiszPowierzchnie'])){
  /* przetwarza dane formularza powierzchni */
  if(!is_array($_SESSION['powierzchnia'])){
      $_SESSION['powierzchnia'] = array();
  }

      $iteamId = $_POST['iteamId'];
      $_SESSION['powierzchnia'][$iteamId] = floatVal($_POST['powierzchnia']);
}

if (!isset($_SESSION['koszyk'])) {
  $_SESSION['koszyk'] = array();
}

if (isset($_GET['reset']))  //chcemy wyczyścić koszyk
{
      unset($_SESSION['powierzchnia']);
      unset($_SESSION['koszyk']);
            header('location: '. $_SERVER['PHP_SELF']. '?'. SID);
            exit();
}
?>

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Firma budowlana </title>
  </head>
  <body>
<h1>Twoj koszyk z zakupami</h1>

<?php

   // definicja tablic z towarami oraz cenami

$i= isset($_GET['i']) ? (int)$_GET['i'] : 0;

$q = mysql_connect('localhost','root','haslo') or
die('Padl serwer');
$q = mysql_select_db('stronaphp') or die('Padla baza');

$wynik = mysql_query("SELECT ID, Nazwa_uslugi, Cena_za_metr FROM cennik_uslug") 
or die('Błąd zapytania'); 

$towary = array();
$ceny = array();
while ($row = mysql_fetch_array($wynik))
{
    $towary[$row['ID']]=$row['Nazwa_uslugi'];
    $ceny[$row['ID']]=$row['Cena_za_metr'];
}
?>

<table border="1">
  </thead>     
             <tr>

                   <th>Nazwa usługi</th>
                     <th>Cena za metr</th>
                </tr>
        </thead>
    <tbody>

<?php
$suma = 0;
$powierzchnia = 1;

for ($i=0;$i < count($_SESSION['koszyk']); $i++)
{
        if($_SESSION['powierzchnia']>0){
          $powierzchnia = $_SESSION['powierzchnia'][$i];
        }
        echo '<tr>';
        echo '<td>'.$towary[$_SESSION['koszyk'][$i]].'</td>';
        echo '<td align="right">';
        echo $powierzchnia.' m<sup>2</sup> x '.number_format ($ceny[$_SESSION['koszyk'][$i]],2);
        echo ' zlotych</td>';
        echo '<td>

            <form method="post" action="'.$_SERVER['PHP_SELF'].'?zapiszPowierzchnie=1">
                  <input type="text" name="powierzchnia" id="powierzchnia" value="'.$_SESSION['powierzchnia'][$i].'">
                  <input type="hidden" name="iteamId"  value="'.($i).'">
                <input type="submit" value="Zapisz">
            </form>
        </td>';
        echo '</tr>';
        $suma = $suma + ($ceny[$_SESSION['koszyk'][$i]] * $powierzchnia);
}
?>

</tbody>
 <tfoot>
  <tr>
      <th align="right">Naleznosc: </th><br>
        <th align="right"><?php echo number_format($suma,2); ?> zlotych.</th>
    </tr>
 </tfoot>
</table>

<p><a href="towary.php">Kupuj dalej</a> lub też: <a href="<?php echo $_SERVER['PHP_SELF']; ?>?reset=1">Wyczysc swoj koszyk</a></p>
</body>
</html> 

Może coś podpowiecie? Na początku kodu zapisałem print_r aby pokazać co i jak zmienia sie po dodaniu

Pozostało 580 znaków

2015-07-31 09:35

Rejestracja: 5 lat temu

Ostatnio: 3 lata temu

0

Cały kod i tak jest do wyrzucenia - nie dość, że spaghetti to jeszcze używasz przestarzałego mysql.
http://stackoverflow.com/ques[...]-i-use-mysql-functions-in-php

edytowany 1x, ostatnio: Tumeg, 2015-07-31 09:35

Pozostało 580 znaków

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0