Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapisanie wynikow zapytania w tablicy...
Forum PHP.pl > Forum > PHP
oczy
Mam taka tablice.

Cytat
<?php
$data = array(
array("dat1",3.6,5),
array("dat2",4.0,5),
array("dat3",4.2,5),
array("dat4",4.1,5),
array("dat5",3.8,5.25),
array("dat6",3.8,5.46),
array("dat7",3.9,5.32),
array("dat8",3.9,5.43),
array("dat9",3.7,5),
array("dat10",3.9,5),
);
?>

Dane w tej tablicy wpisane są teraz na stałe, jakiej funkcji użyć aby w wyniku zapytania które zwraca 10 wierszy (po trzy pola w wierszu)
przyporządkować te dane do przedstawionej tablicy.
Np: I-szy zwrócony wiersz o postaci wiersz[0] wiersz[1] wiersz[2]
da taki efekt:
Cytat
<?php
$data = array(
array(wiersz[0],wiersz[1],wiersz[2]),
// i tak dalej
array("dat2",4.0,5),
array("dat3",4.2,5),
array("dat4",4.1,5),
array("dat5",3.8,5.25),
);
?>


czy mozna poslużyć się do tego celu taką konstrukcją
Cytat
<?php
mysql_connect('localhost','uzytkownik','haslo');
mysql_select_db($db);  
$result = mysql_query('select kol1,kol2,kol3 from tabela');
while ($row = mysql_fetch_object($result))  
{
   echo $row->kol1;
   echo $row->kol2;
   echo $row->kol3;
}
?>
dragossani
Kod
$data=array();

while ($row = mysql_fetch_array($result))

{

$data[]=array( 'pole1' => $row[0], 'pole2' => $row[1], 'pole3' => $row[2]);

};

//tworzy tablice w postaci:

//$data = array(

//array('pole1' => 'dat1', 'pole2' => '3.6', 'pole3' => 5),

//array('pole1' => 'dat2', 'pole2' => '4.0', 'pole3' => 5),

//...itd.)
oczy
fanie byłoby gdyby sie jeszcze przy okazji nie poodwracal porzadek.
nie wiem czemu ale ale powyzsza propozycja Dragossani zadziala tylko wypieprzyla wszystko do gory nogami tzn. wyniki zapytan ktore byly pobierane jako pierwsze wyladowaly na koncu sad.gif
dragossani
:?: pierwsze słyszę...

W zapytaniu dodaj sortowanie: "ORDER BY pole_które_chcesz typ".
Typ może być: ASC - rosnąco, albo DESC - malejąco. Powinno rozwiązać problem.
oczy
Cytat
:?: pierwsze słyszę...

W zapytaniu dodaj sortowanie: "ORDER BY pole_które_chcesz typ".
Typ może być: ASC - rosnąco, albo DESC - malejąco. Powinno rozwiązać problem.


niechodzi tu o poprawki w zapytaniach do bazy ....
pobieram grupe wynikow ograniczona do liczby X sortowanie jest ok.
Mam pobrana grupe wynikow (data, wartosc) z okreslonego przedzialu czasowego.
kiedy sprawdzam to za pomoca funkcji print jest ok - widze rezultat zapytania zgodny z oczekiwaniami .
wrzucam zmienne do pętli

Kod
$result = mysql_query('select data,wartos from tabela order by data desc limit 10');



$data = array();

while ($row = mysql_fetch_array($result))

{

$data[]=array($row[0],$row[1]);

};


sprawdzam ponownie ... tym razem wszystko w odwrotnym porzadku :(
albo ja zgupialem albo moj komp oszalal ...
oczy
zwracam honor !!! to nie wina petli!!!

ale jak w takim razie przesortowac taka tablice w odwroconym porzadku questionmark.gif? 8O
bo musze tak zrobic...
takie zapytanie pobiera wyniki a petla zaczyna od pierwszego wyniku a konczy na ostatnim wiec dostaje wszystko odwrotnie z kolei zapytania nie moge przeredagowac w taki sposob aby zaczynalo od ostatniego wyniku a nie pierwszego.
POMOCY!! jak odwrocic kolejnosc tej tablicy ?
probowalem juz z funkcja usort dla tablic wieowymiarowych ale nic z tego nie udalo mi sie zdefiniowac takiej funkcji ktora odwroci ta tablice ...
oczy
Dobra juz wiem (po ciezkich probach udalo sie - znalazlem w literaturze)

gdyby ktos byl tym zainteresowany ponizej kod sortujacy moja tablice
Kod
function  compare($tabx, $taby)

{

if ($tabx[0] == $taby[0])

return 0;

else if ($tabx[0] < $taby[0])

return -1;

else

return 1;

};



usort($data, compare);

gdzie $tabx[0] i $taby[0] oznaczaja kolejne tablice tablicy $data a ich indeksy wskazuja na elementy tablicy wg ktorych ma zostac posortowana.

... takie proste, a ja glupi .... ;P
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.