Truy xuất dữ liệu có điều kiện trên mysql sử dụng form html và lệnh php

Mình muốn truy xuất dữ liệu mysql có điều kiện bằng form html mà làm không được. Mọi người xin chỉ cho mình bị sai chỗ nào , xin cám ơn.
Mình có bảng cơ sở dữ liệu tên là thucdon gồm các cột :

ID     Name           Email 
1       A               a@
2       B               b@
3       C               c@
5       E              e@
6       F               f@

Mình muốn dùng form html và câu lệnh PHP để truy xuất cơ sở dữ liệu có điều kiện từ database mysql là ID từ 3 đến 5

File truyxuat.php như sau:

           <html>
            	<head>
            		<title> lọc dữ liệu theo id </title>
            		<meta charset="utf-8">
            	</head>
            	<body>
     		         <form action="xuly.php" method="post">
            			<input type="text" value="nhập số id đầu" name="id" size=40>
            			<input type="text" value="nhập số id sau" name="id" size=40>
            			<input class="btn btn-primary" type="submit"  name="chon" value="Chọn"> 
            		</form>
            	</body>
            </html>

File xuly.php như sau:

<html>
	<head>
		<meta charset="utf-8">
		<title> testing lọc thời gian </title>
		<style>
			th {
				background-color: #588c7e;
   				color: white;
   				text-align: center;
   				font-size: 14px;
			}
		</style>
	</head>
	<body>
<?php
	mysql_connect("localhost","root","") or die ("connection failed");
	mysql_select_db("demo") or die ("connection faied");
	mysql_query("SET NAMES 'UTF8'");
?>
div id="noidung" class="table-responsive">
<table class="table table-striped table-bordered">
 	<b> <tr align="center">
 		<th> ID </th>
 		<th> Name </th>
                <th> Email </th>
 		</tr> 
       </b>
<?php
	$id1=$_POST['id'];
	$id2=$_POST['id'];
	$sl=mysql_query("SELECT * FROM `thucdon` WHERE id between '$id1' and '$id2'");
	while($row=mysql_fetch_array($sl))
 	{    
 ?>
 <tr align="center">
 		<td>
 			<?php echo $row['id'];?>
 		</td>
 		<td>
 			<?php echo $row['name'];?>
 		</td>
 		<td>
 			<?php echo $row['email'];?>
 		</td>
</tr>
 <?php }?>
 </table>
 </div>
</body>
</html>

Kết quả khi mình nhập hai số id là 3 và 5 vào hai khung truy xuất thì nó chỉ ra được dữ liệu của id=5 thôi thay vì ra kết quả dữ liệu id từ 3 đến 5 như mình muốn.
Mình thử tới thử lui làm hoài không ra. Mong mọi người hướng dẫn giúp mình, cám ơn

<input type="text" value="nhập số id đầu" name="id" size=40>
<input type="text" value="nhập số id sau" name="id" size=40>

name giống nhau, làm sao PHP biết được cái nào là id1, cái nào là id2 để mà gán?
Vì textbox thứ 2 được ở dưới nên sẽ đè lên giá trị của textbox thứ nhất => id=5

khi bạn submit, post data có dạng: id=5&chon=Chọn, bạn get cái gì =$_POST["id"] thì nó cũng là 5 thôi.

3 Likes

Nên sửa lại như sau :slight_smile:

           <html>
            	<head>
            		<title> lọc dữ liệu theo id </title>
            		<meta charset="utf-8">
            	</head>
            	<body>
     		         <form action="xuly.php" method="post">
            			<input type="text" value="nhập số id đầu" name="giatri1" size=40>
            			<input type="text" value="nhập số id sau" name="giatri2" size=40>
            			<input class="btn btn-primary" type="submit"  name="chon" value="Chọn"> 
            		</form>
            	</body>
            </html> 

Trang xuly:

<html>
	<head>
		<meta charset="utf-8">
		<title> testing lọc thời gian </title>
		<style>
			th {
				background-color: #588c7e;
   				color: white;
   				text-align: center;
   				font-size: 14px;
			}
		</style>
	</head>
	<body>
<?php
	mysql_connect("localhost","root","") or die ("connection failed");
	mysql_select_db("demo") or die ("connection faied");
	mysql_query("SET NAMES 'UTF8'");
?>
div id="noidung" class="table-responsive">
<table class="table table-striped table-bordered">
 	<b> <tr align="center">
 		<th> ID </th>
 		<th> Name </th>
                <th> Email </th>
 		</tr> 
       </b>
<?php
	$id1=$_POST['giatri1'];
	$id2=$_POST['giatri2'];
	$sl=mysql_query("SELECT * FROM `thucdon` WHERE id between '$id1' and '$id2'");
	while($row=mysql_fetch_array($sl))
 	{    
 ?>
 <tr align="center">
 		<td>
 			<?php echo $row['id'];?>
 		</td>
 		<td>
 			<?php echo $row['name'];?>
 		</td>
 		<td>
 			<?php echo $row['email'];?>
 		</td>
</tr>
 <?php }?>
 </table>
 </div>
</body>
</html>
1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?