Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]mysql_fetch_row do dataset?
Forum PHP.pl > Forum > Przedszkole
korax
Witam,

Czy istnieje możliwość zwrócenia wyniku zapytania mysql do czegoś podobnego jak DataSet w .NET?
W .NET mogłem odczytać wszystkie wiersze wyniku zapytania i zapisać obiekcie DataSet co pozwalało na późniejsze "przejście po danych", gdzie foreach'em mogłem przejść po DataSet.Tables[0].Rows. A wszystko to po zakończonym połączeniu z bazą.

Dokładnie to chodzi mi o napisanie funkcji, która będzie realizowała połączenie z mysql, pobierała dane i zwracała wynik w postaci wszystkich wierszy.
strife
Hej,

Nie miałem większej styczności z .NET'em, jednak mogę Ci powiedzieć, że coś takiego jest w phpie, poszukaj pod hasłami mysql_connect, mysql_fetch_array, ewentualnie polecam PDO do komunikacji z bazami.
korax
mysql_connect i mysql_fetch_array? Bardzo śmieszne smile.gif
To tak jak bym zapytał jak się jeździ rowerem i uzyskał odpowiedź: zacznij od chodzenia.

Chce pobrać całą zwróconą kolekcję z bazy do jakiegoś obiektu, aby w dowolnym momencie móc skorzystać z danych.
Wykorzystam to do budowania różnego rodzaju tabel. Nie uśmiecha mi się definiowania za każdym razem obsługi połączeń do bazy.

PDO odpada, provider nie ma tego odpalonego.
strife
Cytat(korax @ 21.05.2010, 15:18:53 ) *
mysql_connect i mysql_fetch_array? Bardzo śmieszne smile.gif
To tak jak bym zapytał jak się jeździ rowerem i uzyskał odpowiedź: zacznij od chodzenia.

Chce pobrać całą zwróconą kolekcję z bazy do jakiegoś obiektu, aby w dowolnym momencie móc skorzystać z danych.
Wykorzystam to do budowania różnego rodzaju tabel. Nie uśmiecha mi się definiowania za każdym razem obsługi połączeń do bazy.

Na podstawie tego możesz sobie stworzyć własną klasę, która będzie robiła to co konkretnie chcesz, przecież nikt Cię nie zmusza do definiowania połączenia z bazą kilka razy w kilku miejscach, to zależy od Ciebie jak sobie to zakodujesz.

Jeżeli chodzi o gotowe rozwiązania to może być ciężko, dlatego też będziesz pewnie zmuszony samemu coś takiego napisać.

Cytat
PDO odpada, provider nie ma tego odpalonego.

PDO jest już od jakiegoś czasu pewnym standardem, więc dziwi mnie to.

Daj jakiś kod w języku który zaproponowałeś, przykład jak tam wygląda manipulowanie danymi, może uda nam się to przełożyć na phpa smile.gif

Pozdrawiam.
korax
Przykładowy kod w C#


Klasa do wyciągania danych:
  1.  
  2. public class SQL
  3. {
  4. public SQL()
  5. {
  6. }
  7.  
  8. public DataSet DataSetFromQuery(String Query, System.Collections.ArrayList Parametry)
  9. {
  10. DataSet Result = new DataSet();
  11. SqlConnection _SqlConnection = new SqlConnection("Persist Security Info=False;Integrated Security=False;UID=login;password=haslo;database=baza;server=server;Connect Timeout=30");
  12.  
  13. _SqlConnection.Open();
  14. SqlCommand _SqlCommand = new SqlCommand(Query, _SqlConnection);
  15. _SqlCommand.Parameters.AddRange(Parametry.ToArray());
  16.  
  17. SqlDataAdapter _SqlDataAdapter = new SqlDataAdapter(_SqlCommand);
  18. _SqlDataAdapter.Fill(Result);
  19. _SqlConnection.Close();
  20.  
  21. return Result;
  22. }
  23. }


I już sam przykład przelania wyniku do DataSet:

  1. SQL SQL = new SQL();
  2. ArrayList _paramtery = new ArrayList();
  3. DataSet DS = SQL.DataSetFromQuery(_zapytanie, _paramtery);
  4.  
  5. foreach(DataRow wiersz in DS.Tables[0].Rows)
  6. {
  7. Console.WriteLine(wiersz[0]);
  8. Console.WriteLine(wiersz[1]);
  9. Console.WriteLine(wiersz[1]);
  10. }


Rozwiązaniem może być Multidimensional Arrays, tylko nie wiem jak się to zachowa w przypadku dużej ilości danych.

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.