这个问题在这里已经有了答案:
mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows etc... expects parameter 1 to be resource
(31 个回答)
7年前关闭。
我需要帮助来修复我的查询,以便我可以获得结果并将其设置在行上。请帮助我是sql新手
我收到此错误: mysql_num_rows() 期望参数 1 是资源,给定的 bool 值
变量 $deets
与插入分贝上的一样..
我的代码:
<?php
$deets = $_POST['deets'];
$deets = preg_replace('#[^0-9/]#i', '', $deets);
include ("connect.php");
$events = '';
$query = mysql_query('SELECT H.hora FROM horario H WHERE NOT EXISTS(SELECT EV.idhora FROM eventos EV WHERE H.hora = EV.idhora AND data= "'.$deets.'")');
$num_rows = mysql_num_rows($query);
if($num_rows > 0) {
$events .= '<div id="eventsControl"><button class="btn2" style=" float:right;" onMouseDown="overlay()"><b>Fechar</b></button><p><b> ' . $deets . '</b></p></div> <br />';
while($row = mysql_fetch_array($query)) {
$desc = $row['hora'];
$form = "<form style='float:right;' action='marcarhora.php' method='post'><input type='hidden' name='gethora' value='$desc '><input type='hidden' name='getdate' value='$deets '><input type='hidden' name='getuser' value='{$_SESSION["email"]}'>";
$desc1 = "<input type='submit' class='btn1' name='insert' value='Marcar Hora'/></form>";
$events .= '<div id="eventsBody">' . $desc . ' | '.$form .$desc1. '<br /><hr><br /></div>';
}
}
echo $events;
?>
最佳答案
<?php
$deets = $_POST['deets'];
$deets = preg_replace('#[^0-9/]#i', '', $deets);
include("connect.php");
$events = '';
// use $res not $query, as mysql_query returns a result not a query
//$query = mysql_query('SELECT H.hora FROM horario H WHERE NOT EXISTS(SELECT EV.idhora FROM eventos EV WHERE H.hora = EV.idhora AND data= "' . $deets . '")');
// you are using wrong " quotes to encapsulate value, given that $deets should be a number (as you have filtered it above, then you don't even need need quotes around it
$sql = "SELECT H.hora FROM horario H WHERE NOT EXISTS(SELECT EV.idhora FROM eventos EV WHERE H.hora = EV.idhora AND data= '{$deets}')";
// always check for errors, in case query failed
$res = mysql_query($sql) or die(mysql_error());
$num_rows = mysql_num_rows($res);
if ($num_rows > 0) {
$events .= '<div id="eventsControl"><button class="btn2" style=" float:right;" onMouseDown="overlay()"><b>Fechar</b></button><p><b> ' . $deets . '</b></p></div> <br />';
// mysql_fetch_array is not necessary unless you need both numeric and textual indexing
// while ($row = mysql_fetch_array($query)) {
while ($row = mysql_fetch_assoc($res)) {
$desc = $row['hora'];
$form = "<form style='float:right;' action='marcarhora.php' method='post'><input type='hidden' name='gethora' value='$desc '><input type='hidden' name='getdate' value='$deets '><input type='hidden' name='getuser' value='{$_SESSION["email"]}'>";
$desc1 = "<input type='submit' class='btn1' name='insert' value='Marcar Hora'/></form>";
$events .= '<div id="eventsBody">' . $desc . ' | ' . $form . $desc1 . '<br /><hr><br /></div>';
}
}
echo $events;
?>
关于PHP - MYSQL 查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22802320/