[英]Getting comma separated values from database and storing in array in PHP
[英]Add to array in comma separated values from database
我的數據庫表名為order。 它有一個像order
的行。 我存儲這樣的值1,2,3,4,5
。 現在我想添加到數組,並從中獲取信息..
我試圖這樣做,但是它不起作用...
這是我的代碼:
$sql = mysql_query("SELECT * FROM `order` WHERE `id` = ".$_GET['id']." LIMIT 1");
$row = mysql_fetch_assoc($sql);
$sql_order = $row['order'];
$array = array($sql_order);
foreach($array as $x) {
$sql = mysql_query("SELECT * FROM `product` WHERE `id` = ".$x." LIMIT 1");
$row = mysql_fetch_assoc($sql);
$sql_order = $row['order'];
echo $row['product_name'].'<br />';
}
如果要檢查print_r($array)
輸出
Array ( [0] => 1,23,4,5 )
我認為它應該是這樣的: Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
您需要使用explode()
函數。 這是一個例子:
<?php
$array = array('0' =>'1,2,3,4,5');
$array = explode(',', $array[0]);
var_dump($array);
?>
這是您的更新代碼,以獲得該格式的數組。
$sql = mysql_query("SELECT * FROM `order` WHERE `id` = ".$_GET['id']." LIMIT 1");
$row = mysql_fetch_assoc($sql);
$sql_order = $row['order'];
$array = array($sql_order);
$array = explode(',', $array[0]);
foreach($array as $x) {
$sql = mysql_query("SELECT * FROM `product` WHERE `id` = ".$x." LIMIT 1");
$row = mysql_fetch_assoc($sql);
$sql_order = $row['order'];
echo $row['product_name'].'<br />';
}
注意這是您正在尋找的解決方案。 但由於理由告訴您,因此不建議使用。
理想情況下,您應該對數據庫進行規范化,這樣,即使將來您也不會遇到這種問題。
這是一個建議的表結構更改,您可以根據需要和時間進行考慮。
order
列。 添加一個名為order_suborders
的新表,如下所示: | COLUMN | TYPE |
|:-----------|------------:|
|parent_order| int |
| order_id | int |
您可以根據需要更改列和表的名稱。
SELECT order_suborders.order_id FROM order, order_suborders WHERE order.id = ".$_GET['id']." AND order.id = order_suborders.parent_order
查詢SELECT order_suborders.order_id FROM order, order_suborders WHERE order.id = ".$_GET['id']." AND order.id = order_suborders.parent_order
SELECT order_suborders.order_id FROM order, order_suborders WHERE order.id = ".$_GET['id']." AND order.id = order_suborders.parent_order
您可以使用explod分割為“,”
$sql = mysql_query("SELECT * FROM `order` WHERE `id` = ".$_GET['id']." LIMIT 1");
$row = mysql_fetch_assoc($sql);
$sql_order = $row['order'];
//$array = array($sql_order);
$array=explod(",",$sql_order);
foreach($array as $x) {
$sql = mysql_query("SELECT * FROM `product` WHERE `id` = ".$x." LIMIT 1");
$row = mysql_fetch_assoc($sql);
$sql_order = $row['order'];
echo $row['product_name'].'<br />';
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.