10/10/2018, 13:20

Lỗi không Delete Data trong PHP . Nhờ mọi người giúp đỡ.

Xin mọi người xem code mình sai chỗ .

database
Code:
CREATE TABLE IF NOT EXISTS `fruit` (
  `fruit_id` int(10) unsigned NOT NULL auto_increment,
  `name` varchar(50) NOT NULL,
  `variety` varchar(50) NOT NULL,
  PRIMARY KEY  (`fruit_id`)
);
file index.php
Code:
<?php 
	$dsn = "mysql:host=localhost; dbname=fruitdb";
	$username = "root";
	$password ="";

	try {
		$pdo = new PDO ($dsn,$username,$password);
	} catch (Exception $e) {	
		die("Could not connect to the DB 
");
	}

	$sql = "SELECT * FROM fruit";
	$result = $pdo->query($sql);
?>
<table width="400" border="0" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">
	<tr>
		<td colspan="4" bgcolor="#FFFFFF" align="center"><strong>Edit - Delete data in mysql</strong></td>
	</tr>
		<tr>
			<td align="center" bgcolor="#FFFFFF"><strong>Fruit Id</strong></td>
			<td align="center" bgcolor="#FFFFFF"><strong>Name</strong></td>
			<td align="center" bgcolor="#FFFFFF"><strong>Variety</strong></td>
			<td align="center" bgcolor="#FFFFFF">&nbsp;</td>
		</tr>

<?php 
	foreach ($result as $rows) {	
 ?>

		<tr>
			<td bgcolor="#FFFFFF"><?php echo $rows['fruit_id']; ?></td>
			<td bgcolor="#FFFFFF"><?php echo $rows['name']; ?></td>
			<td bgcolor="#FFFFFF"><?php echo $rows['variety']; ?></td>
			<td bgcolor="#FFFFFF"><a href="delete_ac.php?id=<? echo $result['fruit_id']; ?>">delete</a></td>
		</tr>
<?php
}
?>
</table>
Code:
<?php 
	$dsn = "mysql:host=localhost; dbname=fruitdb";
	$username = "root";
	$password ="";

	try {
		$pdo = new PDO ($dsn,$username,$password);
		$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
		$pdo->exec('SET NAMES "utf8"');
	} catch (Exception $e) {	
		die("Could not connect to the DB 
");
	}

	$fruit_id=$_GET['id'];

	$sql= "DELETE FROM fruit WHERE fruit_id = '$fruit_id'";
	$result = $pdo->query($sql);

	if($result){
		echo "Deleted successfully";
		echo "<br>";
		echo "<a href = 'index.php'>Back to main page</a>";

	}
	else{
		echo "ERROR";
		echo mysql_error();
	}

Nhờ mọi người giúp đỡ em với
antipro.vn viết 15:25 ngày 10/10/2018
Chỗ này
Code:
delete_ac.php?id=<? echo
Đổi <? thành <?php
longfan viết 15:29 ngày 10/10/2018
Sửa:
$fruit_id=$_GET['id'];
$sql= "DELETE FROM fruit WHERE fruit_id = '$fruit_id'";
Thành:
$fruit_id = isset($_GET['id']) ? intval($_GET['id']) : 0;
$sql= "DELETE FROM fruit WHERE fruit_id = " . $fruit_id;



Nếu server cấu hình php short tag là on thì <? echo "string"; ?> vẫn chạy đc, nhưng nếu là off thì nên sửa lại theo hướng dẫn của anti_pro
antipro.vn viết 15:32 ngày 10/10/2018
@longfan Hàm intval là một hàm có lỗi trên php version < 5, không nên sử dụng. Thay vì thể có thể sử dụng cách convert khá chuẩn là:
Code:
$a = (int) $b;
$a = 0 + $b;
longfan viết 15:22 ngày 10/10/2018
longfan Hàm intval là một hàm có lỗi trên php version < 5, không nên sử dụng. Thay vì thể có thể sử dụng cách convert khá chuẩn là:
Code:
$a = (int) $b;
$a = 0 + $b;
Lâm hướng dẫn là theo trình độ và sự hiểu biết của họ chứ không phải của mình, Lâm chọn cách đơn giản nhất để người ta hiểu và nắm bắt Pro ah.

Còn về hàm intval có lỗi trên PHP < 5 thì không biết Pro lấy nguồn từ đâu? Có thể trích dẫn đc không?

Theo sự hiểu biết non kém của mình thì 3 thằng dưới đây chỉ khác nhau về speed mà thôi.

Code:
$a = 0 + $b; // Fast (but don't apply for array("a", "b")) 
$a = (int) $b; // Normal
$a = intval($b); // Slow
antipro.vn viết 15:20 ngày 10/10/2018
cái comment này là mình nói về cái hàm intval thôi, còn lỗi ở trên thực ra mình đã fix bằng bài post đầu tiên rồi (bạn có thể chờ xác nhận từ người hỏi)
Còn intval bug, bạn có thể đọc một số bài viết ở đây
http://www.google.com.vn/search?q=ph...hrome&ie=UTF-8
longfan viết 15:22 ngày 10/10/2018
Trích dẫn nguồn kiểu vậy thì Lâm bó tay, thôi không tranh luận với pro nữa.
anhduy89bmt viết 15:36 ngày 10/10/2018
Tình hình là khi chưa sủa <?


Sau khi sửa <? thành <?php

Vậy là sai ở đâu vậy các bạn
1024KB viết 15:31 ngày 10/10/2018
Sửa
Code:
...delete_ac.php?id=<?php echo $result['fruid_id'] ?>
Thành
Code:
...delete_ac.php?id=<?php echo $rows['fruid_id'] ?>
diepnghitinh viết 15:26 ngày 10/10/2018
ghét nhất là viết cái kiểu xuất ra dạng <?php echo sao ko dùng <?= cho tiện nhỉ ?
Bài liên quan
0