duanpenpan5796 2014-06-07 03:51
浏览 27
已采纳

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

I'm trying to $_get part of URL in a href. What I want to happen is when you click the link you a redirected to that specific link. If that makes sense.

I have 2 functions:

First function, The list of links:

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>
        ';
    }
}

Second function, redirect to link:

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>
        ';
    }
}

As you can see i'm using $_get['id'] here and I read that $_get can be used to retrieve passed url parameters.

The way i have set up the URL is defined by a set of variables in a switch.

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!';
}

Currently when I click a link, it redirects but all of the content related to that id is not there.

EDIT

I figured out what was wrong in the code. In the SQL statement I used dots(.) inside apostrophes(') to separate themselfes from the variable. When I removed the dots it worked fine.

blog_id='.$listId.'

Not sure why I even used the dots in the first place? :/

Also removed all the die's in my switch as per instruction from one answer.

展开全部

  • 写回答

1条回答 默认 最新

  • douzhou7037 2014-06-07 04:04
    关注

    You are misusing the die() command in the switch. Die command is used to handle errors, it stops immediately the script execution and returns the error message set as argument. Try removing it.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部