$sql1 = 'SELECT * FROM someTable INNER JOIN someTable ON someTable.tID = someTable.threadID LEFT JOIN someTable ON someTable.ID = someTable.IMAGEID WHERE tID = $_GET["$somevariable"] ';
Запрос выше работает, если я ставлю tID
вручную в виде чисел. Я хочу использовать метод $_GET
на этой странице. Таким образом, метод $_GET
может запрашивать разные номера, когда направляется сюда с других страниц
Это возможно? если да, то как это сделать?
Я новичок, поэтому, пожалуйста, не просто дайте правильный код, но объясните, почему это происходит, поэтому я могу учиться на этом.
Если запрос работает, когда вы вручную заменяете $_GET
номером, я сначала должен убедиться, что значение $_GET['whatever']
установлено правильно. Используйте echo var_dump($_GET)
чтобы просмотреть всю информацию об этой переменной. Если переменная, по-видимому, правильно установлена, это может также быть проблемой с конкатенацией.
Попробуйте изменить
$sql1 = 'SELECT * FROM someTable INNER JOIN someTable ON someTable.tID = someTable.threadID LEFT JOIN someTable ON someTable.ID = someTable.IMAGEID WHERE tID = $_GET["$somevariable"] ';
в
$sql1 = 'SELECT * FROM someTable INNER JOIN someTable ON someTable.tID = someTable.threadID LEFT JOIN someTable ON someTable.ID = someTable.IMAGEID WHERE tID = '.$_GET["$somevariable"].' ';
Это правильно введет переменную в запрос.
Важная заметка
Вы не предоставляете какой-либо другой код, поэтому я не знаю, правильно ли вы обрабатываете входные данные, но вы действительно не должны так писать SQL-запросы. Посмотрите на PDO для параметризованных операторов. Если вы просто ввели $_GET
в запрос, представьте, должен ли кто-то вводить SQL в вашу форму.
Вы можете использовать этот способ:
$Id=$_GET["$somevariable"]; $sql1 = 'SELECT * FROM someTable INNER JOIN someTable ON someTable.tID = someTable.threadID LEFT JOIN someTable ON someTable.ID = someTable.IMAGEID WHERE tID = '. $Id ;