我有一个表“课程”的列表(类别)。我想当用户选择他想要的餐馆时,他会看到这个类别的新闻列表(来自表“新闻”)。 所以我需要的是保存类别的名称,所以我可以用这个类别搜索表“新闻”新闻。 但功能mysql_query不想工作,我不知道这里的问题在哪里,它显示警告:
mysql_fetch_assoc()期望参数1是资源,给定布尔值 在 列表与类别:
$conn = mysql_connect ("localhost", "root", "") or die ("Соединение не установлено!");
mysql_select_db('university');
mysql_query("SET NAMES 'utf8'");
$res = mysql_query("SELECT * FROM courses");
while($course = mysql_fetch_assoc($res)) {?>
<tr>
<td><?=$course['id']?></td>
<td><a href="category_courses_detail.php?id=<?=$course['name']?>"><?=$course['name']?> </td>
</tr><?
}?>
</tbody></table>
列出结果(带警告)
<?php
$conn = mysql_connect ("localhost", "root", "") or die ("Соединение не установлено!");
mysql_select_db('university'); // выбор БД
mysql_query("SET NAMES 'utf8'"); // кодировка
$res = mysql_query("SELECT * FROM news WHERE course = {$_GET['id']}"); /* MISTAKE IS HERE*/
var_dump($res) ;
echo $_GET['id'];
mysql_error();
while($news = mysql_fetch_assoc($res)) {?>
<table border="1" align="center" style="word-wrap: break-word;" width="80%" cellspacing="0" cellpadding="1">
<tr><th width="30">ID</th><th>Название</th></tr>
<tr>
<td><a href="detail.php?id=<?=$news['id']?>"><?=$news['id']?></td>
<td><a href="detail.php?id=<?=$news['id']?>"><?=$news['program']?></td>
</tr><?
}?>
</tbody></table>
因为我正在使用echo $ _GET ['id'];我看到它得到了我需要的东西(类别的名称,但仍然不起作用)
是的,我知道使用mysqli或pdo更好
谢谢你,它现在有效。
答案 0 :(得分:1)
如果course
是字符串,则应为:
$id = mysql_real_escape_string($_GET['id']);
$res = mysql_query("SELECT * FROM news WHERE course = '$id'"); /* MISTAKE IS HERE*/
您需要围绕字符串值引用,并且应该转义参数以防止SQL注入。
答案 1 :(得分:0)
执行SELECT Query,如下面
$res = mysql_query("SELECT * FROM news WHERE course = '{$_GET['id']}'");