Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Sprowadzanie wyniku zapytania do tablicy wielowymiarowej
Forum PHP.pl > Forum > Przedszkole
Lopmer
Problem jest następujący:

Tabela którą wyświetlamy będąca wynikiem pewnego zapytania ma 3 kolumny. Nazwijmy je kolejno: kolumna1, kolumna2, kolumna3.

Z braku lepszego pomysłu:

  1. $wynik_zapytania = mysql_query($query);
  2.  
  3. $table = array();
  4.  
  5. while($data = mysql_fetch_assoc($wynik_zapytania)) {
  6. $table[] = $data;
  7. }
  8.  
  9. print_r($table);


Wynikiem powyższego kodu jest oczywiście taka struktura:
  1. Array
  2. (
  3. [0] => Array
  4. (
  5. [firma] => jakastamfirma1
  6. [olej] => 10
  7. [swiece] => 20
  8. )
  9.  
  10. [1] => Array
  11. (
  12. [link] => jakastamfirma2
  13. [olej] => 30
  14. [swiece] => 40
  15. )
  16.  
  17. .
  18. .
  19. .
  20. itd
  21. )


Wszystko byłoby jak najbardziej w porządku, gdyby nie fakt, że nie o to dokładnie mi chodzi. Ja chciałbym osiągnąć dokładnie taką strukturę, jak poniżej:

  1. Array
  2. (
  3. [jakastamfirma1] => Array
  4. (
  5. [olej] => 10
  6. [swiece] => 20
  7. )
  8.  
  9. [jakastamfirma2] => Array
  10. (
  11. [olej] => 30
  12. [swiece] => 40
  13. )
  14.  
  15. .
  16. .
  17. .
  18. itd
  19. )


Pytanie w jaki sposób można coś takiego uzyskać ? Kompletnie nie mam pomysłu jak to zrobić. Będę wdzięczny za każdą podpowiedź. Z góry dzięki.
nospor
Cytat
Array
(
[kolumna1] => x
(
[kolumna2] => x
[kolumna3] => x
)

[kolumna1] => x
(
[kolumna2] => x
[kolumna3] => x
)

.
.
.
itd
)

Nie idzie czegos takiego uzyskac... x to x a nie array. albo wiec x albo array. moze zrobiles blad. przeanalizuj to jeszcze raz i napisz dokladnie co ma byc
Lopmer
oczywiście, że się pomyliłem winksmiley.jpg Zupełnie o coś innego chodziło, ale nie ma to jak zmęczenie. Pierwszy post odpowiednio poprawiony.
nospor
no ok, ale w czym problem?
  1. while($data = mysql_fetch_assoc($wynik_zapytania)) {
  2. $table[$data['firma']] = $data;
  3. }

A jak ci bedzie przeszkadzala wartosc firma ktora zostala w $data to ją sobie usun poprzez unset()
Lopmer
No cóż, nie spodziewałbym się, że to takie logiczne proste. Korzystając już z okazji, czy mógłbyś rozwinąć jak to zrobić z tym unset() ? bo o coś takiego mi właśnie chodziło. Aha, własnie i jeszcze jedna sprawa. Gdybym chciał to teraz w takiej formie wrzucić do bazy do 3 odpowiednich kolumn to w jaki sposób musiałbym to zrobić ? Z góry ogromne dzięki.
nospor
a czy to:
http://pl.php.net/manual/pl/function.unset.php
jest dla ciebie rownie logicznie proste?
Lopmer
Przejrzałem opis tej funkcji, ale w dalszym ciągu nie potrafię zastosować jej do tego konkretnego przykładu. Wyszło mi coś takiego (co oczywiście nie działa):


  1. foreach($table as $t => $i) {
  2. $t[] = unset($i['firma']);
  3. }
nospor
  1. while($data = mysql_fetch_assoc($wynik_zapytania)) {
  2. $name = $data['firma'];
  3. unset($data['firma']);
  4. $table[$name] = $data;
  5. }

No odrobine pomyslunku...
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.