2015-07-24 2 views
0

В настоящее время я работаю над супер простой идеей интернет-магазина с корзиной покупок. В конце я хочу распечатать таблицу с заказанными вами продуктами. В настоящее время используется foreach, но я понятия не имею, как это решить. Я пытался использовать сеансы как способ дать петле идею о том, сколько разных товаров заказывается. Но похоже, что метод $ _SESSION будет принимать все текущие активные сеансы. И используя простую переменную f.e. $ piano заставит его печатать 2 строки (используя 2 фортепиано в моем магазине, попытался решить его с помощью if (session active) $ piano1 = active. Но кажется, что утверждение foreach не дает крика об этом и напечатает 2 строки в любом случае.PHP - Foreach через определенные активные сеансы

Извините за длинный блок текста. Вот моя страница. Опять извинение. Я только начал PHP.

имена переменных нидерландские, но это не должно действительно важно для вас, ребят, я думаю. Отправные от линии 103. заранее спасибо!

<div class="logincontainer"><!-- Php Session Script Actief? --> 
    <?php 
    session_start(); 
    if(isset($_SESSION['naam'])) : 
     echo "<div class='content_login'>"; 
     echo "Hallo " . $_SESSION['naam'] . ". Welkom bij de Pianoshop.</br></br>";?> 
     <form method='post' action='uitlog.php'> 
      <input type='submit' name='loguit' Value='Loguit!'></form><br /> 
      <form action='winkelmand.php' class="left"> 
       <input type='image' src='images/winkelwagen-knop.png'/> 
      </form><br /> 
      <form method='post' name='emptycart' action='emptycart.php' class="right"> 
       <input type="submit" id="submitpic" name="leegwinkelmand" value=""> 
       <?php 
       if(isset($_SESSION['winkelmand'])) { 
        echo $_SESSION['aantalproducten'] . " Item(s) - &euro;" . $_SESSION['totaalprijs'] . ",-"; 
       } else { 
        echo "Jouw winkelwagen is leeg."; 
       }?> 
      </form> 
     </div> 
    <?php else :?> 
     <div class='content_login'> 
      <form method='post' action='checklogin.php'> 
       <p><input type='text' name='gebruikersnaam' required='required' value='' placeholder='Gebruikersnaam'></p> 
       <p><input type='password' name='password' required='required' value='' placeholder='Wachtwoord'></p> 
       <font color="red"><p class='submit'> 
        <input type='submit' name='login' value='Login'> 
        <?php if(isset($_SESSION['logged_in'])) :?> 
         Verkeerd wachtwoord. 
         <?php session_destroy(); 
        endif; ?> 
       </p></font> 
       <p>Nog niet geregistreerd? Doe dat <a href="account.php">hier!</a>.</p> 
      </form> 
     </div> 
    <?php endif; ?></div> 
    <div id="site"> 
     <div id="menubar"> 
      <div id="logo"> 
       <img src="images/pianotoetsen.png" > 
      </div> 
      <div id="menu_items"> 
       <ul id="menu"> 
        <li><a href="index.php">Home</a></li> 
        <li><a href="toetsinstrumenten.php">Toetsinstrumenten</a></li> 
        <li><a href="account.php">Jouw account</a></li> 
        <li class="current"><a href="winkelmand.php">Winkelmand</a></li> 
        <li><a href="contact.php">Contact</a></li> 
       </ul> 
      </div></div> 

      <div id="site_content"> 
       <div class="sidebar_container"> 
        <div class="sidebar"> 
         <h2>Sale!</h2> 
         <div id="thumbnail"><img src="images/piano1.jpg"></div> 
         <p>Yamaha CLP-575 voor maar &euro;2599,- !</p> 
         <div id="thumbnail"><img src="images/piano2.jpg"></div> 
         <p>Ritmuller 120SL &euro;4999,- !</p> 
        </div> 
        <div class="sidebar"> 
         <h2>Laatste Updates</h2> 
         <h3>Juni 2015</h3> 
         <p>Site in constructie.</p> 
        </div> 
        <div class="sidebar"> 
         <h3>Wij zijn op Facebook</h3> 
         <p>Klik <a href="#">hier.</p></a> 
        </div> 
       </div> 

     <div id="content"> 
      <div id="wallpaperbanner"> 
       <img src="images/banner.jpg"> 
      </div> 
      <div class="content_item"> 
       <h1>Winkelmand</h1> 
       <?php 
       $user = 'root'; 
       $pass = ''; 
       $db = 'online shop'; 
       $conn = mysql_connect('localhost', $user, $pass); 
       if(! $conn) 
       { 
        die('Could not connect: ' . mysql_error()); 
       } 



       if(isset($_SESSION['winkelmand'])) { 
        echo "Deze producten staan in je winkelwagen</br></br>"; 
        if(isset($_SESSION['totaalprijs2']) == 0) { 
         // Do nothing? 
        } else { 
         mysql_select_db($db); 
         $query = mysql_query("SELECT * FROM product WHERE productnummer='2'"); 
         $productgegevens = mysql_fetch_row($query); 
         $piano["piano2"] = "ritmuller"; 
         $pianoarray[1] = $productgegevens['1']; 
         $pianoarray[2] = $productgegevens['2']; 
         $pianoarray[3] = $productgegevens['4']; 
         $pianoarray[5] = $productgegevens['3']; 
         $pianoarray[4] = $_SESSION['aantal_prod2']; 

        } 

        if(isset($_SESSION['totaalprijs1'])) 
        { 
         mysql_select_db($db); 
         $query = mysql_query("SELECT * FROM product WHERE productnummer='1'"); 
         $productgegevens = mysql_fetch_row($query); 
         $piano["piano1"] = "yamaha"; 
         $pianoarray[4] = $_SESSION['aantal_prod1']; 
         $pianoarray[1] = $productgegevens['1']; 
         $pianoarray[2] = $productgegevens['2']; 
         $pianoarray[3] = $productgegevens['4']; 
         $pianoarray[5] = $productgegevens['3']; 
         $pianoarray[4] = $_SESSION['aantal_prod2']; 
        } 
        echo "<br /> 
        <table width='80%' > 
        <thead> 
        <tr><th>Productnaam</th><th>Merk</th> 
        <th>Voorraad</th><th>Aantal</th><th>Prijs</th> 
        </tr> 
        </thead> 
        <tbody>"; 

        foreach($piano as $key => $value) { 
         echo $key . "</br>" . $value . "<br />"; 
         $row = "<tr>"; 
         for ($x=1; $x<=sizeof($pianoarray); $x++){ 
          $row = $row . "<td>" . $pianoarray[$x] . "</td>"; 

         } 
         $row = $row . "</tr>"; 
         echo $row; 
        } 
        echo "<tr><td></td><td></td><td></td><td></td><td>" . '&euro;' . $_SESSION['totaalprijs'] . ',-' . "</td></tr></tbody></table>"; 

       } 


       else { 
        echo "Jouw winkelwagen is leeg. <br />" . "Klik <a href='toetsinstrumenten.php'>Hier</a> om wat items toe te voegen."; 
       }?> 
      </div> 
     </div> 
    </div> 

</div> 
+0

Не могли бы вы добавить свой код вместо ссылки на ваш сайт? – hennes

+0

Добавлен код в сообщение вместо ссылки –

ответ

0

Создайте переменную массива в $ _ SESSION и сделать петлю foreach на этом

$_SESSION['cart']['piano1'] = 'piano1'; 
$_SESSION['cart']['piano2'] = 'piano2'; 
$cart = $_SESSION['cart']; 

foreach ($cart as $key => $item) { 
    //do something with $item or $key 
} 
+0

Ну, по крайней мере, шаг ближе. Все еще есть проблема, что он всегда печатает 2 строки независимо от того, какие сеансы активны. Он также всегда печатает тот же продукт (последний запрос SQL), поэтому я получаю 2 строки с одинаковой информацией. –