从数据库中检索并显示注释/查询

时间:2012-09-17 18:35:16

标签: php sql web-application-design

我正在使用php / sql开发一个Web应用程序,用户可以发布他们想要销售的商品(有点像ebay)。我希望非会员能够对项目发表评论或询问有关项目的问题。

我的问题是我想以与Facebook墙工作方式类似的方式显示每个项目以及有关该项目的任何评论/查询。

我想对每个项目“附加评论”(如果有的话)。 comments表通过列item_id链接到items表。而items表通过列user_id链接到users表。我已经离开了带有项目表的连接用户表来显示项目详细信息,我试图离开连接注释表,以便有3个连接表。

失败,因为没有显示任何注释,只显示一个项目,尽管每个表中有多个条目。这是代码i,m使用。

$database->query
    ('
    SELECT sale.*, query.*, users.id AS userid, users.username as user 
    FROM sale 
    LEFT JOIN users ON sale.user_id = users.id 
    LEFT JOIN query on sale.id = query.item_id
    where category = "$category" ORDER BY sale.id DESC
    ');

    $show = " "; //variable to hold items and comments

    if ($database->count() == 0) {

      // Show this message if there are no items  

      $show .= "<li class='noitems'>There are currently no items to display.</li>" ; 

    } else {

        $show .= "<li>";

        while ( $items = $database->statement->fetch(PDO::FETCH_ASSOC) )  
        {

            $show .= "
                //show item details in html
               ";

            while( $query = $database->statement->fetch(PDO::FETCH_ASSOC) )
            {

                $show .= "
                  //show queries below item details
                        ";                    
            }     

      $show .= "</li>" ; 
        }

1 个答案:

答案 0 :(得分:0)

欢迎使用Stackoverflow!

我建议你看一下pdo。如果您已经在使用mysql_功能,那么我建议您切换。有关详情,可以找到here


现在您指向了连接/运行查询时要使用的函数的方向,现在应该创建表。我使用phpmyadmin来管理我的数据库,我发现它非常好,但这取决于你使用的是什么。一旦您决定使用您用于管理数据库的服务,您就应该通过谷歌搜索来学习如何使用它。


现在您需要设置表并正确构建它。如果你说你有物品,那么你应该制作一个名为items的表。接下来,为列的属性创建列。另外,我建议阅读Database Normalization,这是设置SQL表等的一个关键方面。


设置好所有内容后,您已成功连接到数据库等等。您现在需要设置“动态页面”。我的意思是,只有一个页面,称为“动态”,然后将变量传递给url。这些称为GET HTTP请求。以下是一个示例:http://example.com/item?id=345

如果您已注意到,则会看到?,然后将id变量定义为345。您可以通过访问名为url的内置PHP数组,从$_GET[] GRAB此变量。然后,您可以输入要提取到[]的变量名称。这是一个例子。

<?php
$data = $_GET['varname']; // get varname from the url
if(isnumeric($data)){ // is it totally made out of numbers?
    $query = "SELECT fieldname FROM table WHERE id=:paramname";
    $statement = $pdo->prepare($query); // prepare's the query
    $statement->execute(array(
        'paramname'=>$data // binds the parameter 'paramname' to the $data variable.
    ));
    $result = $statement->fetch(PDO::FETCH_ASSOC); // grabs the result of the query
    $result = $result['fieldname'];
    echo 'varname was found in the database with the id equal to:'.$data.', and the             result being: '.$result;
}
?>

现在,您可以看到如何从网址中获取变量,并动态更改页面中的内容!

希望这有助于:)