根据我的数据库中是否有数据,更改我站点中的链接

时间:2015-03-01 10:51:37

标签: php mysql

我的问题是我的网站中有一个链接列表,我想让它们在我的数据库中有数据时更改。更具体,如下图所示 enter image description here

我有6个不同的链接,但我想要做的是,只要教育表中的数据库中有数据(例如特定用户),我想自动将添加教育更改为编辑教育。我可以这样做,你将在下面的代码中看到,我不能做的部分是,当我在教育表和任何其他表中有数据时,我只需要更改到相应链接的名称和路径。我无法找到if语句(我想我正在使用IF)来做到这一点。你能救我吗?

我的数据库表:

enter image description here

这是代码......

<?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

        }
    }
?>

3 个答案:

答案 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("")

中使用此行