Php SQL无法获取记录
我正试图根据用户的需求将特定记录输出到.csv中。到目前为止,我能够让.csv正常工作,但现在我正试图从表单中获取一条记录,我不断收到消息,它无法获取我的sql记录 是的,您可能会说,将我的php代码放在页面顶部可能会有问题,但我将其放在页面顶部的原因是为了避免将html标记打印到.csv文件中 这是我目前的代码:Php SQL无法获取记录,php,mysql,sql,csv,Php,Mysql,Sql,Csv,我正试图根据用户的需求将特定记录输出到.csv中。到目前为止,我能够让.csv正常工作,但现在我正试图从表单中获取一条记录,我不断收到消息,它无法获取我的sql记录 是的,您可能会说,将我的php代码放在页面顶部可能会有问题,但我将其放在页面顶部的原因是为了避免将html标记打印到.csv文件中 这是我目前的代码: <?php if(isset($_POST['submit'])) { $material = $_POST['materials'];
<?php
if(isset($_POST['submit']))
{
$material = $_POST['materials'];
mysql_connect('localhost', 'root', 'pw');
mysql_select_db ("db");
$result = mysql_query("SELECT " . $material . " FROM materials");
if (!$result)
die('Couldn\'t fetch records');
$num_fields = mysql_num_fields($result);
$headers = array();
for ($i = 0; $i < $num_fields; $i++)
{
$headers[] = mysql_field_name($result , $i);
}
$fp = fopen('php://output', 'w');
if ($fp && $result)
{
header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename="export.csv"');
header('Pragma: no-cache');
header('Expires: 0');
fputcsv($fp, $headers);
while ($row = mysql_fetch_row($result))
{
fputcsv($fp, array_values($row));
}
die;
}
}
?>
<h1>Generate Reports</h1>
<form enctype="multipart/form-data" action="create" method="post">
<table>
<tr>
<td><strong>Materials</strong></td>
<?php
mysql_connect('localhost', 'root', 'pw');
mysql_select_db ("db");
$sql = "SELECT material_name FROM materials";
$result = mysql_query($sql);
echo "<td><select name='materials'>";
while ($row = mysql_fetch_array($result))
{
echo "<option value='" . $row['material_name'] . "'>" .
$row['material_name'] . "</option>";
}
echo "</select></td></tr> ";
$sql2 = "SELECT location_name From locations";
$result2 = mysql_query($sql2);
?>
<td><strong>Locations</strong></td>
<?php
echo "<td><select name='locations'>";
while ($row2 = mysql_fetch_array($result2))
{
echo "<option value='" . $row2['location_name'] . "'>" .
$row2['location_name'] . "</option>";
}
echo "</select></td></tr>";
?>
<tr>
<td><button name="submit" type=submit>Generate</button></td>
</tr>
</table>
</form>
您想从表中获取特定材料的记录吗
如果你使用-
$result = mysql_query("SELECT " . $material . " FROM materials");
这句话似乎不太好。。实际上,要选择材质,您必须具有where子句,并且在变量$material的位置,您需要传递您要选择的列或*用于所有列。你的问题可能是这样的-
$result = mysql_query("SELECT * FROM materials where Material_Name = ".$material);
现在,它将返回material表中的所有记录,其中material name是您传递的值。sql连接?我不明白你的意思。更具体一点。将mysql\u fetch\u row
更改为mysql\u fetch\u array
在您的代码中我想我忘了放“where”部分,但它仍然无法从表单中检索值!Nvm,我打错了。工作正常:)请参见变量$material是否具有正确的材质名称??让我们考虑您输入了“XXX”的材质名称,然后在您的案例中执行什么查询?也就是说-从物料中选择XXX,但实际上查询将从物料中选择*,其中物料\u name=XXX,因此请同时更改查询