1

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

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

我想为每个项目“附加评论”(如果有的话)。评论表通过列 item_id 链接到项目表。并且项目表通过列 user_id 链接到用户表。我已经离开加入用户表和项目表以显示项目详细信息,我也尝试离开加入评论表,以便有 3 个加入表。

这失败了,因为没有显示评论并且只显示一个项目,尽管每个表中有多个条目。这是我正在使用的代码。

$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>" ; 
        }
4

1 回答 1

0

欢迎来到 Stackoverflow!

我建议你看看pdo。如果您已经在使用mysql_函数,那么我建议您切换。更多信息可以在这里找到。


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


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


完成所有设置后,您就已成功连接到数据库等。您现在需要设置“动态页面”。我的意思是,只有一页,比如说“动态”,然后将一个变量传递给url. 这些称为GETHTTP 请求。这是一个看起来像的示例:http ://example.com/item?id=345 。

如果您注意到了,您会看到?定义id345. 您可以通过访问url名为$_GET[]. []然后,您可以在's 中输入要获取的变量名称。这是一个例子。

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

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

希望这有帮助:)

于 2012-09-17T18:57:13.900 回答