【发布时间】:2014-01-17 20:19:20
【问题描述】:
我在弄清楚如何从包含所需列值的行中打印实际值时遇到了一些问题。我有两个php文件,quantity.php和quantity-inquiry.php,其中quantity.php有一个post提交表单,通过quantity-inquiry.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 的表单字段中键入“car”,quantity-inquiry.php 中的 $name 将回显“car”作为 $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”,并且它被设置为我的“$searchName”,它实际上并没有从表中选择它并将其打印为我的 $rowName, $rowPPI、$rowQuantity 和 $rowPrice。
我尝试了许多其他方法,但最终都会导致打印出某种错误或不正确的值。是我的查询错误还是我错误地设置/使用了我的变量?
【问题讨论】:
-
至少,
WHERE name=$name应该是WHERE name="$name"(您需要更好的引用解决方案,但这可以帮助您入门)。然后您可能还想从结果中获取数据,例如while($obj = $res->fetch_object()){ echo $obj->name; }。 -
@bishop 我已经编辑了我的代码。例如,我也尝试过 $rowName = $row->name...,但我总是在第 18 行得到错误。此外,我必须将变量名连接到字符串的末尾为了像你说的那样将它添加到字符串中。感谢您的意见