Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.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\u查询不起作用,但获取正确的id_Php_Mysql - Fatal编程技术网

Php mysql\u查询不起作用,但获取正确的id

Php mysql\u查询不起作用,但获取正确的id,php,mysql,Php,Mysql,我有一个表课程的列表类别。我想当用户选择他想要的类别时,他会看到这个类别的新闻列表。 所以我需要的是保存类别的名称,这样我就可以用这个类别在表news news中搜索。 但是功能mysql\u查询不想工作,我不知道问题出在哪里,它显示警告: mysql_fetch_assoc期望参数1是给定的资源布尔值 在里面 按类别列出: 列出带有警告的结果 <?php $conn = mysql_connect ("localhost", "root", "") or die ("Соединен

我有一个表课程的列表类别。我想当用户选择他想要的类别时,他会看到这个类别的新闻列表。 所以我需要的是保存类别的名称,这样我就可以用这个类别在表news news中搜索。 但是功能mysql\u查询不想工作,我不知道问题出在哪里,它显示警告:

mysql_fetch_assoc期望参数1是给定的资源布尔值 在里面 按类别列出:

列出带有警告的结果

 <?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更好

谢谢,它现在可以工作了。

如果课程是一个字符串,它应该是:

$id = mysql_real_escape_string($_GET['id']);
$res = mysql_query("SELECT * FROM news WHERE course = '$id'"); /* MISTAKE IS HERE*/

您需要在字符串值周围加引号,并且应该转义参数以防止SQL注入。

执行如下选择查询

 $res = mysql_query("SELECT * FROM news WHERE course = '{$_GET['id']}'");

查询中{$\u GET['id']}周围缺少引号?另外,永远不要创建这样的sql查询:天哪,是的,现在就可以了为什么你不喜欢我的sql查询?@Vladlena-这是因为你把来自$\u GET的数据直接放到你的查询中。这是非常不安全的——您根本没有检查数据,因此有人可以有效地运行数据库中所需的任何SQL。您需要改用绑定参数。
 $res = mysql_query("SELECT * FROM news WHERE course = '{$_GET['id']}'");