簡體   English   中英

獲取列sql中的值

[英]get values in a column sql

我想獲取列(item_name)中的值並將其放入另一個表中的另一列(items_ordered)

我嘗試了基本代碼,但不起作用(通常插入sql)

表名:mycart

+------+----------------+
| item_name |  Client   |
+------+----------------+
|  item1    |    wev    |
|  item2    |    wev    |
|  item3    |    wev    |
+------+----------------+

表名:訂單

+------+--------------------+
| items_ordered |  Client   |
+------+--------------------+
|               |           |
+------+--------------------+

我想要的是這樣的:

表名:訂單

+------+--------------------------+
| items_ordered       |  Client   |
+------+--------------------------+
| item1,item2,item3   |   wev     |
+------+--------------------------+

我使用的代碼:

$sqlb = "select * from mycart where client='" . $_SESSION['fname'] . "'"; 

$resultb = $conn->query($sqlb); 

while($rowb = $resultb->fetch_assoc()){ 
    $rowb['item_name'] . ', ' ; 
    $client=$rowb['client']; 
    $sql_insertInto_myCart = "INSERT INTO orders(items,client) VALUES('$rowb','$client')"; 
    $query_sql_insertInto_myCart = $conn->query($sql_insertInto_myCart); 
    if(isset($query_sql_insertInto_myCart)) { 

    } 
} 

您需要根據規范化原則設計數據庫架構。

然后,您將獲得如下內容:

在此處輸入圖片說明

您需要使用GROUP_CONCAT

select Client, GROUP_CONCAT(`item_name` separator ',') as `item_name` from mycart where client='" . $_SESSION['fname'] . "'"; 

重要的提示:-

保存,分隔的數據違反了規范化,因此通常不這樣做。 因為對這些記錄進行CRUD操作變得非常困難[以及搜索也是如此]

您需要使用prepared statement來防止您的查詢來自SQL INJECTION。

:: mysqli的准備

PDO ::准備

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM