【发布时间】:2012-01-07 04:57:25
【问题描述】:
我搜索了类似的问题,但找不到针对我的特定问题的正确答案。我的表(表)中有一个列(数据),其中包含逗号分隔的值,这些值是 id,例如
- 第 1 行 = 4,5,45
- 第 2 行 = 5,8,9
- 第 3 行 = 5
我使用 in_array 函数来检索 while 循环中 $data 值的出现次数。因此,我使用 sql 函数来检索某个值(例如“5”)在 while 循环内的所有行中出现的次数。
问题是我只能检索 $data 值,如果它本身(即没有逗号,只有整数本身)所以根据我在列表中的示例,我只能检索 5 一次(第 3 行) .我想检索值“5”三次,因为它出现在所有行中。下面是我的代码,任何帮助将不胜感激。 $selectiontext 变量是用户从表单中输入的内容。
$sql_frnd_arry_mem1 = mysql_query("SELECT data, id FROM table WHERE data='$selectiontext'");
while($row=mysql_fetch_array($sql_frnd_arry_mem1)) {
$datacheck = $row["data"];
$id = $row["id"];
}
$frndArryMem1 = explode(",", $frnd_arry_mem1);
if (($frnd_arry_mem1 !=="") && (!in_array($id, $frndArryMem1))) {echo $id;}
谢谢。
【问题讨论】:
-
$frndArryMem1和$frnd_arry_mem1来自哪里? -
嗨 davogotland,变量 $frndArryMem1 是展开函数,$frnd_arry_mem1 是设置为保存 csv 数组并将 $id 变量重新插入字段的空变量。所以 $frnd_arry_mem1 = "$frnd_arry_mem1,$id"
-
这个问题已经被回答了很多次了......第一个答案是你应该首先正确地标准化你的数据,然后这个问题就不会存在了
-
谢谢马克,我对数据库管理很陌生,所以我不知道这种方法是否是最有效的方法。但我会看看标准化。再次感谢