Я искал ответ, но не мог найти его, поскольку проблема здесь немного отличается.
$vid = $_SESSION['ID_Vendor'];
echo "ID: $vid";
$q = 'SELECT business_name, vd.ID_Vendor, res.ID_RestaurantEstablishment
FROM restaurant res
INNER JOIN vendor_data vd
ON vd.ID_Vendor=res.ID_Vendor AND res.ID_Vendor="$vid" ORDER BY business_name ASC';
переменный $ VID действительно имеет значение (равное 2, в данном случае, но она может быть разной), ОДНАКО, когда я специально установлен
WHERE res.ID_Vendor=2
мой запрос возвращает правильный и ожидаемые список значений, но когда, вместо этого, я использую
WHERE res.ID_Vendor="$vid"
с «$ VID», эхо моих значений просто пусто.
Ниже приведен полный фрагмент кода, также отображающий выход. Спасибо за помощь.
$vid = $_SESSION['ID_Vendor'];
echo "ID: $vid";
$q = 'SELECT business_name, vd.ID_Vendor, res.ID_RestaurantEstablishment
FROM restaurant res
INNER JOIN vendor_data vd
ON vd.ID_Vendor=sfe.ID_Vendor AND res.ID_Vendor="$vid" ORDER BY business_name ASC';
$r = mysqli_query($connection, $q);
while ($row = mysqli_fetch_array ($r, MYSQLI_NUM)) {
echo '>' . htmlspecialchars($row[0]) . ' ' . htmlspecialchars($row[1]) . ' ' . htmlspecialchars($row[2]) .'</option>';
}
Разве это имеет значение? '$ д = "SELECT BUSINESS_NAME, vd.ID_Vendor, res.ID_RestaurantEstablishment от ресторана Рез INNER JOIN vendor_data Vd ON vd.ID_Vendor = res.ID_Vendor И res.ID_Vendor = $ við ORDER BY BUSINESS_NAME ASC";' – blazerunner44
Повторите свой запрос перед тем, как выполнить его, и я думаю, что проблема станет очевидной. Вы можете полностью устранить проблему, если будете читать подготовленные заявления. –
Дарвин, спасибо. Но почему бы подготовленное заявление изменить ситуацию? Я бы подумал, что вместо этого будет работать хранимая процедура, не так ли? Позвольте мне попробовать оба. –