Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]mysql_fetch_row do dataset?
korax
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 14.05.2010

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


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
strife
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


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.


--------------------
Go to the top of the page
+Quote Post
korax
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 14.05.2010

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


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





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


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.


--------------------
Go to the top of the page
+Quote Post
korax
post
Post #5





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 14.05.2010

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


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.

Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 17:35