Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]Obrobienie wyniku
Forum PHP.pl > Forum > Przedszkole
KR2615
Hej, mam w MySQLu takie coś:

Pobieram to kodem:
  1. $eq = "SELECT * FROM `errors`";
  2. $res = $mysqli -> query($eq);

Jak to teraz obrobić, żeby po wpisaniu
  1. echo $ERROR[3][desc_pl];

otrzymać:
Kod
Przekroczono limit czasu połączenia

Z góry dzięki za pomoc!
trueblue
Wygodniej będzie skorzystać z PDO, z metody fetchAll i trybu FETCH_UNIQUE.
Jeśli chcesz nadal korzystać z mysqli, to musisz pobrać wszystkie rekordy i przepisać do tablicy o takiej strukturze, albo pobierać po jednym rekordzie i przepisywać na bieżąco.
KR2615
Przejście na PDO raczej odpada bo aplikacja jest zbyt rozbudowana i w wielu miejsach oraz wielu językach korzysta z mysqli. A czy mógłbyś opisać jak "pobrać wszystkie rekordy i przepisać do tablicy o takiej strukturze" bo odpytywanie za każdym razem jest moim zdaniem mało wydajne gdyż ERRORów mam w mysqli na razie 14 a obiektów, do których mam przypasować odpowiedni error ponad 2400.
trueblue
Mając tablicę [['id'=>1,'desc_pl'=>'aaa','desc_en'=>'bbb'],['id'=>2,'desc_pl'=>'ccc','desc_en'=>'ddd'],.....];
iterujesz po każdym elemencie i wpisujesz do nowej:
  1. $nowa_tablica[$element['id']]['desc_pl']=$element['desc_pl'];
Johnas
  1. foreach ($res as $wynik) {
  2. $error[$wynik["id"]]["desc_pl"] = $wynik["desc_pl"];
  3. }
  4.  
  5. echo $error[3]["desc_pl"];


Zakładając że te numerki masz jako id bo nie pokazałeś struktury bazy danych na screenie.
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.