我的问题是我的网站中有一个链接列表,我想让它们在我的数据库中有数据时更改。更具体,如下图所示
我有6个不同的链接,但我想要做的是,只要教育表中的数据库中有数据(例如特定用户),我想自动将添加教育更改为编辑教育。我可以这样做,你将在下面的代码中看到,我不能做的部分是,当我在教育表和任何其他表中有数据时,我只需要更改到相应链接的名称和路径。我无法找到if语句(我想我正在使用IF)来做到这一点。你能救我吗?
我的数据库表:
这是代码......
<?php
$username = $_SESSION["username"];
if($query = mysql_query("SELECT * FROM education WHERE username='$username'"))
{
if(mysql_num_rows($query)<1)
{
?>
<li> <a href="education2.php">Add Education</a> </li>
<li> <a href="edit_skills.php">Edit Skills</a> </li>
<li> <a href="edit_portfolio.php">Edit Portfolio</a> </li>
<li> <a href="edit_work_history.php">Edit Work History</a> </li>
<li> <a href="edit_text.php">Edit Text</a> </li>
<?php
}
elseif($query = mysql_query("SELECT * FROM skills WHERE username='$username'"))
{
if(mysql_num_rows($query)<1)
?>
<li> <a href="edit_education.php">Edit Education</a> </li>
<li> <a href="skills2.php">Add Skills</a> </li>
<li> <a href="edit_portfolio.php">Edit Portfolio</a> </li>
<li> <a href="edit_work_history.php">Edit Work History</a> </li>
<li> <a href="edit_text.php">Edit Text</a> </li>
<?php
}
}
?>
答案 0 :(得分:1)
如果您想单独更改每个链接,则每个链接都需要一个人。
此外,您不应该在不清理用户数据的情况下连接用户数据,或者您将自己打开SQL注入攻击。您可以使用mysql_real_escape_string,甚至更好的预备语句。
固定代码应该是这样的:
<?php
$username = mysql_real_escape_string($_SESSION["username"]);
if($query = mysql_query("SELECT * FROM education WHERE username='$username'"))
{
if(mysql_num_rows($query)<1)
{
?>
<li> <a href="education2.php">Add Education</a> </li>
<?php
}
else
{
?>
<li> <a href="edit_education.php">Edit Education</a> </li>
<?php
}
}
if($query = mysql_query("SELECT * FROM skills WHERE username='$username'"))
{
if(mysql_num_rows($query)<1)
{
?>
<li> <a href="skills2.php">Add Skills</a> </li>
<?php
}
else
{
?>
<li> <a href="edit_skills.php">Edit Education</a> </li>
<?php
}
}
// Same for the next ones...
?>
答案 1 :(得分:0)
使用OO更容易。当用户登录时,您将加载他们的所有信息。然后在菜单中执行以下操作:
<?php
if(empty($user->getEducation())){
echo '<li> <a href="education2.php">Add Education</a> </li>';
}else{
echo '<li> <a href="education2.php">Edit Education</a> </li>';
}
...
?>
如果你想坚持使用程序,请执行:
<?php
if(empty($row['Education'])){
echo '<li> <a href="education2.php">Add Education</a> </li>';
}else{
echo '<li> <a href="education2.php">Edit Education</a> </li>';
}
...
?>
如果有帮助,请告诉我
答案 2 :(得分:0)
这个查询怎么样?
<强> MySQL的:强>
SELECT *
FROM education
INNER JOIN skills
ON education.username = skills.username
INNER JOIN portfolio
ON education.username = portfolio.username
WHERE username = $username
/*More INNER JOINs to every tables you have*/
这将所有表组合在一起以查询用户名。据我所知,这就是你所要求的。
删除新行并在mysql_query("")