2011-11-24 85 views
1

這是分配,所以沒有尋找任何完全安全和可靠的工作。我在SQL數據庫中有表格,我正在打印所有記錄,所有記錄都有唯一的參考編號,對於我打印的每一行數據庫給了行的ref的值的複選框。號,當我用「POST」一切工作,並打印出它們提交:如何將數組放入會話?

if (!$_POST['checkbox']) { 
    echo "Your basket is empty."; 
} else { 
    echo "<table border='0' id='games_table' cellspacing='1'>"; 
    echo "<tr id='basket_table_row'>"; 
    echo "<td colspan='3'>" . "Logged: " . $_SESSION['user'] . "</td>"; 
    echo "<td colspan ='2'>" . "OS used on this machine: " . "<script type='text/javascript'>document.write(yourOS())</script><noscript>Computers</noscript>" . "</td>"; 
    echo "</tr>"; 
    echo "<tr id='basket_table_row'>"; 
    echo "<td colspan='5'>" . "You put into the basket these games: " . "</td>"; 
    echo "</tr>"; 
    foreach ($_POST['checkbox'] as $value) { 
     $_SESSION['basket']=array($value); 

     $res=pg_query($conn,"select * from CSGames where refnumber='$value'"); 
     while ($a = pg_fetch_array ($res)) { 
      echo "<tr id='games_table_row'>"; 
      echo "<td>" . $a["refnumber"] . "</td>"; 
      echo "<td>" . $a["title"] . "</td>"; 
      echo "<td>" . $a["platform"] . "</td>"; 
      echo "<td>" . $a["description"] . "</td>"; 
      echo "<td>" . $a["price"] . "</td>"; 
      echo "</tr>"; 
     } 
    } 
    echo "</table>\n"; 
} 

但只認爲它可以停留記錄在$ _SESSION [「籃子」]是最後一個複選框的價值,但我需要所有的人(60或70)。 我做錯了什麼?

+0

你需要我們展示更多。你的請求沒有任何意義。 –

回答

2

在循環的每次迭代中,您正在覆蓋$ _SESSION ['basket']的te值。

最後一個值是唯一存儲的值。

1

目前,你只保存最後一個值,如果你想存儲的每一個值,你應該添加這樣的:

$_SESSION['basket'][] = $value; 
+0

非常感謝您的幫助! –

0
foreach($_POST['checkbox'] as $value){ 

    $_SESSION['basket']=array($value); 

} 

您的循環的每次迭代覆蓋在$值_SESSION ['basket'],因此您只能看到最後一個複選框的值。

0

在foreach的每一步中,您只在$_SESSION['basket']中創建一個新數組,其中只有一個項目,當前值爲$value。這是糾正這樣的:

// ... 
$_SESSION['basket'] = array(); 
foreach ($_POST['checkbox'] as $value) { 
    $_SESSION['basket'][] = $value; 
    // ... 
} 
// ... 
0

您可以直接做這樣

$_SESSION['basket'] = $_POST['checkbox'];

因爲$_POST['checkbox']的數據是一個數組反正。 你在做什麼是循環$_POST['checkbox']並將每個數據保存爲一個會話。

$_SESSION['basket'] = $_POST['checkbox'];

foreach ($_POST['checkbox'] as $value) { 
     $_SESSION['basket'][]=$value; 
} 

將具有相同的價值。

你有什麼權利只保存最後一個值$_POST['checkbox']