首页 文章

PHP:显示MySQL中包含相同值的所有行

提问于
浏览
-1

我正在尝试使用Mysql数据库在PHP中编写代码,问题是我想显示具有相同列值的所有行 . 比如这样:

id  |   Name   | age | Location | type
----+----------+-----+----------+------
 1  | Ane      | 22  |  SG      |  1
 2  | Angi     | 19  |  IND     |  2
 3  | Bobby    | 23  |  PH      |  1
 4  | Denis    | 26  |  IND     |  1
 5  | Jerry    | 21  |  SG      |  1
 6  | Mikha    | 25  |  JP      |  2

我只想显示列类型= 1的值或列位置中的值,并在html视图中显示为表 .

结果我想要的是这样的:

id  |   Name   | age | Location | type
---+----------+-----+----------+------
 1  | Ane      | 22  |  SG      |  1
 3  | Bobby    | 23  |  PH      |  1
 4  | Denis    | 26  |  IND     |  1
 5  | Jerry    | 21  |  SG      |  1

这是我的代码:

<?php
$con = mysqli_connect("localhost","root","","testuser");
$query = mysqli_query("SELECT * FROM `usersdata` WHERE `type`='1'");
$result = mysqli_query($con,$query);

echo "<table class='tmaintable' border='0' cellpadding='3' width='99%' align='center' cellspacing='1'>
<tr class='theader'>
<td>ID</td>
<td>Name</td>
<td>Age</td>
<td>Location</td>
<td>Type</td>
</tr>";

while($row = mysqli_fetch_array($result)){              
echo "<tr class='todd'>";
echo "<td style='text-align:center;' >" . $row['id'] . "</td>";
echo "<td>" . $row['name'] . "</td>";
echo "<td>" . $row['age'] . "</td>";
echo "<td>" . $row['location'] . "</td>";
echo "<td>" . $row['type'] . "</td>";
echo "</tr>";
}
echo "</table>";
?>

但我得到这样的错误:

警告:mysqli_query()需要至少2个参数,1在www.myweb.com \ users_list \ type.php第94行中给出<< this point“$ query”行警告:mysqli_query():www.myweb中的空查询第95行的.com \ users_list \ type.php << this point“$ result”行警告:mysqli_fetch_array()要求参数1为mysqli_result,第109行的www.myweb.com \ users_list \ type.php中给出布尔值< <this point“while($ row =”line

我正在努力理解,但我仍然没有得到它,任何人都可以帮助我吗?!谢谢 .

3 回答

  • 0

    更改
    $query = mysqli_query("SELECT * FROM usersdata WHERE type='1'");

    $query = "SELECT * FROM usersdata WHERE type='1'";

    EDIT
    仅供参考:
    mysqli_query有两个参数:连接和查询 . 我假设您只想在此行中创建查询字符串,此错误引起此错误,因为它使用一行作为查询字符串 .

  • 0

    问题在于引人注目的问题 . $ query = mysqli_query(“SELECT * FROM usersdata WHERE type = '1'”); $ result = mysqli_query($ con,$ query);

    您有两种方法可以解决此问题 .

    1. $query = "SELECT * FROM `usersdata` WHERE `type`='1'";
    $result = mysqli_query($con,$query);
    
    2. $query = mysqli_query($con,"SELECT * FROM `usersdata` WHERE `type`='1'");
    
  • 0

    试试这个 . 它应该工作正常

    <?php
        $servername = "localhost";
        $username = "root";
        $password = "";
        $dbname = "test";
    
        // Create connection
        $conn = mysqli_connect($servername, $username, $password, $dbname);
        // Check connection
        if (!$conn) {
            die("Connection failed: " . mysqli_connect_error());
        }
    
        $sql = "SELECT * FROM `usersdata` WHERE `type`='1'";
        $result = mysqli_query($conn, $sql);
    
        echo "<table class='tmaintable' border='0' cellpadding='3' width='99%' align='center' cellspacing='1'>
        <tr class='theader'>
        <td>ID</td>
        <td>Name</td>
        <td>Age</td>
        <td>Location</td>
        <td>Type</td>
        </tr>";
    
        while($row = mysqli_fetch_array($result)){
            echo "<tr class='todd'>";
            echo "<td style='text-align:center;' >" . $row['id'] . "</td>";
            echo "<td>" . $row['name'] . "</td>";
            echo "<td>" . $row['age'] . "</td>";
            echo "<td>" . $row['location'] . "</td>";
            echo "<td>" . $row['type'] . "</td>";
            echo "</tr>";
        }
        echo "</table>";
        ?>
    

相关问题