2016-08-11 68 views
0
dbconnect.php 

<form method="post" action="a.php"> 
<select name="taskOption" id="cust-id" onchange="showUser(this.value)"> 
<?php 
include 'orderSelect.php'; 
echo '<option>View Order</option>'; 
while($row = mysqli_fetch_array($result)):;?> 
<option value='<?php echo $row[0]; ?>'><?php echo $row[1]; echo " "; 
echo $row[2]; ?></option> 
<?php endwhile; ?> 

</select> 
</form> 

a.php只会我想显示1点的记录,而不是显示整个数据库,PHP

<?php 
include 'connect.php'; 
$q = intval($_GET['q']); 


$sql = "SELECT id, firstname, lastname,productOne, quantity, price 
FROM orderlist"; 
$result = mysqli_query($conn, $sql); 

echo "<table > 
<tr> 
<th>Firstname</th> 
<th>Lastname</th> 
<th>Product</th> 
<th>Quantity</th> 
<th>Price</th> 
<th>Total</th> 
</tr>"; 


while($row = mysqli_fetch_array($result)) { 
$tquan = $row['quantity']; 
$tprice = $row['price']; 
$total = $tquan * $tprice; 

echo "<tr>"; 
echo "<td>" . $row['firstname'] . "</td>"; 
echo "<td>" . $row['lastname'] . "</td>"; 
echo "<td>" . $row['productOne'] . "</td>"; 
echo "<td>" . $row['quantity'] . "</td>"; 
echo "<td>" . $row['price'] . "</td>"; 
echo "<td>" . $total . "</td>"; 
echo "</tr>"; 
} 
echo "</table>"; 
?> 

我得到它的工作。 IT显示从下拉列表中选择某项内容时我想要查看的记录/用户,但问题是显示的是整个数据库数据。我只想明确所选人员的具体情况。任何想法如何解决这个问题?我会很感激。

Image Example

我只是想,当我从下拉列表中

+0

在查询结束时,可以添加“where”子句或“limit 1”。我想,事实上,你会想'where id = $ q'不是吗? – developerwjk

+0

你可以举个例子。我没有得到你。我对此很新。干杯。 –

+0

ie'$ sql =“SELECT id,firstname,lastname,productOne,quantity,price FROM orderlist where id = $ q”;'你应该看看使用参数化,因为这可能会打开sql注入,但我认为这是你正在寻找的基本想法。 – developerwjk

回答

0

你的SELECT是整个数据库就需要精确的选择的东西选择要选择的第一行。

例如:

$sql = "SELECT 'id' FROM Users WHERE username='$name'"; 

即使用WHERE子句的一个例子。

+0

谢谢!有效。 –

0

除了上面所说的。 你提到你只需要1条记录。

到您的查询

OR

更改“而”命令的末尾添加“LIMIT 1”到“如果”命令,它会只运行一次。

+0

数据库服务器仍会发送所有记录,如果你只是改变if,你只能在php中读取其中的一个。这可能会成为性能问题。 – developerwjk

+0

OP看起来是使用旧的mysql函数,并且提取只会显示一行。我没有看到任何性能问题 – Forbs