我如何尝试检查mysql集中是否存在某个值?我有这段代码:
我正在尝试(我怀疑它会起作用)而且它正在抛出这个错误:
$result = mysql_query("SELECT * FROM posts ORDER BY time DESC");
while ($row = mysql_fetch_array($result)) {
$result1 = mysql_query("SELECT * FROM friends WHERE friends = $row{'name'}");
$row1 = mysql_fetch_array($result1);
if ($row == 1) {
echo "<b style='color: #D55292;'>".$row{'name'}."</b> says <br>".$row{'cont'}."<br><b style='color: #A1A1A1';>Posted on ".$row{'time'}."</b><br><br>";
}
}
我收到了这些错误:
Notice: Array to string conversion in C:\xampp\htdocs\index.php on line 44
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\index.php on line 45
Notice: Array to string conversion in C:\xampp\htdocs\index.php on line 44
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\index.php on line 45
Notice: Array to string conversion in C:\xampp\htdocs\index.php on line 44
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\index.php on line 45
你们可以给我一些关于如何做到这一点的指示吗?先谢谢!
我只是觉得这个问题可能不够明确:
我有一套用于将所有“朋友”存储在我的“朋友”表中。我还有一个表,用于存储所有“帖子”,其中包含您的姓名,内容,时间以及可以查看的人员的值。我正在尝试获取这些帖子(我已成功完成)并打印出来。我能做到。我只是想这样做,所以你只能看到“name”值等于你的“friends”集中的字符串的帖子。
答案 0 :(得分:1)
在这一行:
$result1 = mysql_query("SELECT * FROM friends WHERE friends = $row{'name'}");
将$row{'name'}
替换为{$row['name']}
:
$result1 = mysql_query("SELECT * FROM friends WHERE friends = {$row['name']}");
或者看起来你可能只是这样做:
$result1 = mysql_query("SELECT * FROM friends WHERE friends = {$row{'name'}}");
此外,您通过索引获得非常不寻常的价值。通常使用[
和]
等括号。
答案 1 :(得分:1)
一些PHP错误:
AFAIR不是{{1}}而是$row{'name'}
,你应该在字符串之外启动变量。 $row['name']
$row{'cont'}
我不确定,为什么你需要$result = mysql_query("SELECT * FROM posts ORDER BY time DESC");
while ($row = mysql_fetch_array($result)) {
$name = $row['name'];
$result1 = mysql_query("SELECT * FROM friends WHERE friends = '$name'");
$row1 = mysql_fetch_array($result1);
if ($row == 1) {
echo "<b style='color: #D55292;'>".$row['name']."</b> says <br>".$row['cont']."<br><b style='color: #A1A1A1';>Posted on ".$row['time']."</b><br><br>";
}
}
分别$result1
,因为你没有在代码中使用它们。更好的解决方案是,如果你加入这两个表,那么你就不需要为每个帖子执行的第二个查询:
$row1
答案 2 :(得分:0)
您的第二个查询需要如下所示:$row['name']
$result1 = mysql_query("SELECT * FROM friends WHERE friends = '" . $row['name'] . "'");
答案 3 :(得分:0)
mysql_fetch_array()返回一个字符串数组。你不能写: -
$row1 = mysql_fetch_array($result1);
这就是它发出警告的原因: -
注意:第44行的C:\ xampp \ htdocs \ index.php中的数组到字符串转换
第二件事: -
$row{'name'}
- &LT;这种语法错了。请改用$row['name']
。
答案 4 :(得分:0)
我不知道你是如何编码的,但这就是我如何实现你的代码试图做我认为它正在尝试做的事情。
$result = mysql_query("SELECT * FROM posts ORDER BY time DESC");
//use mysql_fetch_assoc instead of mysql_fetch_array. Makes more sense to me
while ($row = mysql_fetch_assoc($result)) {
//Then instead or $row{'name'}, you use $row['name']
$result1 = mysql_query("SELECT * FROM friends WHERE friends = $row{'name'}");
$row1 = mysql_fetch_array($result1);
if ($row == 1) {
echo "".$row{'name'}." says
".$row{'cont'}."
Posted on ".$row{'time'}."
";
}
}
希望它有所帮助。