2017-09-24 4 views
-2

問題は、mysqlにアップロードする際に、データベースは配列の最後の値だけをアップロードすることです。PHPシンプルなHTML DOMパーサ配列からデータベース

     if (substr($avsnitt["serier"], 0, 16) === 'http://random'){ 

             // Create DOM from URL or file 
          $html = file_get_html($avsnitt["serier"]); 


          $array_title = array(); 
          $array_link = array(); 

          foreach($html->find('div[class=entry]') as $element){ 

           foreach ($element->find('a') as $text) { 
            $array_title[] = $text->plaintext; 

           } 
           foreach ($element->find('a') as $test) { 
            $array_link[] = $test->href; 
           } 


            $count_name = count($array_title); 

            for($i=0; $i<$count_name; $i++){ 
             $_array_title = mysql_escape_string($array_title[$i]); 
             $_array_link = mysql_escape_string($array_link [$i]); 

             print_r($_array_title); 
             print_r($_array_link); 

             $sql2 = "INSERT INTO episodes (name, ID, link) VALUES ('" . @$_array_title. "','" . @$avsnitt["ID"] . "', '" . @$_array_link . "');"; 
             mysqli_query($CON, $sql2); 
            } 


           }  
         } 

私はレリいけないので、私は、PHPのmysqlに新しいですが、配列はMySQLへアップロードする方法を知っている、高速な答えは感謝を理解されるであろう。

+0

基本的には、配列をアップロードすることはできません。文字列のようなものに変換する必要があります。参照:[serialize()](http://php.net/manual/en/function.serialize.php) –

答えて

0

問題はデータベースIDが1つの特定のIDのみを許可するプリミティブキーでした

0

私はあなたのデータベースフィールド "リンク"はタイプ文字列だと思います。 変数$ _array_linkを挿入すると、witchは型配列です。

したがって、配列を文字列に変換するには、serialize($ _ array_link)を試してください。 私は、@は無意味ではないと思うが、読まない方がいい。

$sql2 = "INSERT INTO episodes (name, ID, link) 
VALUES ('" . @$_array_title. "','" . @$avsnitt["ID"] . "', '" . serialize($_array_link). "');"; 

後で、データベースの変数を使用します。したがって、データをSELECTした後、unserialize()を使用して配列を元に戻します。

関連する問題