У меня возникают некоторые проблемы, связанные с тем, как печатать фактические значения из строки, содержащей требуемое значение столбца. У меня есть два php-файла, количество.php и количество-запрос.php, где количество.php имеет форму отправки сообщения, которая перенаправляет через величину-запрос.php для выполнения фактического sql.
количество-запрос открытие PHP:
//--------------------------------------------------------------------------
// 1) Connect to mysql database
//--------------------------------------------------------------------------
include 'db-connect-99k.php';
$db = new mysqli($host, $user, $pass, $databaseName);
if($db->connect_errno > 0){
die('Unable to connect to database [' . $db->connect_error . ']');
}
//--------------------------------------------------------------------------
// 2) Query database for data
//--------------------------------------------------------------------------
$searchName = $_POST['name'];
$res = $db->query("SELECT * FROM inventory WHERE name=$searchName");
$ searchName устанавливается соответствующим образом из $ _POST (я могу повторить это и печатает правильный входной сигнал от поля формы количества):
<p> Product Name or PPI required (both not required) </p>
<p>--------------------------------------------------</p>
<form action="quantity_inquiry.php" method="post">
Product Name: <input type="text" name="name"><br />
PPI: <input type="text" name="ppi"><br />
<input type="submit" name="submit" id="submit">
</form>
Другими словами, если я нахожу «автомобиль» в поле формы quantity.php, $ name в количестве-запросе.php выдает «автомобиль» в качестве переменной $ name. Проблема, с которой я сталкиваюсь, заключается в том, что с использованием $ name в качестве моего запроса:
$searchName = $_POST['name'];
$sql = "SELECT * FROM inventory WHERE name='".$searchName."'";
$res = $db->query($sql);
Я никогда не могу получить фактические значения. Я пытался тонны материала, например:
while($row = $res->fetch_assoc()){
$rowName = $row['name'];
$rowPPI = $row['ppi'];
$rowQuantity = $row['quantity'];
$rowPrice = $row['price'];
}
Для установки переменных с последующим
<tr>
<td> $rowName </td>
<td> $rowPPI </td>
<td> $rowQuantity </td>
<td> $rowPrice </td}
</tr>
ли на самом деле не выбрать поле. Например, если я ЗНАЮ, что у меня есть «product1» в столбце «name» моей таблицы инвентаря, и он задан как «$ searchName», он фактически не выбирает его из таблицы и не выводит его как мое $ rowName, $ rowPPI, $ rowQuantity и $ rowPrice.
Я пробовал ряд других вещей, все из которых заканчиваются какой-либо ошибкой или неправильным значением. Является ли мой запрос неправильным или я неправильно устанавливаю/использую свои переменные?
Как минимум 'WHERE name = $ name' должно быть,' WHERE name = "$ nam e "(вам нужно лучшее предложение для цитирования, но это поможет вам начать работу). И тогда вы, вероятно, также захотите получить данные из своего результата, так что что-то вроде 'while ($ obj = $ res-> fetch_object()) {echo $ obj-> name; } '. – bishop
@bishop Я редактировал свой код. Я пробовал это как, например, $ rowName = $ row-> name ..., но я всегда получаю ошибку в строке 18. Кроме того, мне пришлось конкатрировать имя переменной в конец строки чтобы добавить его в строку, как вы говорили. Спасибо за ваш ввод – zgc7009