Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php从MySQL返回信息_Php_Html_Mysql_Mysqli - Fatal编程技术网

使用php从MySQL返回信息

使用php从MySQL返回信息,php,html,mysql,mysqli,Php,Html,Mysql,Mysqli,我目前正试图进入php和MySQL,我将这个小项目作为一个学习曲线,但我遇到了一个无法通过的障碍。我有以下代码正在访问我的MySQL数据库,我目前正尝试使用以下搜索功能将数据回送出来: <?php ob_start(); require("config.php"); ob_end_clean(); $req=$_REQUEST['workingDate']; $req2=$_REQUEST['location']; mysql_connect("XXXXXXXXXXX",$userna

我目前正试图进入
php
MySQL
,我将这个小项目作为一个学习曲线,但我遇到了一个无法通过的障碍。我有以下代码正在访问我的MySQL数据库,我目前正尝试使用以下搜索功能将数据回送出来:

<?php
ob_start();
require("config.php");
ob_end_clean();

$req=$_REQUEST['workingDate'];
$req2=$_REQUEST['location'];

mysql_connect("XXXXXXXXXXX",$username,$password);
mysql_select_db($database) or die( "Unable to select database");

if ($req!="all" && $req2!="all")  $query="SELECT * FROM TrackerTable WHERE workingDate='$req' AND location1='$req2'";
else if($req=="all" && $req2!="all" ) $query="SELECT * FROM TrackerTable WHERE location1='$req2'";
else if($req!="all" && $req2=="all" ) $query="SELECT * FROM TrackerTable WHERE make='$req'";
else if($req=="all" || $req2=="all" ) $query="SELECT * FROM TrackerTable";

$result=mysql_query($query);
$num=mysql_numrows($result);

mysql_query($result);
mysql_close();

$i=0;

for ($i; $i < $num; $i++){
        $f12=mysql_result($result,$i,"workingDate");
        $f13=mysql_result($result,$i,"location1");
echo $f12." ".$f13."<br />";
}
?>
我不知道是什么导致了这个问题,因为我觉得这一切都很正常。是我犯了一个明显的错误,还是完全搞砸了?我已经看了那么久,我不知道什么是有意义的了


任何帮助都将不胜感激。谢谢大家

您确定定义了变量$query吗? 这是因为在语句if/elseif中定义变量$query

   // first define default value for your $query variable
   $query="SELECT * FROM TrackerTable";

   // then use your if/else statement
if ($req!="all" && $req2!="all") .....................
你有一个错误

$result=mysql_query($query);
$num=mysql_numrows($result);

mysql_query($result); // error here

mysql_close();
$result不是字符串,而是资源。 mysql\u查询($result)


检查详细信息

您尝试运行两次查询:

$result=mysql_query($query);
                    ^^^^^^--- your SQL
mysql_query($result);
            ^^^^^^^---- result handle (aka resource) from previous call
第二个查询调用完全无关/无用。您向调用传递了错误的参数,并且没有从查询中捕获返回值。即使它运行正常,也会丢弃查询结果

然后关闭数据库连接,这样当您稍后尝试调用
mysql\u result()
时,就没有更多的数据库连接可以从中获取结果

最重要的是,你很容易受到伤害


简言之,这段代码简直是一场灾难。

太好了……对不起?不明白你的意思吗?@VeeeneX这家伙是新来的,显然,撇开注射不谈,他使用的是不推荐的函数。无论如何,您正在传入$result作为要执行的查询。这不是一个有效的查询,事实上,$result将是上一个查询的返回值。请参阅和@mario不幸的是,Bobby tables无法工作:(您不能在一个语句中再运行两个查询。但xkcd始终是相关的。我担心您没有更改任何内容:\n您调用了两次mysql\u查询,一个带有字符串(查询)第二个是$result,这是一个资源。我已经删除了这个错误,但现在它只是传递了一个空白屏幕?使用它在屏幕上显示一些东西:while($row=mysql_fetch_assoc($result)){echo$row['workingDate'];echo$row['location1'];echo$row['table_field_name'];}并将mysql_关闭();脚本中的最后一行。好的,你有什么资源可以帮我正确地完成这项工作吗?我现在不知道如何继续下去。
$result=mysql_query($query);
$num=mysql_numrows($result);

mysql_query($result); // error here

mysql_close();
$result=mysql_query($query);
                    ^^^^^^--- your SQL
mysql_query($result);
            ^^^^^^^---- result handle (aka resource) from previous call