Php 警告:mysql_result():无法跳转到mysql结果索引5上的第0行
在我正在创建的社交网络大学项目中获取此错误 警告:mysql_result():无法跳转到第63行/customers/2/f/b/somesrandomsite.com/httpd.www/rnfunctions.php中mysql结果索引5的第0行 下面是有问题的PHP代码Php 警告:mysql_result():无法跳转到mysql结果索引5上的第0行,php,mysql,database,Php,Mysql,Database,在我正在创建的社交网络大学项目中获取此错误 警告:mysql_result():无法跳转到第63行/customers/2/f/b/somesrandomsite.com/httpd.www/rnfunctions.php中mysql结果索引5的第0行 下面是有问题的PHP代码 function showProfile($user) { $UserID = mysql_result(mysql_query("SELECT `user_id` FROM `rnprofiles` WHER
function showProfile($user) {
$UserID = mysql_result(mysql_query("SELECT `user_id` FROM `rnprofiles` WHERE `user` = '$user'"), 0) or die(mysql_error());
$Query = mysql_query("SELECT * FROM `images` WHERE `user_id` = '$UserID'") or die(mysql_error());
while ($ImageData = mysql_fetch_assoc($Query)) {
echo '<p><a title="'.$user.'" class="fancybox" data-fancybox-group="gallery" href="'.$ImageData['location'].'"><img src="'.$ImageData['location'].'" border="" align="left" height="150" width="150" alt=""/></a></p>';// Display each image belonging to the user
}
$result = queryMysql("SELECT * FROM rnprofiles WHERE user='$user'") or die(mysql_error());
if (mysql_num_rows($result))
{
$row = mysql_fetch_row($result);
echo stripslashes($row[1]) . "<br clear=left /><br />";
}
}
函数showProfile($user){
$UserID=mysql\u结果(mysql\u查询(“从`rnprofiles`WHERE`user`='$user``中选择`user\u id`”),0)或die(mysql\u error());
$Query=mysql\u Query(“从`images`中选择*,其中`user\u id`='$UserID'))或die(mysql\u error());
while($ImageData=mysql\u fetch\u assoc($Query)){
echo“”;//显示属于用户的每个图像
}
$result=queryMysql(“从rnprofiles中选择*,其中user='$user')或die(mysql_error());
if(mysql_num_行($result))
{
$row=mysql\u fetch\u row($result);
回音条斜线($row[1])。“
”;
}
}
如果有人有任何想法,这将是一个很大的帮助。无论何时使用
$row=mysql\u fetch\u row($result)代码>
因为$result
只存储资源id。所以每次您将在循环中迭代它,它将转到另一行(如果存在)
要获取所有数据,您必须使用while循环,如下所示
while($row = mysql_fetch_row($result))
{
//do your operation
}
对mysql_result()的调用不应与对其他函数的调用混合使用
处理结果集的函数
所以,改变
$UserID = mysql_result(mysql_query("SELECT `user_id` FROM `rnprofiles` WHERE `user` = '$user'"), 0) or die(mysql_error());
对此
$result=mysql_query("SELECT `user_id` FROM `rnprofiles` WHERE `user` = '$user'") or die(mysql_error());
$UserID = mysql_result($result,0);
此外,还有一个语法错误。将queryMysql
更改为mysql\u query
不要在任何mysql\u result()或mysql\u fetch\u*()
调用中嵌套mysql\u query()。如果查询失败或未返回任何行(如您的情况),这不是错误条件,则后续外部调用将失败并出错。我不熟悉该特定错误消息,但在我看来,结果集中似乎没有结果。永远不要假设mysql\u查询
调用返回什么!它可能是false
,可能是一个空集,可能是任何东西。做一些错误处理!验证上面的第一个查询。很可能,变量$user
不包含您希望它包含的内容…欢迎使用堆栈溢出!在新代码中。它们不再得到维护,而是在使用。看到红色的盒子了吗?改为学习准备好的语句,并使用or。@hjpotter92伙计,你们从factoid中得到了很多用处……当我应用这些更改时,这个错误会出现,因为在第二个参数后面有一个额外的括号。解析错误:语法错误,意外“,”在第64行的/customers/2/f/b/somesite.com/httpd.www/rnfunctions.php中抱歉…我编辑了我的回答仍然收到此错误`警告:mysql_result():无法跳转到mysql结果索引5上的第0行''可能在$result
中没有记录。你确定你的查询返回了什么吗?请尝试放置真实用户而不是$user
,以了解您的查询是否有效。无法跳转到第0行…
表示您的查询未放置任何记录。试着像
一样使用。它应该是WHERE user LIKE“%”“%$user.”“%”
WHERE-about在代码中应该应用在哪里?啊哈,它只是一个概念性的代码。您可以在这里应用代码,您需要获取行和数组中的数据。