2016-11-19 50 views
-1

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

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行< <这一点“$ query”lin È
警告:mysqli_query():在线路中www.myweb.com \ users_list \ type.php空查询95 < <这点 “$结果” 行
警告:mysqli_fetch_array()预计参数1被mysqli_result,布尔在www.myweb.com \ users_list \ type.php给上线109 < <这一点“而($行=”行

我试图理解和我还是不明白这一点,任何人都可以帮助我请吗?!谢谢。

+0

运行此代码时得到的是什么?任何错误?别的什么 – Karthi

+0

我想你会得到一个数组作为结果。您必须读取每一行并将其打印在表格中。 –

+0

你目前的输出是什么? –

回答

0

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

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

编辑
只是为了说明:
mysqli_query需要两个参数:连接和查询。我认为你只是想在这一行中创建查询字符串,因为这个错误引起了一行查询字符串的使用。

+0

你可以添加一些解释的话,所以OP知道*为什么*这应该完成? –

1

问题在bolow行中。 $ query = mysqli_query(“SELECT * FROM usersdata WHERE type ='1'”); $ result = mysqli_query($ con,$ query);

你有2种方法来解决这个问题。

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>"; 
    ?> 
相关问题