Как использовать переменную $ result с объектом таблицы в SQL-запросе с использованием mySQLi

Я пытаюсь сделать этот код работающим, но он работает только до тех пор, пока второе эхо-выражение echo "Finished 2"; ,

 <?php if (count($_GET) > 0){ $sql = "SELECT * FROM winery WHERE winery_name='".$_GET['winery_name']."'"; echo "Finished 1"; $result = $db->query($sql); echo "Finished 2"; $sql = "SELECT * FROM".$result."WHERE wine_type='".$_GET['wine_type']."'"; echo "Finished 3"; $result = $db->query($sql); echo "Finished 4"; $sql = "SELECT * FROM".$result.", wine_variety WHERE wine_id=wine_variety.wine_id"; echo "Finished 5"; $result = $db->query($sql); echo "Finished 6"; $sql = "SELECT * FROM".$result."WHERE variety_id='".$_GET['grape_variety']."'"; echo "Finished 7"; $result = $db->query($sql); echo "Finished all queries"; } ?> 

Проблема, исходя из моего понимания, заключается в том, что sql не распознает $result в качестве таблицы, но $result сохраняет таблицу возврата из моего запроса. Как я могу заставить SQL использовать таблицу возврата из $result в новый запрос?

введите описание изображения здесь

Я думаю, что из вашей таблицы winery вы получаете другое имя таблицы ???

Если это так, вам нужно получить строку из результата $ result, а затем получить соответствующий столбец из таблицы winery (т.е. столбец с другим именем таблицы).

Лучшим вариантом BTW будет объединение двух таблиц.

Еще один момент, когда я думаю, что вы совершаете ошибку,

 $sql = "SELECT * FROM".$result."WHERE wine_type='".$_GET['wine_type']."'"; 

должно быть

 $sql = "SELECT * FROM ".$result." WHERE wine_type='".$_GET['wine_type']."'"; 

пространство между FROM & double quote и между двойной цитатой и WHERE

Чтобы получить winery_id из winary_name, вы можете написать свою HTML-форму, например

 <select name="winary_id"> <option value="Winary ID HERE">Winary Name Here</option> // you can generate your dynamic options like this which will return id instead of name </select>