Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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
有没有基于echo值的PHP查询解决方案_Php_Mysql - Fatal编程技术网

有没有基于echo值的PHP查询解决方案

有没有基于echo值的PHP查询解决方案,php,mysql,Php,Mysql,我试图根据我从“项目”表中获得的项目标题,从“用户”表中计算用户名列(不同),在“项目”表中,用户名列与用户表中的用户名列相同 项目名称已成功显示,但我无法根据项目名称成功计算用户名 下面是我使用的代码 <tbody> <?php $no = 1; $data = mysqli_query($connect,"select * from project"); while($d=mysqli_fetch_array($data)){ ?>

我试图根据我从“项目”表中获得的项目标题,从“用户”表中计算用户名列(不同),在“项目”表中,用户名列与用户表中的用户名列相同

项目名称已成功显示,但我无法根据项目名称成功计算用户名

下面是我使用的代码

<tbody>
<?php 
    $no = 1;
    $data = mysqli_query($connect,"select * from project");
    while($d=mysqli_fetch_array($data)){
    ?>
        <tr style="text-align:center;">
            <td><?php echo $no++; ?></td>
            <td style="width:125px;" name="title"><?php echo $d['project_title']; ?></td>

                <?php
                $topice = $_GET['title'];
                foreach($connect->query("SELECT COUNT(DISTINCT (username)) FROM user where topic='$topice'") as $row) {
                    echo "<td>" . $row['COUNT(DISTINCT (username))'] . "</td>";
                }
                ?>

        </tr>
        <?php 
    }
?>
</tbody>


这将使您了解如何创建表和运行应用程序

create table nancy_project(project_id int primary key auto_increment,project_title varchar(30),project_name varchar(30),username varchar(30));


create table nancy_user(user_id int primary key auto_increment,username varchar(30),project_id varchar(30),counter int(11));
您现在可以插入

insert into nancy_project(project_title,project_name,username) values('Chemistry Project','This is for Chemistry lecturers','WinBali');
insert into nancy_project(project_title,project_name,username) values('Physics Project','This is for Physics stsudents','WinITB');
请记住,project_id从1开始自动递增,因此不包括在insert语句中

WinBali对项目id 1进行的计数=3

insert into nancy_user(username,project_id,counter) values('WinBali',1,1);
insert into nancy_user(username,project_id,counter) values('WinBali',1,1);
insert into nancy_user(username,project_id,counter) values('WinBali',1,1);
WinITB=2对项目id 2进行计数

insert into nancy_user(username,project_id,counter) values('WinITB',2,1);
insert into nancy_user(username,project_id,counter) values('WinITB',2,1);
注意:您将通过项目id进行查询,而不是通过项目标题进行查询,除非您确保项目标题是唯一的

这是密码

     <?php

$host = "localhost"; /* Host name */
$user = "root"; /* User */
$password = ""; /* Password */
$dbname = "dbname goes here"; /* Database name */

$con = mysqli_connect($host, $user, $password,$dbname);

// Check connection
if (!$con) {
  die("Connection failed: " . mysqli_connect_error());
}


               //$username ='WinBali';
               //$username ='WinITB';
                $query = "SELECT * FROM nancy_project";
                $result = mysqli_query($con,$query);
                while($row = mysqli_fetch_array($result)){
                    $project_id = $row['project_id'];
                    $project_title = $row['project_title'];
                    $project_name = $row['project_name'];
                        $username = $row['username'];

                    // Count the counter
// you can try different queries commented
$query1 = "SELECT COUNT(*) AS cntStatus FROM nancy_user where username='$username' and project_id='$project_id'";
                    //$query1 = "SELECT COUNT(*) AS cntStatus FROM nancy_user where username='$username'";
                    $result1 = mysqli_query($con,$query1);
                    $row1 = mysqli_fetch_array($result1);
                    $total_count = $row1['cntStatus'];


            ?>
                    <div class="post">
 <h1 style="color:green"><?php echo $username; ?></h1>
                        <h1><?php echo $project_title; ?></h1>
                        <div class="post-text">
                            <?php echo $project_name; ?>
                        </div>
                        <div class="post-action">

                            (<span><?php echo $total_count; ?></span>)<br>


                        </div>
                    </div>
            <?php
                }
            ?>

        </div>
    </body>
</html>

()
这是结果的屏幕截图

insert into nancy_project(project_title,project_name,username) values('Chemistry Project','This is for Chemistry lecturers','WinBali');
insert into nancy_project(project_title,project_name,username) values('Physics Project','This is for Physics stsudents','WinITB');


当请求来自表单输入时,请记住执行清理和验证,以避免出现sql注入、csrf、xss、html注入等漏洞。

我认为您的表结构是错误的。您应该有一个用户表和另一个用户计数表(如喜欢、投票、评级等)。当您对用户表执行查询时,迭代用户计数表就变得很容易了。或者,如果你想要一种简陋的方式。您可以使用列(例如user\ U count)创建users表。这将要求应用程序查询上次用户计数,并在每次单击计数按钮时执行更新clicked@NancyMooree很抱歉,我没有说清楚,所以我有两个表,第一个是用户表,它包含两列,用户名和项目标题,第二个表是项目表。哪一个包含1列项目标题?您必须有更多的列…否则“主题”列从何而来?请对您的数据结构进行清晰完整的描述,提供一些行数据示例,然后告诉我们您希望从代码中看到的结果。我可以帮助您保持谨慎,请看我的答案,如果您喜欢,请给我留言