• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Baza Danych Mysql i Skrypt PHP - wyciąganie wielu rows

0 głosów
765 wizyt
pytanie zadane 16 października 2018 w SQL, bazy danych przez s1mx Nowicjusz (120 p.)

Cześć,

z mysql próbuje wyciągnąć nicki użytkowników którzy należą do grupy 15 (jest w bazie danych kto jest w jakiej) ale przy próbie wyciągnięcia wartości z 2 lub więcej rows naraz pojawia mi się tylko pierwsza wartość.

Fragment kodu:                                     

   require_once "connect.php";
    mysqli_report(MYSQLI_REPORT_STRICT);

        try 
         {
       $polaczenie = new mysqli($host, $db_user, $db_password, $db_name);
       if ($polaczenie->connect_errno!=0)
        {
       throw new Exception(mysqli_connect_errno());
          }
         else
         {
       $group = $_SESSION['group'];
       $query = 'SELECT `user` FROM `uzytkownicy` WHERE `group` = "'.$group.'"';
     $result = mysqli_query($polaczenie, $query);
      $ile = mysqli_num_rows($result);
                                                
        echo $ile;
        $row = mysqli_fetch_assoc($result);
       $result = $row['user'];
                                                
                                                
       /*if (!$mates) throw new Exception($polaczenie->error);*/
                                                
      echo $group;
    echo $result;
                                                
      $polaczenie->close(); 
          }

             }

 

wygląd bazy danych: http://vps.webhop.me/Przechwytywanie.PNG

Jak widać na ss, dwóch użytkowników powinno się pojawić w zmiennej, a pojawia się jeden (pierwszy)

Ktoś wie jak to naprawić?

Z góry dzięki za pomoc!

PS: Kod formatowany na szybko (w edytorze mam poukładany)

 

 

 

2 odpowiedzi

0 głosów
odpowiedź 16 października 2018 przez niezalogowany

Typowa konstrukcja przy wyciąganiu wierszy z bazy danych:

$ result = {tu zapytanie do bazy};
while($row = mysqli_fetch_assoc($result}) {
        echo $row["pole_z_bazy"];
}
0 głosów
odpowiedź 16 października 2018 przez OdsetekGlupoty Pasjonat (15,360 p.)

Witam, 

Zauważ, że tylko jeden raz wyświetlasz zmienną $result, czyli pokaże się tylko jeden wiersz z bazy. Aby wyświetlić wszystkie wiersze, używamy pętli. Najlepszą pętlą do tego jest foreach.

Wystarczy, że poszukasz sobie w necie "foreach mysqli", a na pewno otrzymasz to czego chcesz. 

Dodam tylko, że można zastosować też pętle while​​​​​​, jednak lepszym rozwiązaniem okazuje się być ta pierwsza pętla. 

komentarz 16 października 2018 przez Gambr Dyskutant (7,530 p.)

$result zwraca associative array, każda szufladką zawiera record z danymi. Użyj 

foreach($result as $record)
{
  //cokolwiek robisz z recordem
} 

 

Podobne pytania

0 głosów
2 odpowiedzi 231 wizyt
pytanie zadane 24 czerwca 2020 w SQL, bazy danych przez danielch Użytkownik (660 p.)
0 głosów
1 odpowiedź 401 wizyt
pytanie zadane 4 kwietnia 2021 w PHP przez niezalogowany
0 głosów
2 odpowiedzi 575 wizyt
pytanie zadane 7 lutego 2016 w PHP przez Exchampion Nowicjusz (140 p.)

93,604 zapytań

142,529 odpowiedzi

322,996 komentarzy

63,090 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...