仅从MYSQL数据库中检索1行数据

时间:2010-09-08 23:03:54

标签: php mysql

我试图通过表单输入多个数据,所有数据将由(,)分隔。我打算使用这些数据来查找相应的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,水,废弃物

解决了这个问题。我想我应该这样做,以便它可以两种方式工作。

无论如何,谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

我很确定查询没问题。只用

可以获得多少行
SELECT key_id FROM keyword

我认为只有一行符合您的WHERE。

答案 1 :(得分:0)

直接在数据库中检查查询(使用phpmyadmin,或在mysql控制台中),但是这个查询似乎正如您所假设的那样工作。如果在数据库中直接使用它时只返回1行,那么表格中只有一行与此查询匹配。