Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Zliczanie rekordów i sprawdźanie...
Forum PHP.pl > Forum > Przedszkole
_Martin_
Witam


Mam sobie tabele "skład"
A W niej numery id_druzyny
Jak moge sprawdzić po za siedzieniem i wertowaniem ręcznym czy wszyscy mają swój skład (rekord)
Jeżeli liczba wszystkich druzy to 1470
Licząc że mogą mieć podwójne rekordy dla id_druzyny
Głownie mi chodzi o to jak można sprawdzić jakiego numeru nie ma w bazie, przy zakresie od 1 do 1470
_olo_1984
można np. tak
  1. SELECT DISTINCT id_druzyny FROM sklad


wynik zapytania zapisujesz do tablicy np. $row

potem możesz sobie stworzyć tablicę wypełnioną elementami od 1 do 1470
  1. <?php
  2. $tab = array();
  3. for($i = 1; $i <= 1470; $i++)
  4. {
  5.  $tab[] = $i;
  6. }
  7. ?>


a potem pętlą sprawdzać po kolei każdy element tablicy $row czy jest w tablicy $tab, jeżeli nie ma to dpisujesz do kolejnen tablicy

  1. <?php
  2. foreach($tab as $t)
  3. {
  4.    if(!in_array($t, $row))
  5.    {
  6.        echo 'Numeru '.$t.' nie ma w tablicy <br />';
  7.        // lub zrzut do tablicy
  8.    }
  9. }
  10. ?>
_Martin_
  1. <?php
  2. 0:
  3. Warning: in_array() [function.in-array]: Wrong datatype for second argument in E:Program FilesWebServhttpdplikistradd.php on line 26
  4. Numeru 1 nie ma w tablicy
  5. ?>


Cosik nie tak co to za błąd panowie ?

Olo mam problem z twoim sposobem
Mozesz powiedzioeć co nie tak?
kefirek
Powinno dzialac

  1. <?php
  2. $przedzial = range(1,1470);
  3.  
  4. $liczby = array();
  5.  
  6. $wynik = mysql_query("SELECT DISTINCT(id_druzyny) FROM sklad");
  7.  
  8. while($r = mysql_fetch_assoc($wynik)) {
  9.  
  10. if(!in_array($r['id_druzyny'], $przedzial)) { $liczby[] = $r['id_druzyny'];}
  11.    
  12. }  
  13.  
  14. foreach($liczby AS $wynik){
  15.  echo $wynik.'<br>';
  16. }
  17. ?>
_Martin_
Dzięki ale teraz mam pustą stronę z wynikami tzn:
Dużo <br> a zero wyników...


//Edit dobra pomyłka jest ok ale wpypisało wszystkie numery z bazy a nie pokazało gdzie jest pusty!
kefirek
Ok zrób tak i pokaze puste nr
  1. <?php
  2. $liczby = array();
  3.  
  4. $wynik = mysql_query("SELECT DISTINCT(id_druzyny) FROM sklad");
  5.  
  6. while($r = mysql_fetch_assoc($wynik)) {
  7. $przedzial[]=$r['id_druzyny'];
  8. }
  9.    
  10. for ($lp=0; $lp<1470; $lp++) {  
  11. if (!in_array($lp, $przedzial)) {$liczby[] = $lp; }
  12. }
  13.  
  14. foreach($liczby AS $wynik){
  15.  echo $wynik.'<br>';
  16. }
  17. ?>
_Martin_
Działa wielkie thx mi 1 sposób ola działał ale nie było pętli na pobieranie wyników z bazy i pobierało tylko 1 wynik z tablicy np $row[0] lub [141] ale git thx Pozdrawiam
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.