Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Wynik zapytania SQL w array'u
ImagesWink
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 25.05.2009

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


Witam.
Na wstępie powiem, że szukałem już na forum (znalazłem ten temat: http://forum.php.pl/lofiversion/index.php/t94813.html ) ale nie do końca chodzi mi o to jak to jest tam wytłumaczone.
W manualu ( http://php.net.pl/manual/pl/index.php ) też przesiedziałem pare godzin i nie potrafie tego zrobić (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
O co chodzi? Już wyjaśniam. Otóż: posiadam przykładowo taką tabelkę:
Kod
user | grupa
1    | alfa
2    | alfa
3    | beta
4    | beta
5    | gamma
6    | gamma
7    | gamma


Poniższy kod da mi (wyświetli) wynik w postaci: "1,2,3,4"
  1. <?php
  2. include('_config.php');
  3. $sql = mysql_query("SELECT * FROM grupy WHERE grupa = 'alfa' OR grupa = 'beta'");
  4. while ($data = mysql_fetch_row($sql))
  5.  echo $data[0].', ';
  6. ?>


I teraz problem polega na tym, że ja tego wyniku nie chcę wyświetlać. Ja chcę go podać do dalszego użytku w następujący sposób:
  1. <?php
  2. $costam = array($wynik_o_ktory_mi_chodzi); // ID userow
  3. ?>

I właśnie tego nie potrafię zrobić.
Dalej chce sobie dodać if'a sprawdzającego czy dany user należy do $costam, a meczy mnie już ręczne dodawanie każdego ID do array'a (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Próbowałem tak:
  1. <?php
  2. include('_config.php');
  3. $sql = mysql_query("SELECT * FROM grupy WHERE grupa = 'alfa' OR grupa = 'beta'");
  4. while ($data = mysql_fetch_array($sql))
  5.  $cos =  $data[0].', ';
  6. print "$cos";
  7. ?>

Ale w tym przypadku wyświetla mi tylko jeden (ostatni chyba) wpis z kolumny 'user'.

Z góry dziękuję za pomoc.
Pozdrawiam.

Ten post edytował ImagesWink 6.07.2009, 07:57:31
Go to the top of the page
+Quote Post
batman
post
Post #2





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




  1. <?php
  2. $cos = array();
  3. while($data = mysql_fetch_array($sql)) {
  4.    $cos[] = $data;
  5. }
  6. ?>
Go to the top of the page
+Quote Post
zbig
post
Post #3





Grupa: Zarejestrowani
Postów: 144
Pomógł: 30
Dołączył: 5.05.2007
Skąd: Mannheim

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


Witam !

  1. <?php
  2. while ($data = mysql_fetch_array($sql))
  3. $cos[] =  $data[0];
  4. ?>


w ten sposob zbudujesz arrayke z ids userow.


jezeli potrzebujesz te ids w innym pytaniu to mozesz trobic to tak

Kod
"SELECT FROM tabela WHERE id IN (".implode(',',$cos).")


Poza tym do zadania pytania bezposrednio mozesz uzyc ids jako podpytanie

Kod
   "SELECT * FROM tabela WHERE id IN (SELECT id FROM grupy WHERE grupa = 'alfa' OR grupa = 'beta') "


Mysle ze o to Ci chodzi

Pozdrawiam
Go to the top of the page
+Quote Post
patryczakowy
post
Post #4





Grupa: Zarejestrowani
Postów: 420
Pomógł: 44
Dołączył: 22.10.2008

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


spróbuj tak
  1. <?php
  2. $wynik=array();
  3. $sql = mysql_query("SELECT * FROM grupy WHERE grupa = 'alfa' OR grupa = 'beta'");
  4. while ($data = mysql_fetch_assoc($sql))
  5.  array_push($wynik,$data);
  6. ?>

i wtedy wyniki będziesz miał zapisane w tablicy;
Go to the top of the page
+Quote Post
ImagesWink
post
Post #5





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 25.05.2009

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


Witam ponownie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Taka szybka i fachowa pomoc, że aż chce się mieć problemy z pisaniem czegokolwiek (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Na pierwszy ogień wziąłem rozwiązanie zbig'a, bo wydawało mi się najlżejsze dla mnie. Działa jak chciałem.
Wynik testu:
  1. <?php
  2. include('_config.php');
  3. $moj_id = 1; //testowe id ktorym sprawdzam czy skryp dobrze porownuje dane
  4.  
  5. $sql = mysql_query("SELECT * FROM grupy WHERE grupa = 'alfa'");
  6. while ($data = mysql_fetch_array($sql))
  7. $cos[] =  $data[0];
  8.  
  9.  
  10. if ( @in_array($moj_id, $cos) )
  11.    {
  12.    $msg = "dziala";
  13.    }
  14. else
  15.    {
  16.    $msg = "nie dziala";
  17.    }
  18.  
  19. print "$msg"
  20. ?>


Dziękuję bardzo, temat uważam za zamknięty (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
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 - 09:46