首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让mysql id出现在链接上?

问如何让mysql id出现在链接上?
EN

Stack Overflow用户
提问于 2011-09-25 06:19:14
回答 2查看 101关注 0票数 0

我是说,我试着把网页链接改成something.com/newpage.php?id=123...的样子。

我所拥有的是一个表单,以及一个在加载时运行AJAX的JavaScript函数:

代码语言:javascript
复制
$.ajax({
    type: "POST",
    url: "postear.php",
    data: "addcontentbox=" + addcontent,
    success: function() {
        $("ul#wall").prepend("<li><a href='newpage.php?id=<?php echo $rows['id']; ?>'  target='_blank'>"+addcontent+"</a></li>");
        $("ul#wall li:first").fadeIn();
        document.postbar_add_post.addcontent.value='';
        $('form#postbar_add_post input[type="submit"]').removeAttr('disabled');
    }
});

这是在url上调用的PHP函数:

代码语言:javascript
复制
<?php
if(isset($_POST['addcontent'])) 
{
    // Connection to Database
    include('config.php');

    // No Query Injection
    $message = mysql_real_escape_string($_POST['addcontent']);

    // echo
    $sql = 'INSERT INTO test.wall (message) VALUES("' . $message . '")';
    $result = mysql_query($sql);
    $rows = mysql_fetch_array($result);
    mysql_query($sql);
    echo $message;
}
else
{
    echo '0';
}
?> 

此外,我还尝试在那里放置一个_GET id。但是什么都没有。

有什么帮助吗?

pd:数据库是:

代码语言:javascript
复制
CREATE TABLE `test`.`wall` (
`id` INT( 6 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`message` VARCHAR( 255 ) NOT NULL
) ENG
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-25 07:34:23

首先,您需要更改此行

代码语言:javascript
复制
success: function() {
$("ul#wall").prepend("<li><a href='newpage.php?id=<?php echo $rows['id']; ?>'  target='_blank'>"+addcontent+"</a></li>");

至

代码语言:javascript
复制
success: function(data) {
$("ul#wall").prepend("<li><a href='newpage.php?id="+data+"    target='_blank'>"+addcontent+"</a></li>");

在php文件中,而不是下面这三行

代码语言:javascript
复制
   $rows = mysql_fetch_array($result);
    mysql_query($sql);
    echo $message;

你应该写

代码语言:javascript
复制
echo mysql_insert_id();

当然,您必须首先将数据库中的id fild设置为自动递增

改变这一点也无伤大雅

代码语言:javascript
复制
$sql = 'INSERT INTO test.wall (message) VALUES("' . $message . '")';

至

代码语言:javascript
复制
$sql = "INSERT INTO test.wall (`message`) VALUES('$message')";

我的意思是这样更容易

票数 0
EN

Stack Overflow用户

发布于 2011-09-25 06:30:54

我非常确定您需要调用mysql_insert_id而不是mysql_fetch_array。也就是说,您还没有从mysql中调出自动增量ID (这是在假设您的墙面上有一个自动增量主键。?)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7542282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档