Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL]explode() i pętle
jonaev
post 7.05.2009, 23:02:57
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 7.05.2009

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


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 ?
Go to the top of the page
+Quote Post
krowal
post 8.05.2009, 06:18:56
Post #2





Grupa: Zarejestrowani
Postów: 561
Pomógł: 72
Dołączył: 15.11.2006

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


  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. ?>


--------------------
Nawet świnka może wejść na drzewo kiedy jest chwalona :)
Go to the top of the page
+Quote Post
wookieb
post 8.05.2009, 06:46:04
Post #3





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




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.


--------------------
Go to the top of the page
+Quote Post
krowal
post 8.05.2009, 18:52:02
Post #4





Grupa: Zarejestrowani
Postów: 561
Pomógł: 72
Dołączył: 15.11.2006

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


@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


--------------------
Nawet świnka może wejść na drzewo kiedy jest chwalona :)
Go to the top of the page
+Quote Post
Darti
post 8.05.2009, 22:41:55
Post #5





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


ja bym zrobił oddzielne kolumny dla każdego checkboxa a później kazał policzyć to silnikowi bazy (np select count(*) where checkbox_5 = 1)


--------------------
The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1
MySQL Client API version : 5.0.27
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 7.07.2025 - 00:32