Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Foreach - dodawanie wyników do tablicy
Forum PHP.pl > Forum > Przedszkole
RooFi07
Witam, mam mały problem w moim rozwiązaniu:

  1. $array = array();
  2.  
  3. foreach($reports->result() as $row) // $reports to zapytanie do bazy oczywiście :)
  4. {
  5. $array .= ($row->id_image); // tego nie wiem jak zapisac
  6. }
  7.  
  8. // $array = array(1, 4); - taki zapis jest odczytywany poprawnie
  9.  
  10. $query = $this->db->query('SELECT * FROM images WHERE id IN (' . implode(', ', array_map('intval', $array)) . ')');


A więc mam dwie tabele, w pierwszej są obrazki, a w drugiej id obrazka, które ma być wyświetlone. Wybrałem powyższe rozwiązanie lecz nie mogę sobię z nim poradzić. Jeżeli znacie leszpe, proszę o propozycje.
Problem jest wtedy, kiedy jest tylko jeden wynik. Oczywiście mogę dodać IF'a jak jeden wynik zapytaj inaczej, ale nie wiem czy nie utworze zbędnego kodu.

Proszę o pomoc, oczywiście daję "Pomógł".
CuteOne
  1. $query = '';
  2.  
  3. foreach($reports->result() as $row) {
  4.  
  5. $query .= $row->id_image . ','; // tego nie wiem jak zapisac
  6. }
  7. $query = substr($query, 0, strlen($query)-1);
  8.  
  9. $select = $this->db->query("SELECT * FROM images WHERE id IN (".$query.")");
RooFi07
A co jeśli będzie jeden wynik, dać na to tego ifa i inaczej zadać pytanie?
CuteOne
  1. $query = '';
  2.  
  3. if(count($row) == 1) {
  4.  
  5. $query = 'id = '.$row->id;
  6. }
  7. else {
  8.  
  9. foreach($reports->result() as $row) {
  10. $query .= $row->id_image . ',';
  11. }
  12.  
  13. $query = 'id IN ('.substr($query, 0, strlen($query)-1).')';
  14. }
  15.  
  16. $select = $this->db->query("SELECT * FROM images WHERE $query");
RooFi07
Wiedziałem jak to zrobić, ale IF'a jednak chyba nie trzeba, mój błąd w kodzie.

Dzięki za pomoc, pozdrawiam.
cv65
Ja zamiast
  1. $query = substr($query, 0, strlen($query)-1);

użyłbym po prostu rtrim
markonix
A nie lepiej implode użyć w IN?
Prostsze i bez żadnych substr i trimów.
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.