Trang 1 / 2 12 LastLast
Hiển thị kết quả từ 1 đến 10 / 15
  1. #1
    Tham gia
    17-03-2009
    Bài viết
    134
    Like
    25
    Thanked 2 Times in 2 Posts

    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 \n");
    	}
    
    	$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 \n");
    	}
    
    	$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
    Quote Quote

  2. #2
    Tham gia
    24-06-2012
    Location
    Hồ Chí Minh
    Bài viết
    139
    Like
    29
    Thanked 35 Times in 24 Posts
    Chỗ này
    Code:
    delete_ac.php?id=<? echo
    Đổi <? thành <?php
    Đừng dừng lại ở việc sử dụng tốt một framework.
    Hãy cố gắng viết ra một framework.
    Có thể framework của bạn không tốt bằng những cái hiện có, nhưng trình của bạn sẽ gần hơn với những pro tạo ra framework tốt nhất.
    Yahoo antipro_vn: PHP, Python, CSS, JS, HTML.

  3. #3
    Tham gia
    03-11-2012
    Bài viết
    23
    Like
    4
    Thanked 5 Times in 5 Posts
    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
    Được sửa bởi longfan lúc 22:20 ngày 11-11-2012

  4. #4
    Tham gia
    24-06-2012
    Location
    Hồ Chí Minh
    Bài viết
    139
    Like
    29
    Thanked 35 Times in 24 Posts
    @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;
    Đừng dừng lại ở việc sử dụng tốt một framework.
    Hãy cố gắng viết ra một framework.
    Có thể framework của bạn không tốt bằng những cái hiện có, nhưng trình của bạn sẽ gần hơn với những pro tạo ra framework tốt nhất.
    Yahoo antipro_vn: PHP, Python, CSS, JS, HTML.

  5. #5
    Tham gia
    03-11-2012
    Bài viết
    23
    Like
    4
    Thanked 5 Times in 5 Posts
    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

  6. #6
    Tham gia
    24-06-2012
    Location
    Hồ Chí Minh
    Bài viết
    139
    Like
    29
    Thanked 35 Times in 24 Posts
    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
    Đừng dừng lại ở việc sử dụng tốt một framework.
    Hãy cố gắng viết ra một framework.
    Có thể framework của bạn không tốt bằng những cái hiện có, nhưng trình của bạn sẽ gần hơn với những pro tạo ra framework tốt nhất.
    Yahoo antipro_vn: PHP, Python, CSS, JS, HTML.

  7. #7
    Tham gia
    03-11-2012
    Bài viết
    23
    Like
    4
    Thanked 5 Times in 5 Posts
    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.

  8. #8
    Tham gia
    17-03-2009
    Bài viết
    134
    Like
    25
    Thanked 2 Times in 2 Posts
    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

  9. #9
    Tham gia
    26-04-2009
    Bài viết
    369
    Like
    5
    Thanked 16 Times in 12 Posts
    Sửa
    Code:
    ...delete_ac.php?id=<?php echo $result['fruid_id'] ?>
    Thành
    Code:
    ...delete_ac.php?id=<?php echo $rows['fruid_id'] ?>

  10. #10
    Tham gia
    06-05-2008
    Location
    tân an
    Bài viết
    226
    Like
    0
    Thanked 23 Times in 12 Posts
    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ỉ ?

Trang 1 / 2 12 LastLast

Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
  •