在foreach

时间:2016-01-16 18:39:16

标签: php mysql pdo

我试图创建一个php文件,点击“编辑”按钮。链接它将获取该作业ID并在我的应用程序表中列出jobRef的行数。

这只是列出我网站上提供的不同职位的所有申请。

<?php
require 'mysqlcon.php';
if(isset($_GET['id']))
{

$stmt = $pdo->query('SELECT FROM applications WHERE applicationID = :id');
$results = $stmt->fetchAll();

echo "<table><tr><td>Job Reference</td><td>Job Title</td><td>Job Location</td><td>Job Description</td><td>Salary</td><td>Availability</td> <td>Category</td><td>Apply</td>";
foreach ($results as $row) {
    echo "<tr><td>".$row['applicationID']."</td>". "<td>".$row['jobRef']."</td>", "<td>".$row['fName']."</td>", "<td>".$row['lName']."</td>";
}
}

?>

我的错误是我无法让我的代码工作;我尝试过使用&#34; PDO :: FETCH_ASSOC&#34;但仍然没有帮助。

关于我哪里出错的任何想法?

1 个答案:

答案 0 :(得分:2)

对于绑定/参数化查询,您需要使用prepareexecute。您还需要将值传递给查询。试试这个:

$stmt = $pdo->prepare('SELECT * FROM applications WHERE applicationID = ?');
$stmt->execute(array($_GET['id']));
$results = $stmt->fetchAll();

您的select查询还需要您选择的值。我已将*放入每列。如果您只想要一些列,请用逗号分隔它们。

echo中的连接和逗号分隔很奇怪,但我认为应该有效..

最后请注意,您的table并未关闭;您应该在</table>之后添加foreach

使用错误的最终附加说明http://php.net/manual/en/pdo.errorinfo.php