Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]explode() i pętle
Forum PHP.pl > Forum > Przedszkole
jonaev
Witam wszystkich,
Problem jest następujący, w bazie sql mam pole tekstowe które przechowuje dane na temat tego jakie checkboxy zostały zaznaczone. wpisy w tablicy są przypuścmy takie "1,2,3,4,5" "1,2,4" "2,3,4" i "2,5". kwestia teraz tego w jaki sposób zliczyćile poszczególnych wartości występuje w sumie. napisałem do tego coś takiego:
Kod
<?php
require_once( "polaczt.php");
otworz_baze();
$result = mysql_query('SELECT ind FROM przyk ');
$cal = mysql_num_rows($result);

for($q=1;$q<=$cal;$q++)
{
  $result = mysql_query('SELECT * FROM przyk');
  while ($db = mysql_fetch_array($result))
  {
   $chck = explode(",", $db['tekst']);            
   for($k=1;$k<=5;$k++)
   {
    for($p=1;$p<=5;$p++)
    {
     if($chck[$k]==$p)
     {
      if($suma[$k]>0)
      {
       $suma[$k]=$suma[$k]+1;
      }
      else
      {
       $suma[$k] = 1;
      }
     }
    }
   }    
  }
}
echo '<pre>';
print_r ($suma);
echo '</pre>';
?>

w efekcie suma powinna dać wartości 1->2 2->4 3->2 4->3 5->2, nie mniej tak nie jest;/ jakieś sugestie ?
krowal
  1. <?php
  2. $amounts = array(); //tablica z ilosciami elementow
  3. $rows = array();
  4.  
  5. //pominalem laczenie z baza, dopisz sobie :)
  6. $while($row = mysql_fetch_array($result)){
  7.  foreach(explode(',', $row['tekst']) as $e){ //nie powinno byc $row['ind'] ?
  8.    if (!isset($amounts[$e]))
  9.      $amounts[$e] = 1;
  10.    else
  11.      $amounts[$e]++;
  12.  }
  13. }
  14. ?>
wookieb
Ludzi ludzie ludzie...
http://pl2.php.net/array_sum
A ta wartosc dopisz w dodatkowym polu bazy danych zebys nie musial liczyc a noz sie potem przyda.
krowal
@wookieb
Tylko, że tu nie chodzi o zsumowanie elementów tablicy ale o zliczenie ilości ich wystąpień w kilku tablicach, chyba jest różnica smile.gif
Darti
ja bym zrobił oddzielne kolumny dla każdego checkboxa a później kazał policzyć to silnikowi bazy (np select count(*) where checkbox_5 = 1)
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.