Ủa mình chạy insert db ngon lành mà nhỉ. Có điều phải làm vài cái như sau. Trong file zip ứ có demo.txt nên nó bị lỗi. Mình tạo đại cái url http://kenh14.vn/hoi-8-me-bim-sua-h...ang-chanh-khong-ai-bang-20171024130838648.chn bỏ vào cái file demo.txt Do ứ có db nên phải tạo đại cái bảng listal có 4 fields: id, title, contents, image Do ko biết mẫu link trong #1 thế nào nên nếu theo cái link như vậy thì phải đổi lại class để lấy title, description. Việc dùng cái file_get_contents với CURL chắc là để pass check user agent nhỉ Nếu đc thì chủ thớt vứt cái link trong #1 ra đây. Rồi mình lại vứt lại cái source sau khi update nhỉ
hi @Sì Ke . Mình tính gửi lại nhưng chỉ cần fix một chỗ nên gửi ở đây thôi. Vấn đề: Có ký tự đặc biệt trong phần nội dung nên mysql không insert được. Giải quyết: Dùng hàm mysql_real_escape_string của php thôi. Nên: Code: "INSERT INTO listal (title, contents, image) VALUES ('$atitle', '$content', '$img')" Thành "INSERT INTO listal (title, contents, image) VALUES ('$atitle', '".mysql_real_escape_string($content)."', '$img')" Vài gợi ý nho nhỏ: Hiện tại cái title h1 trả về luôn cả thẻ h1 -> chỉ nên lấy text thôi -> $div->find(".reviewtitle h1", 0)->plaintext Hiện tại image cũng lấy luôn cả cái thẻ. Chỉ nên lấy link image thôi -> $div->find("img[class='image reviewmainimage']", 0)->src Để debug cái lỗi insert vào mysql thì dùng format dạng này: Code: $query ="INSERT INTO xxx VALUES (NULL, 5, 'xxx')"; echo "<pre>Debug: $query</pre>\m"; $result = mysqli_query($con, $query); if(false===$result ){ printf("error: %s\n", mysqli_error($con)); } else{ echo 'done.'; }
e có thay đổi dòng lệnh: "INSERT INTO listal (title, contents, image) VALUES ('$atitle', '".mysql_real_escape_string($content)."', '$img')" thì nó báo lỗi như này ạ : Fatal error: Uncaught Error: Call to undefined function mysql_real_escape_string() in C:\xampp\htdocs\laytin\kenh14 (1).php:37 Stack trace: #0 {main} thrown in C:\xampp\htdocs\laytin\kenh14 (1).php on line 37 E chưa chuyên về php lắm nên mong bác giúp giùm e, e cảm ơn
e quên chữ mysqli ^^ Warning: mysqli_real_escape_string() expects exactly 2 parameters, 1 given in C:\xampp\htdocs\laytin\kenh14 (1).php on line 37 lại bị như này ạ
Sửa cái này nó tòi ra cái khác sao =)) Bỏ đoạn này phía trên câu query Code: $content = mysqli_real_escape_string($conn, $content); sau đó để câu query INSERT lại như cũ. p/s: mà post như này mới thấy @Sì Ke phải luyện nhiều nhé.
Có bỏ đoạn này vào chưa. Mục đích đoạn này là để đưa ra lỗi khi không insert đc. Xong rồi copy cái lỗi vứt lên =)) Code: $query ="INSERT INTO xxx VALUES (NULL, 5, 'xxx')"; echo "<pre>Debug: $query</pre>\m"; $result = mysqli_query($con, $query); if(false===$result ){ printf("error: %s\n", mysqli_error($conn)); } else{ echo 'done.'; } Đổi bằng cách Code: $sql = mysqli_query($conn, "INSERT INTO listal (id, title, contents, image) VALUES ('', '$atitle', '$content', '$img')"); Thành: Code: echo "<pre>Debug</pre>\m"; $result = mysqli_query($conn, "INSERT INTO listal (id, title, contents, image) VALUES ('', '$atitle', '$content', '$img')"); if(false===$result ){ printf("error: %s\n", mysqli_error($conn)); } else{ echo 'done.'; } p/s: Vì đâu nên nỗi phải dắt tay từng bước thế này
Kiểu như e mò từ từ cũng đc ạ, nhưng hôm h mò nhìu hơi nản, nên có bác hỏi từng chút lun, bác thông cảm
Notice: Undefined variable: con in C:\xampp\htdocs\laytin\kenh14 (1).php on line 40 Warning: mysqli_error() expects parameter 1 to be mysqli, null given in C:\xampp\htdocs\laytin\kenh14 (1).php on line 40 đây ạ
Rồi hạ màn nào. Vào phpmyadmin -> bảng listal -> cho cái id là khóa chính vào auto increment -> xong phim