簡體   English   中英

從MySQL檢索以逗號分隔的數據

[英]Retrieve data from mysql that is comma separated

我考慮的越多,我的設計就存在一個基本問題。 我有一個表格。 我有一個選擇輸入選項。 用戶可以從列表中選擇最多四個項目。 每個選項都有一個與之關聯的數字。 提交表單后,所選的每個選項的編號將加在一起,並用逗號分隔並添加到數據庫的一列中。 我無法控制他們選擇選項的順序。 他們共有30種選擇。 因此,我最終在此列中以不特定的順序在1-30之間的4個數字。 用戶有時會在另一個屏幕中選擇一個選項,並且與該選項有關的所有信息都應以表格形式顯示。 我正在努力從數據庫中獲得一個選項號。 我已經從數據庫中選擇了帶有選項編號的列,並將其使用逗號作為定界符傳遞給explode(),但它沒有返回任何內容。 如果我在數據庫列查詢返回的$ rows上執行var_dump,則可以看到所有信息都已檢索到。 所以我親密。 這就是我分解返回的數據的方式。

    var_dump(explode(',' , $rows['scat']));

更大的問題很可能是,一旦我從數據庫中獲取了信息,我應該如何從中提取特定的數字(假設該數字可能介於1到30之間,並且沒有特定的順序)。

您必須分步注意:

在將數據保存到數據庫時使用:-

$qry = "insert into registervendors (scat) values ('".implode(",", $_POST['scat'])."')";

當您想檢索數據時,請使用以下查詢:

$qry = "SELECT * FROM registervendors WHERE state='".$state."' AND FIND_IN_SET(".$scat.", scat) ORDER BY busname ASC";

得到結果后使用:

$catIDS = explode(",", $resultROw[$key]['scat']);

$ catIds的類別列表在1到30之間。現在您需要在其中搜索10個,所以使用:

if(in_array(10, $catIDS)){
    echo "exists";
}

暫無
暫無

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

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