Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Wynik zapytania SQL w array'u
Forum PHP.pl > Forum > Przedszkole
ImagesWink
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ć 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 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.
batman
  1. <?php
  2. $cos = array();
  3. while($data = mysql_fetch_array($sql)) {
  4.    $cos[] = $data;
  5. }
  6. ?>
zbig
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
patryczakowy
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;
ImagesWink
Witam ponownie smile.gif
Taka szybka i fachowa pomoc, że aż chce się mieć problemy z pisaniem czegokolwiek 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 smile.gif
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.