我正在构建一个简单的错误跟踪工具。 您可以创建新项目,当您创建项目时,您必须填写表单,形成发布到project.class.php(这是此代码)
$name = $_POST['name'];
$descr = $_POST['description'];
$leader = $_POST['leader'];
$email = $_POST['email'];
$sql="INSERT INTO projects (name, description, leader, email, registration_date)
VALUES ('$name', '$descr', '$leader', '$email', NOW())";
$result = mysql_real_escape_string($sql);
$result = mysql_query($sql);
if($result){
header('Location: ../projectpage.php?id='.mysql_insert_id());
}
else {
echo "There is something wrong. Try again later.";
}
mysql_close();
(它还没有sql注入证明,远非完整...)
最终,您将被重定向到唯一的项目页面,该页面链接到存储在MySQL数据库中的ID。我想在页面上显示该项目的名称,但它始终显示数据库中第一个项目的名称。
(这里我从MySQL数据库中选择数据。)
$query = 'SELECT CONCAT(name)
AS name FROM projects';
$result = mysql_real_escape_string($query);
$result = mysql_query ($query);
(这里我在我的页面上显示了项目的名称,但它始终是MySQL数据库中第一个项目的名称)
<?php
if ($row = mysql_fetch_array ($result))
echo '<h5>' . $row['name'] . '</h5>';
?>
如何显示正确项目的名称?与id链接的那个? 我有使用WHERE ....?
答案 0 :(得分:0)
是的,您必须使用WHERE来指定您想要获得的项目。我还不确定为什么你只想要一个项目时使用CONCAT功能。
其他重要的是你必须在参数之前使用mysql_real_escape_string()函数你把它们放在查询字符串中。并为您收到的特定类型的数据使用适当的函数。
因此,您获取项目的声明应如下所示:
SELECT name FROM projects WHERE id = ' . intval($_GET['id'])
同样在使用mysql_fetch_assoc()函数之前,检查结果中是否有任何记录
if(mysql_num_rows($result) > 0)
{
$project = mysql_fetch_assoc($result);
/* $project['name'] */
}
答案 1 :(得分:0)
试试这个
// first get the id, if from the url use $_GET['id']
$id = "2";
$query = "SELECT `name` FROM `projects` WHERE `id`='".intval($id). "'";
$result = mysql_query(mysql_real_escape_string($query));
使用mysql_fetch_row
,在这里你不必循环遍历每条记录,只返回单行
// if you want to fetch single record from db
// then use mysql_fetch_row()
$row = mysql_fetch_row($result);
if($row) {
echo '<h5>'.$row[0].'</h5>';
}
$row[0]
表示您的选择查询中提到的第一个字段,此处为name
答案 2 :(得分:-1)
可能有帮助:
您当前正在协助查询字符串参数projectpage.php?id=
当你访问页面时,sql必须选择并过滤查询字符串参数,如下所示:
$query = 'SELECT CONCAT(name) AS name FROM projects WHERE projectid ='. $_GET["id"];
$result = mysql_real_escape_string($query);
$result = mysql_query ($query);
也可以在分配结果后将mysql_insert_id()移到右边以保证安全。
$result = mysql_query($sql);
$insertId = mysql_insert_id();
然后当你将它分配给查询字符串时,只需使用参数和
header('Location: ../projectpage.php?id='.$insertId);