Выбор данных из mySQL с использованием идентификатора в URL-адресе

У меня есть таблица с столбцами

GroupID | GroupName | GroupDesc | Overs | ----------------------------------------- 1 | Test Group|Description| Yes | 

У меня есть страница под названием list.php, и в настоящее время она создает URL для каждой строки в БД в таблице групп (см. Выше).

Код не самый красивый, но я думаю, что он работает, это код

list.php

 <?php $result = mysql_query("SELECT * FROM groups"); while($row = mysql_fetch_array($result)) { echo "<div class=\"divider\">"; echo "<a href=\"group.php?id="; echo $row['GroupID']; echo "\">"; echo $row['GroupName']; echo "</a>"; echo "<br><br>"; echo $row['GroupDesc']; echo "<br>"; echo "Over 18's: "; echo $row['AgeRes']; echo "</div>"; } ?> 

Затем создается URL-адрес, такой как http://domainname.com/group/group.php?id=1

Вот где мои вопросы: как я могу выбрать соответствующую строку из БД выше, используя раздел ID в URL?

Мой второй вопрос заключается в том, как бы мы прекратили это инъекцию SQL?

Я как бы новичок во всем этом, поэтому мне бы хотелось ответить на этот и любые хорошие источники чтения, чтобы я мог развивать свои навыки дальше.

благодаря

Чтобы ответить на первый вопрос, вам нужно использовать предложение where в вашем запросе. Я не уверен, правильно ли используется имя столбца, но я уверен, что вы поняли эту идею. Существуют бесплатные загружаемые интерактивные интерактивные учебники SQL, которые вы можете использовать, чтобы получить представление о том, как выполнять кодовые запросы.

Чтобы ответить на ваш второй вопрос, вы можете использовать mysql_real_escape_string() для mysql_real_escape_string() передаваемой переменной. Лучше всего изменить способ подключения к базе данных. PDO и mysqli делают гораздо лучшую работу по подключению к базе данных. Вы должны посмотреть на их изучение – особенно если вы только начинаете.

 <?php $id=mysql_real_escape_string($_GET['id']); $result = mysql_query("SELECT * FROM groups where id=".$id.";"); // Am not 100% sure if that is the right column name to use for your database. while($row = mysql_fetch_array($result)) { echo "<div class=\"divider\">"; echo "<a href=\"group.php?id="; echo $row['GroupID']; echo "\">"; echo $row['GroupName']; echo "</a>"; echo "<br><br>"; echo $row['GroupDesc']; echo "<br>"; echo "Over 18's: "; echo $row['AgeRes']; echo "</div>"; } ?> 

Q1: вам нужно получить переменную запроса и включить в свой SQL-запрос:

 $result = mysql_query("SELECT * FROM groups WHERE id = '" . $_GET['id'] . "'"); 

Q2: сначала вы должны избежать значения, прежде чем включать в свой запрос:

 $id = (int)mysql_real_escape_string($_GET['id']); 

Затем измените свой запрос на следующее:

 $result = mysql_query("SELECT * FROM groups WHERE id = '" . $id . "'");