我试图通过表单输入多个数据,所有数据将由(,)分隔。我打算使用这些数据来查找相应的id,以便通过sql查询进一步处理。
以下是我使用的代码。
$key_code = explode(",", $keyword);
//$key_count = count($key_code);
$list = "'". implode("','", $key_code) ."'";
//$row_count = '';
$sql4= "SELECT key_id FROM keyword WHERE key_code IN (".$list.")";
if(!$result4 = mysql_query($sql4, $connect)) {
mysql_close($connect);
$error = true;
}else{
//$i = 0;
while($row = mysql_fetch_array($result4)) {
$keyword_id[] = $row['key_id'];
//$i++;
}
//return $keyword_id;
}
我看到的问题是keyword_id [0]是唯一包含任何数据的元素(数据是准确的)。即使我通过上述形式输入多个值。
我认为这可能是sql中的一个错误,但我回应它并且它看起来像:
SELECT key_id FROM keyword WHERE key_code IN ('WED','WATER','WASTE')
括号中的值正是我输入的内容。
我甚至试图弄清楚查询返回了多少行,它只显示1.我认为我的查询有问题,但我无法确定在哪里。
任何帮助将不胜感激。
编辑 :好的解决了问题。感谢您提出的建议我复制并粘贴了我在网站上回复的$ sql_query进入mysql控制台;这导致只检索了一行。仔细看后,我意识到'和第二个单词之间有一个空格。我相信当我输入key_code时问题就开始了:
WED,WATER,WASTE
而是将其输入为
WED,水,废弃物
解决了这个问题。我想我应该这样做,以便它可以两种方式工作。
无论如何,谢谢你的帮助。
答案 0 :(得分:0)
我很确定查询没问题。只用
可以获得多少行SELECT key_id FROM keyword
我认为只有一行符合您的WHERE。
答案 1 :(得分:0)
直接在数据库中检查查询(使用phpmyadmin,或在mysql控制台中),但是这个查询似乎正如您所假设的那样工作。如果在数据库中直接使用它时只返回1行,那么表格中只有一行与此查询匹配。