Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Laravel]Pomoc przy zapytaniu do bazy danych
Forum PHP.pl > Forum > Przedszkole
Puchatek320
Cześć,
Czy mogę prosić o pomoc przy napisaniu kwerendy zawsze mam problem przy łączeniu tabel...

  1. $films = films::find($id);
  2.  
  3. $films_tags = DB::table('films')
  4. ->join('films_tags', 'film_id', '=', 'id')
  5. ->join('tags', 'name', '=', 'tag_id')
  6. ->select('name')
  7. ->get();


a teraz co bym chciał osiągnąć

mam tabele
films - > id, name
tags -> id, name
films_tags -> film_id, tag_id

Chciałbym pobrać wszystkie nazwy tagów dla konkretnego filmu

czyli wybierz wszystkie tag_id z tabeli films_tags na podstawie film_id które = $id i wybierz wszystkie nazwy z tags na podstawie tag_id
w skrócie wszystkie tagi dla konkretnego filmu.
viking
Może napisz jak według ciebie powinno wyglądać gołe zapytanie sql.
nospor
Nie znam skladni eloquent ale i bez tego widac golym okiem bledy.
1) Nie mowisz w joinach skad te pola sie biora. Krotko rzecz mowiac brakuje: tabela.pole
2) Tabele tags zdaje sie laczysz po ID a nie po NAME, co nie ?
3) No i brakuje WHERE na ID filmu ktory cie interesuje.

Generalnie poczytaj moze dokumentacje
https://laravel.com/docs/7.x/queries#joins
bo tam masz to wszystko ladnie wyjasnione
Puchatek320
okey, chyba poprawiłem ale mam jeden problem w jaki sposób przekazać zmienną $test do widoku tak abym mógł zrobić w widkou {{$test->id}}


  1. $films = films::find($id);
  2.  
  3. $test = DB::table('films')
  4. ->join('films_tags', 'films_tags.film_id', '=', 'films.id')
  5. ->join('tags', 'films_tags.tag_id', '=', 'tags.id')
  6. ->select('tags.name', 'films_tags.id')
  7. ->where('films.id', $id)
  8. ->get();
  9.  
  10.  
  11.  
  12. return view('admin.edit_films', compact('films', $test));
nospor
Tak to sie konczy jak sie pisze kod bez rozumienia co dane rzeczy robia...
Zajrzyj do manuala laravel i zobacz czego oczekuje view() - jestem pewien ze masz to tam bardzo ladnie opisane razem z przykladami
Nastepnie zajrzyj do manuala php i zobacz jak poprawnie uzywa sie funkcji compact()

Skoro bierzesz sie za troche bardziej zaawansowane programowanie to zacznij w koncu czytac jak sie rzeczy uzywa a nie strzelac na slepo
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.