在链接到数据库行中的id的URL上使用$ _get

时间:2014-06-07 11:51:00

标签: php mysql

我试图在一个href中$ _get部分URL。我想要发生的是当您单击重定向到该特定链接的链接时。如果这是有道理的。

我有两个功能:

第一个功能,链接列表:

function showPosts() {
    $sql = ("SELECT * FROM blog");
    $query = mysql_query($sql);

    while ($row = mysql_fetch_array($query)) {
        $listId = $row["blog_id"];
        $showTitle = $row["title"];
        $showContent = $row["content"];
        $showTimestamp = $row["timestamp"];

        echo'
            <div>
            <a href="index.php?option=blog&task=view&id='$listId'"><h3>'.$showTitle.'</h3></a>
                <div>'.$showContent.'</div>
                <p>'.$showTimestamp.'</p>
            </div>
        ';
    }
}

第二个功能,重定向到链接:

function viewPost() {

    if(empty($_GET['id']) ) {
        $listId = '';   
    } else {
        $listId = $_GET['id'];
    }

    $sql = ("SELECT title, content, timestamp FROM blog WHERE blog_id='$listId'");
    $query = mysql_query($sql);

    while ($row = mysql_fetch_array($query)) {
        $showTitle = $row["title"];
        $showContent = $row["content"];
        $showTimestamp = $row["timestamp"];

        echo'
            <div>
                <h2>'.$showTitle.'</h2>
                <p>'.$showTimestamp.'</p>
                <div>'.$showContent.'</div>
            </div>
        ';
    }
}

正如您所看到的,我在这里使用$ _get [&#39; id&#39;]并且我读到$ _get可用于检索传递的url参数。

我设置URL的方式由交换机中的一组变量定义。

if(empty($_GET['task']) ) {
    $task = 'show'; 
} else {
    $task = $_GET['task'];
}


switch ($task){
    case "create":
        createPost();       
        break;
    case "save":
        savePost();
        break;
    case "show":
        showPosts();
        break;
    case "view":
        viewPost();
        break;
    default:    echo'Something went wrong!';
}

目前,当我点击某个链接时,它会重定向,但与该ID无关的所有内容都不存在。

修改

我弄清楚代码中出了什么问题。 在SQL语句中,我在撇号(&#39;)中使用点(。)将自己与变量分开。当我删除点时它工作正常。

blog_id='.$listId.'

不确定我为什么甚至首先使用这些圆点? :/

还根据一个答案的说明删除了我的交换机中的所有芯片。

1 个答案:

答案 0 :(得分:0)

您在交换机中滥用了die()命令。 Die命令用于处理错误,它会立即停止脚本执行并返回设置为参数的错误消息。尝试删除它。