Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zapisanie wynikow zapytania w tablicy...
oczy
post
Post #1





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 12.04.2002
Skąd: Żywiec

Ostrzeżenie: (0%)
-----


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;
}
?>
Go to the top of the page
+Quote Post
dragossani
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 398
Pomógł: 0
Dołączył: --
Skąd: Poznań

Ostrzeżenie: (0%)
-----


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.)
Go to the top of the page
+Quote Post
oczy
post
Post #3





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 12.04.2002
Skąd: Żywiec

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
dragossani
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 398
Pomógł: 0
Dołączył: --
Skąd: Poznań

Ostrzeżenie: (0%)
-----


:?: 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.
Go to the top of the page
+Quote Post
oczy
post
Post #5





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 12.04.2002
Skąd: Żywiec

Ostrzeżenie: (0%)
-----


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 ...
Go to the top of the page
+Quote Post
oczy
post
Post #6





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 12.04.2002
Skąd: Żywiec

Ostrzeżenie: (0%)
-----


zwracam honor !!! to nie wina petli!!!

ale jak w takim razie przesortowac taka tablice w odwroconym porzadku (IMG:http://forum.php.pl/style_emoticons/default/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 ...
Go to the top of the page
+Quote Post
oczy
post
Post #7





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 12.04.2002
Skąd: Żywiec

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 12:47