如何在链接上显示mysql ID?

时间:2011-09-24 22:19:14

标签: php javascript jquery mysql

我的意思是,我正在尝试将网络链接看作something.com/newpage.php?id=123...

我所拥有的是一个表单,以及运行此AJAX的加载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函数:

<?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:dabase是:

CREATE TABLE `test`.`wall` (
`id` INT( 6 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`message` VARCHAR( 255 ) NOT NULL
) ENG

2 个答案:

答案 0 :(得分:1)

我很确定你需要调用mysql_insert_id而不是mysql_fetch_array。即你还没有从mysql中撤回自动增量ID(这就是假设你的墙表有一个自动增量主键......?)

答案 1 :(得分:0)

首先你需要改变这一行

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

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

并在php文件中而不是这三行

   $rows = mysql_fetch_array($result);
    mysql_query($sql);
    echo $message;
你应该写

echo mysql_insert_id();

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

改变这个没有坏处

$sql = 'INSERT INTO test.wall (message) VALUES("' . $message . '")';

$sql = "INSERT INTO test.wall (`message`) VALUES('$message')";

我的意思是这样更容易