Ajax和PHP -读取Mysql表与Ajax不被打印


Ajax & PHP - Fetching Mysql table with Ajax not being printed

我正在做一个评论系统。我需要能够发布(插入数据库)和帖子自动必须是可见的网站以及。

我有两个PHP文件,一个是主页(index.php)和一个连接到数据库和获取(connect_to_database.php)。

从connect_to_database.php我连接到数据库,并尝试获取行。然后Ajax脚本应该打印到一个div的信息。

我可以发布,我可以检查信息是否添加到数据库中,但我没有看到任何数据库行打印。

问题可能是与Ajax脚本?

谢谢你的帮助,

connect_to_database.php

...
$connect=mysqli_connect($mysql_host, $mysql_user, $mysql_password, $mysql_database);
//$connect=mysqli_connect("localhost", "commenter","phyBq2JT", "udb_commenter" );
// Check connection
if (mysqli_connect_errno())
{
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$db_select = mysqli_select_db($connect,'udb_commenter');
$sql="SELECT * FROM $TABLE_NAME";
$result=mysqli_query( $connect, $sql);

$array = mysqli_fetch_row($result);
echo json_encode($array);
?>

index . php这里只是Ajax代码的一部分。在它上面,我有一个工作连接到数据库。

<div class="output-post" id="output">
                        <script language="JavaScript" id="print" type="text/javascript" src="jquery.js">
                            $(function ()
                            {
                                $.ajax({
                                    url: 'connect_to_database.php',
                                    data: "",
                                    dataType: 'json',
                                    success: function(data)
                                    {
                                        var id = data[0];
                                        var name = data[1];
                                        var email = data[2];
                                        var type = data[3];
                                        var message = data[4];
                                        var date = data[5];
                                        $('.output-post').html("<b>id: </b>"+id+"<b> name: </b>"+name+email+type+message+date);
                                    }
                                });
                            });
                        </script>
</div>

sql表

CREATE TABLE IF NOT EXISTS `posts` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(40) NOT NULL,
  `email` varchar(60) NOT NULL,
  `type` varchar(40) NOT NULL,
  `message` text NOT NULL,
  `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
);

我认为"数据"在你的成功方法不是一行,这是行。因此,您必须一次访问一行或使用"foreach"。

<div class="output-post" id="output">
                        <script language="JavaScript" id="print" type="text/javascript" src="jquery.js">
                            $(function ()
                            {
                                $.ajax({
                                    url: 'connect_to_database.php',
                                    data: "",
                                    dataType: 'json',
                                    success: function(data)
                                    {
                                        jQuery.each(data.rows, function() {
                                           var id = this[0];
                                           var name = this[1];
                                           var email = this[2];
                                           var type = this[3];
                                           var message = this[4];
                                           var date = this[5];
                                           $('.output-post').append("<b>id: </b>"+id+"<b> name: </b>"+name+email+type+message+date);
                                        });
                                    }
                                });
                            });
                        </script>
</div>

也把你的php代码改成如下:

$array = mysqli_fetch_row($result);
echo "{'rows':" . json_encode($array) . "}";
?>