Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从数据库检索和显示注释/查询_Php_Sql_Web Application Design - Fatal编程技术网

Php 从数据库检索和显示注释/查询

Php 从数据库检索和显示注释/查询,php,sql,web-application-design,Php,Sql,Web Application Design,我正在用php/sql开发一个web应用程序,用户可以在其中发布他们想出售的物品,有点像易趣。我希望非成员能够对项目发表评论或询问有关项目的问题 我的问题是,我想以类似于Facebook墙的方式显示每个项目以及对该项目的任何评论/查询 我想在每个项目中添加注释SIF any。comments表通过列item_id链接到items表。items表通过列user_id链接到users表。我已将join users表与items表保留在一起以显示项目详细信息,我也尝试将join comments表保留

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

我的问题是,我想以类似于Facebook墙的方式显示每个项目以及对该项目的任何评论/查询

我想在每个项目中添加注释SIF any。comments表通过列item_id链接到items表。items表通过列user_id链接到users表。我已将join users表与items表保留在一起以显示项目详细信息,我也尝试将join comments表保留在一起,以便有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>" ; 
        }

欢迎来到Stackoverflow

我建议你看一看。如果您已经在使用mysql函数,那么我建议您切换。更多关于这方面的信息可以找到

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

现在,您需要设置表并正确地构建它。如果你说你有物品,那么你应该做一个叫做物品的表格。接下来,创建项目属性的列。此外,我还建议您阅读,这是设置SQL表等的一个关键方面

设置好所有内容后,就可以成功连接到数据库等。现在需要设置动态页面。我的意思是,只有一个页面,比如说叫做“dynamic”,然后一个变量被传递到url。这些被称为GET HTTP请求。下面是一个示例,展示了一个人的样子:

如果你注意到了,你会看到?然后将id变量定义为345。您可以通过访问名为$\u GET[]的内置PHP数组从url获取此变量。然后,您可以键入要获取到[]中的变量名。这里有一个例子

<?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获取变量,并从中动态更改页面中的内容


希望这有所帮助:

您只需要一个注释表,其中包含指向itemID的链接,当然可以吗?如果您已经显示了项目详细信息,那么您就已经有了可以读取和写入数据库的代码。您可能需要在主体内部追加注释,同时使用ajax将注释保存在注释表中,并带有指向项目的链接@andrewsi inderedYes,@andrewsi我确实有代码可以读取和写入数据库,我已经在显示项目详细信息。当我想像你们指出的那样在每一个条目上添加注释时,麻烦就开始了。comments表通过列item_id链接到items表。items表通过列user_id链接到users表。我已将Join users表与items表保留以显示项目详细信息,我也尝试离开联接注释表,这样就有3个联接表,但这失败了,因为所有注释都列在每个项目下面,而不仅仅是关于该项目的注释。@user1678293-您能编辑您的问题以包括表设计和您尝试的SQL吗,请看我在编辑的问题中使用的Sql和php。谢谢你的回答,但我担心我的问题可能含糊不清,请看上面编辑的问题,我在其中包含了我的代码。非常感谢。