2016-11-18 3 views
1

bitte hilf mir. Ich möchte fragen:Laravel Abfrage und Array

Lassen Sie mich sagen, ich habe 2 Tabellen: user_master und people.

Jetzt bin ich zur Zeit eine Anwendung in PHP mit Laravel 5.1 Framework, das die Daten aus user_master Tabelle auswählen (mit einer gewissen Einschränkung in where Klausel) und Einfügen in people Tabelle erstellen.

Der Code ist:

public function handle() { 
    $results = DB::select(DB::raw("SELECT * FROM user_master WHERE div_id = 1")); 

    foreach ($results as $res) { 
     //saving to array 
     //insert query to table people here. 
    } 
} 

Meine Fragen sind:

  1. Wie das Ergebnis der select Abfrage Array speichern und
  2. Legen Sie das Array in people Tabelle mit RAW Abfrage (INSERT INTO people VALUES (...)).

P.S.: Meine Abfrage ist RAW Abfrage, nicht mit Eloquent. Und bitte antworte ohne Eloquent.

Vielen Dank für jede Antwort.

+0

Alle spezifischen Gründe für die Verwendung von RAW-Abfragen. 1) Benötigen Sie '-> get();' Methode, um Ergebnis innerhalb Ihrer '$ result' Variablen zu erhalten –

+0

Sie können array_push() verwenden, um ein Array Ihrer foreach Schleife – lewis4u

+0

@ lewis4u: können Sie mir ein Beispiel geben? ? – joshua14

Antwort

1

Ich habe das gleiche Szenario wie dieses wie Ihr

$users=DB::table('Users')->where('created_at' ,'>=','2016-09-06')->get(); 
     foreach ($users as $user){ 
      DB::table('users_report')->insert(
       array(
        'id' => $user->id, 
        'username' => $user->username, 
        'lastname' => $user->lastname, 
        'email' => $user->email, 
        'created_at' => $user->created_at, 
        'updated_at' => $user->updated_at, 
        ) 
      ); 
     } 

Änderung

erfolgt nach Ihrer Logik, seine Werke zu 100% perfekt ..

+0

das ist die Antwort, die ich suche. Ich danke dir sehr :) – joshua14

0

Wenn Ihre Tabelle und Ihr Master dieselbe Struktur haben, legen Sie einfach den Primärschlüssel in den folgenden Code ein. Wenn sie nicht in der gleichen Struktur sind, müssen Sie die Ergebnisse an die Struktur der Personen anpassen, bevor Sie in den Personentisch einfügen.

hoffe, es wird helfen.

function delete_col(&$array, $offset) { 
    return array_walk($array, function (&$v) use ($offset) { 
     unset($v[$offset]); 
    }); 
} 
    public function handle() { 
$results = DB::table('user_master')->where('div_id', 1)->get(); 
delete_col($results, $premiarykeyOfuser_master); 

    DB::table('people')->insert($results); 
    } 
0

Ich denke, dass rechts

ist
$results = DB::table('user_master')->where('div_id', 1)->get();