Php 函数中的mysql查询和结果语句

Php 函数中的mysql查询和结果语句,php,mysql,function,Php,Mysql,Function,我想知道我一直在尝试将MySQL查询和MySQL结果代码放入这样的PHP函数中 function setting($claim){ $query = "SELECT `cases`, `hg`, `surname`, `firstname`, `type`, `claim`, `charge`, `damage`, `payment`, `repair`, `returned`, `comments`, `cost` FROM `rep_log` WHERE claim='$claim

我想知道我一直在尝试将MySQL查询和MySQL结果代码放入这样的PHP函数中

 function setting($claim){
    $query = "SELECT `cases`, `hg`, `surname`, `firstname`, `type`, `claim`, `charge`, `damage`, `payment`, `repair`, `returned`, `comments`, `cost` FROM `rep_log` WHERE claim='$claim'";
    $result = mysql_query($query) or die(mysql_error());
}
我正在尝试使用它,这样我就可以更容易地更改正在选择的内容,而不必有大量不同的变量和内容来更改查询。。。所以基本上我做的是

echo setting("warrenty");
但我有一个错误:

警告:mysql_fetch_row()希望参数1是资源,字符串在

所以我想知道是否有可能将一个MySQL查询和结果放入一个函数中,或者这只是一个不可能发生的事情

如果可能的话,任何帮助都会很好

完整代码

<?
// connection with the database
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "netbookdb";
$result="";
mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname);

// require the PHPExcel file
require 'Classes/PHPExcel.php';

// simple query
 function setting($claim){
    $query = "SELECT `cases`, `hg`, `surname`, `firstname`, `type`, `claim`, `charge`, `damage`, `payment`, `repair`, `returned`, `comments`, `cost` FROM `rep_log` WHERE claim='$claim'";
    $result = mysql_query($query) or die(mysql_error());
}



    // Create a new PHPExcel object
   $objPHPExcel = new PHPExcel();
   $objPHPExcel->getActiveSheet()->setTitle('Insurance');

echo setting('Warrenty');


$rowNumber = 1;
    while ($row = mysql_fetch_row($result)) {
       $col = 'A';
       foreach($row as $cell) {
          $objPHPExcel->getActiveSheet()->setCellValue($col.$rowNumber,$cell);
          $col++;
       }
       $rowNumber++;
    }


   // Save as an Excel BIFF (xls) file
   $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');

   header('Content-Type: application/vnd.ms-excel');
   header('Content-Disposition: attachment;filename="myFile.xls"');
   header('Cache-Control: max-age=0');

   $objWriter->save('php://output');
   exit();

echo 'a problem has occurred... no data retrieved from the database';
?>

您没有从函数中返回任何结果

使用
返回$result

更新1:

function setting($claim){
    $query = "SELECT `cases`, `hg`, `surname`, `firstname`, `type`, `claim`, `charge`, `damage`, `payment`, `repair`, `returned`, `comments`, `cost` FROM `rep_log` WHERE claim='$claim'";
    $result = mysql_query($query) or die(mysql_error());
    return $result;
}
您还没有贴花您试图在
mysql\u fetch\u行中使用的
$result变量
,因此
首先从函数中返回值,分配它,然后使用它

更新2:

function setting($claim){
    $query = "SELECT `cases`, `hg`, `surname`, `firstname`, `type`, `claim`, `charge`, `damage`, `payment`, `repair`, `returned`, `comments`, `cost` FROM `rep_log` WHERE claim='$claim'";
    $result = mysql_query($query) or die(mysql_error());
    return $result;
}
然后在
mysql\u fetch\u row
方法中使用的变量中获取函数的输出。i、 e

$result = setting('Warrenty');

希望这有帮助。

您没有返回函数的任何结果

使用
返回$result

更新1:

function setting($claim){
    $query = "SELECT `cases`, `hg`, `surname`, `firstname`, `type`, `claim`, `charge`, `damage`, `payment`, `repair`, `returned`, `comments`, `cost` FROM `rep_log` WHERE claim='$claim'";
    $result = mysql_query($query) or die(mysql_error());
    return $result;
}
您还没有贴花您试图在
mysql\u fetch\u行中使用的
$result变量
,因此
首先从函数中返回值,分配它,然后使用它

更新2:

function setting($claim){
    $query = "SELECT `cases`, `hg`, `surname`, `firstname`, `type`, `claim`, `charge`, `damage`, `payment`, `repair`, `returned`, `comments`, `cost` FROM `rep_log` WHERE claim='$claim'";
    $result = mysql_query($query) or die(mysql_error());
    return $result;
}
然后在
mysql\u fetch\u row
方法中使用的变量中获取函数的输出。i、 e

$result = setting('Warrenty');
希望这有帮助。

您正在分配一个本地“$result”变量,因此“mysql\u fetch\u row($result)”正在使用字符串变量“$result”,初始化为“$result=”,该变量不是资源,因此将引发异常

在“设置”功能中,添加“全局$result;”行:

您正在分配一个本地“$result”变量,因此“mysql\u fetch\u row($result)”正在使用字符串变量“$result”,初始化为“$result=”,该变量不是资源,因此将引发异常

在“设置”功能中,添加“全局$result;”行:


您知道拼写不正确吗?
我收到一个错误,基本上说没有运行任何查询,也没有返回任何结果…
您可以发布您收到的确切错误消息,而不是用您自己的话来写吗?此错误警告:mysql\u fetch\u row()希望参数1是资源,在何处调用mysql\u fetch\u row()中给定的字符串?你能发布这方面的代码吗?你知道拼写不正确吗?
我收到一个错误,基本上说没有运行任何查询,也没有返回任何结果…
你能发布你得到的确切错误消息,而不是用你自己的话写吗?此错误警告:mysql\u fetch\u row()参数1应为资源,字符串在何处调用mysql_fetch_row()中给定?你能发布代码吗?我试图在脚本后面使用结果,但只有当它在功能中没有时,所有的工作都很好work@Matthew当前位置你试过按照AlphaMale的建议做吗?如果没有,请先试用,然后再评论为什么您认为它可能不起作用。如果你已经试过了,那就更具体地说明你遇到了什么新问题。发布新的错误消息。@MarkByers你是对的,他没有正确使用结果变量。我已经阅读了更新,但我不明白你的意思,我回显了函数不应该MySQL\u fetch\u row查看结果并继续运行Nope。除非并直到你返回结果。我试图在脚本中稍后使用结果,但只有当它在功能中不起作用时,所有的工作才正常work@Matthew当前位置你试过按照AlphaMale的建议做吗?如果没有,请先试用,然后再评论为什么您认为它可能不起作用。如果你已经试过了,那就更具体地说明你遇到了什么新问题。发布新的错误消息。@MarkByers你是对的,他没有正确使用结果变量。我已经阅读了更新,但我不明白你的意思,我回显了函数不应该MySQL\u fetch\u row查看结果并继续运行Nope。除非返回结果。