Strpos()期望参数1为字符串,资源给定


strpos() expects parameter 1 to be string, resource given

我想$description是一个从description列拉出的字串。然后我想检查字符串是否具有$searchterm(在此代码块之前定义的一个单词)。

//3. (a)for each, (b) if search term is in the description column, put line into sorted table.
// a. number of rows in spreadsheet
    $results = mysql_query("SELECT * FROM csv"); 
    $num_rows = mysql_num_rows($results);
// b. check rows and put into sorted table
    $i=1;
do
  {
  $i++;
  $description = mysql_query("SELECT Description FROM csv");
  if (strpos($description,$searchterm) !== false) {
          echo $description . "<br><br>";
      } // end if 
  } // end do
while ($i<=$num_rows); 

这是PHP/MySQL基础教程会教你的东西。mysql_query()生成一个资源标识符。你仍然需要使用mysql_fetch_assoc()来得到你的结果。

$result= mysql_query("SELECT Description FROM csv");
$row = mysql_fetch_assoc($result);
  if (strpos($row['description'],$searchterm) !== false) {

我还建议遵循上面评论中的建议。

您正在编写的代码在您键入时已过时。
if(mysql_num_rows($description) >=1){
 $result = mysql_fetch_assoc($description);
  $words = $result['Description'];
 if (strpos($word ,$searchterm) !== false) {
          echo $word. "<br><br>";
      } 
}

如果先返回行再读取,则计数。重要的是,使用PDO代替mysql。弃用。