2017-06-13 1 views
0

Ich verschrotte eine Website für Nachrichten und speichern, dass in einer Datenbank, aber diese 'Job' oder Funktion wird jede Stunde ausgeführt werden, und um die Anzahl der Datensätze zu reduzieren, halte ich es auf 20 Datensätze, jetzt natürlich nicht Ich möchte alte Nachrichten behalten, deshalb möchte ich entweder eine neue Abfrage einfügen und die vorherige löschen oder die bestehende aktualisieren. Anzahl der Datensätze ist immer 20, aber wie wird das gemacht? Sicher, wenn ich einfügen + löschen, ändert ID-Nummer jedes Mal. Aber wenn ich ein Update mache, wie werde ich es sagen, um erste 1-20 IDs zu aktualisieren.Laravel mysql einfügen + löschen oder aktualisieren wie?

Hier ist, wie es aus wie in einer Datenbank sucht:

enter image description here

Und Code ist hier so weit:

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

Haben Sie die Migrationssyntax ausprobiert? – MuTiny

Antwort

1

empfehle ich Ihnen zu aktualisieren, können Sie versuchen, mit diesem

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'); 

Ich habe meinen Code nicht getestet, weil ich die Daten nicht habe.

+0

funktioniert brilliant! Was ist, wenn es keine ID = 1 gibt, also wenn es keine Datensatzeinfügung gibt, wenn ja, Update stattdessen? – Przemek

+0

Ich aktualisiert, wenn die no-Datensatz mit der ID @Przemek – brobrobrobrobro

+0

Sie sind ein Star! <3 Danke! – Przemek

Verwandte Themen