2017-06-13 13 views
0

私はニュースのためにウェブサイトを廃止し、それをデータベースに保存していますが、この '仕事'や機能は1時間ごとに実行されるため、レコード数を減らすために20レコードにしています。古いニュースを残したいので、新しいクエリを挿入して前のクエリを削除するか、既存のクエリを更新したい。レコードの数は常に20ですが、どのように行われますか?確かに、もし私が挿入+削除を行うと、ID番号は毎回変わるでしょう。しかし、もし私がアップデートをすれば、最初の1-20 IDを更新する方法を教えてください。ここでLaravel mysqlの挿入+削除または更新方法?

が、それはデータベースでどのように見えるかです:

enter image description here

そしてここでは、これまでのコードです:

function oldham_chronicle(){ 
    $client = new Client(); 
    $crawler = $client->request('GET', 'http://www.oldham-chronicle.co.uk/news-features'); 
    $crawler->filter('div[id=content]>.teaser-50')->each(function ($node) { 
     $test = $node->filter('.plain')->text(); 
     $test2 = $node->filter('.dateonline')->text(); 
     $news = new News(); 
     $news->title = $test; 
     $news->datepublished = $test2; 
     $news->save(); 
    }); 
return view('chronicle'); 
+0

移行構文を試しましたか? – MuTiny

答えて

1

私はあなたが更新することをお勧めします、あなたはこの

function oldham_chronicle(){ 
    $client = new Client(); 
    $crawler = $client->request('GET', 'http://www.oldham-chronicle.co.uk/news-features'); 
    $crawler->filter('div[id=content]>.teaser-50')->each(function ($node, $key) { 
     $test = $node->filter('.plain')->text(); 
     $test2 = $node->filter('.dateonline')->text(); 
     $id = $key + 1; 
     $news = News::where('id', $id)->first(); 

     // if news is null 
     if (!$news) { 
      $news = new News(); 
     } 

     $news->title = $test; 
     $news->datepublished = $test2; 
     $news->save(); 
    }); 
return view('chronicle'); 
で試すことができます

データがないため、コードをテストしていません。

+0

は素晴らしい作品です! id = 1でない場合は、基本的にレコード挿入がない場合はどうなりますか? – Przemek

+0

idが@Przemek – brobrobrobrobro

+0

のレコードがない場合は、あなたはスターです! <3ありがとう! – Przemek

関連する問題