Объект не найден при попытке сохранить данные из JSON с использованием Codeigniter - PullRequest
0 голосов
/ 19 декабря 2018

Спасибо, что открыли этот вопрос.

Я строю скребок, скрипт Py Scraps вещи, py кладет результаты в json, php читает его и отображает их в поле зрения.когда я пытаюсь выбрать какую-либо запись для сохранения в моей базе данных, это приводит к ошибке

Object not found!

, что ошибка произошла для большинства данных, некоторые другие прекрасно сохраняются в моей базе данных.

ошибка просто случайная, я не думаю, что есть какой-то образец из того, что я нашел.Объект не найден, проблема обычно связана с path, route, httacess, но в моем случае путь правильный (некоторые данные могут быть сохранены без ошибок).

Что я пытался найти, проблема:

  1. чтобы увидеть шаблон из данных, которые могут быть сохранены и не могут

результат: нет шаблона, из 30 данных, которые я удалил, только данные № 3,4, 5,15,16,17,21,22,23,24,27,28 и 29 работали

изменить порядок данных в файле JSON, в котором хранится результат очистки

результат: для некоторых данных нет шаблона, в какой бы порядок данных не перемещался, эти данные все еще могут / не могут бытьсохранены, поэтому порядок не влияет.иногда порядок эффектов

Проверьте Htaccess

он существует и правильно расположен

located at : C:\xampp\htdocs\scraper
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php/$1 [L]

Мой фрагмент кода MVC, если это поможет.(Я использую Codeigniter)

контроллер:

function saveProduct($URLEncoded){
        $this->load->model('modelhere');
        $json = json_decode(file_get_contents('C:\xampp\htdocs\selenium\scrap-product.json'), true);
        $URLdecoded=base64_decode(urldecode($URLEncoded));

        $savedData;
        //GET THE URL FROM CHOSEN DATA, THEN GET DATA THAT MATCH WITH CHOSEN DATA URL IN JSON FILE
        // DATA CONTAINS PRODUCT AND SELLER INFORMATION
         for ($x = 0; $x < sizeof($json) ; $x++) { 
            if ($json[$x]['URL'] == $URLdecoded) {$savedData = $json[$x];}
         } 
        // CHECK IF SELLER EXIST IN DB      
        $result = $this->penjual_model->cekPenjualExist($savedData);

        //CHECK IF PRODUCT EXIST IN DB
        $result2 =  $this->produk_model->cekProdukExist($savedData);


        // IF !EXIST(SELLER) : SAVE THAT SELLER
        if (empty($result)){
            $this->penjual_model->tambahPenjual($savedData);            
        }

        // IF EXIST(SELLER) AND !EXIST(PRODUK) : SAVE THAT PRODUK       
        if (!empty($result) && empty($result2)){
            $this->produk_model->setDataProduk2($savedData, $result);
        }

        // IF BOTH EXIST DO NOTHING
        else if (!empty($result) && !empty($result2)){
        }

        //REDIRECT
        $this->index();

    }

Модель:

function setDataProduk2($temp, $temp2){
            //isi produk    
            $uname['productname'] = $temp['productname'];
            $uname['website'] = $temp['marketplace'];
            $uname['weight'] = $temp['weight'];
            $uname['desc'] = $temp['desc'];
            $uname['URL'] = $temp['URL'];
            $uname['idseller'] = $temp2['idSeller'];
            $this->db->insert('produk', $uname); 

        }

Просмотр:

//it's the submit button that encode and sends selected product url to controller
$i=0;
if(isset($data)){
foreach ($data as $list){
        echo "<tr>";
        echo "<td>".'
        <a  class="btn btn-success btn-sm" href='.base_url('product_controller/saveProduct/'.urlencode(base64_encode($list['URL']))).'>save</button>'.
        "</td>";

        $i++;
}
}
?>  

пример URL, который работал нормально:

raw URL:

https://mywebsite/p/sitepath/sitepath2/sitepath3/6epkxb-chocolate-aura?from=omnisearch&product_owner=normal_seller&search%5Bkeywords%5D=chocolate
// i don't think that i can show the raw URL due to some reasons

encoded :
http://localhost/scraper/produk_controller/saveresult/aHR0cHM6Ly93d3cuYnVrYWxhcGFrLmNvbS9wL3BlcmxlbmdrYXBhbi1rYW50b3IvYWxhdC10dWxpcy1rYW50b3IvbGFrYmFuLWxlbS82ZXBreGItanVhbC1sYWtiYW4tY29rbGF0LW1lcmstYXVyYT9mcm9tPW9tbmlzZWFyY2gmcHJvZHVjdF9vd25lcj1ub3JtYWxfc2VsbGVyJnNlYXJjaCU1QmtleXdvcmRzJTVEPWNva2xhdA%3D%3D

пример не работает:

raw:
https://mywebsite/p/sitepath/sitepath2/sitepath3/el6k85-jual-squishy-chocolate?from=omnisearch&product_owner=normal_seller&search%5Bkeywords%5D=chocolate

encoded:
http://localhost/skripsi-scraper/produk_controller/simpanPencarian/aHR0cHM6Ly93d3cuYnVrYWxhcGFrLmNvbS9wL2hvYmkta29sZWtzaS9tYWluYW4vbWFpbmFuLWxhaW5ueWEvZWw2azg1LWp1YWwtc3F1aXNoeS1jb2tsYXQ%2FZnJvbT1vbW5pc2VhcmNoJnByb2R1Y3Rfb3duZXI9bm9ybWFsX3NlbGxlciZzZWFyY2glNUJrZXl3b3JkcyU1RD1jb2tsYXQ%3D

Итак, мойвопросы:

  1. есть идеи, что вызвало это и, возможно, решение?

  2. есть ли способы отладить это?

Мой файл JSON, если это поможет

JSON - он содержит 30 строк данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...