Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] wyciagniecie tylko unikalnego rekordu
AndyPSV
post 14.09.2010, 14:38:34
Post #1





Grupa: Zarejestrowani
Postów: 393
Pomógł: 5
Dołączył: 6.02.2003
Skąd: The.Luciferian.Doctrine.p
df

Ostrzeżenie: (30%)
XX---


Mam baze i chce wyciagnac tylko 1 (jeden) rekord co ma ACTION = 1 oraz ID_TO = X


  1. CREATE TABLE `drug_db_log_pl` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `id_to` int(11) NOT NULL,
  4. `by_who` int(11) NOT NULL,
  5. `date` datetime NOT NULL,
  6. `action` tinyint(4) NOT NULL,
  7. `text` text NOT NULL,
  8. PRIMARY KEY (`id`)
  9. ) ENGINE=MyISAM DEFAULT CHARSET=latin2 AUTO_INCREMENT=5 ;
  10.  
  11. --
  12. -- Dumping data for table `drug_db_log_pl`
  13. --
  14.  
  15. INSERT INTO `drug_db_log_pl` (`id`, `id_to`, `by_who`, `date`, `action`, `text`) VALUES
  16. (1, 1, 1, '2010-09-14 15:44:41', 1, ''),
  17. (2, 1, 1, '2010-09-14 15:44:45', 1, ''),
  18. (3, 1, 1, '2010-09-14 15:44:50', 1, ''),
  19. (4, 2, 1, '2010-09-14 15:45:24', 1, '');
  20.  


czyli w tym przypadku chce wyciagnac tylko rekord: 1 i 4.
jak to zrobic za pomoca jednego zapytania?

mam cos takiego:
  1. $sql = ' WHERE by_who = '.$this->u['id'].' AND action = 1 ';
  2.  
  3. $qq = q('SELECT id FROM `'.PRFX.'db_log'.LG.'`'.$sql); $cnt = n_r($qq); $this->tpl->assign('cnt',$cnt); loadLib('number2word');
  4. $q = q('SELECT * FROM `'.PRFX.'db_log'.LG.'`'.$sql.' ORDER BY id DESC LIMIT '.($pg*PER_PG3).','.PER_PG3.''); if(n_r($q) > 0) ....
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
phpion
post 14.09.2010, 14:45:53
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(AndyPSV @ 14.09.2010, 15:38:34 ) *
Mam baze i chce wyciagnac tylko 1 (jeden) rekord co ma ACTION = 1 oraz ID_TO = X

...

czyli w tym przypadku chce wyciagnac tylko rekord: 1 i 4.

To w końcu 1 czy kilka?

  1. SELECT * FROM tabela WHERE action=1 AND id_to=X LIMIT 1;
Go to the top of the page
+Quote Post
AndyPSV
post 15.09.2010, 21:09:19
Post #3





Grupa: Zarejestrowani
Postów: 393
Pomógł: 5
Dołączył: 6.02.2003
Skąd: The.Luciferian.Doctrine.p
df

Ostrzeżenie: (30%)
XX---


chce wyciagnac rekordy, ktore maja po 1 powtorzeniu - mowiac inaczej
na zalaczonym przykladzie maja to byc rekordy z ID: 1 i 4

  1. $qq = q('SELECT DISTINCT id_to FROM `'.PRFX.'db_log'.LG.'`'.$sql); $cnt = n_r($qq); $this->tpl->assign('cnt',$cnt); loadLib('number2word');
  2. $q = q('SELECT DISTINCT id_to FROM `'.PRFX.'db_log'.LG.'`'.$sql.' ORDER BY id DESC LIMIT '.($pg*PER_PRINT_PG1).','.PER_PRINT_PG1.''); if(n_r($q) > 0) while($_r = f($q)) {
Go to the top of the page
+Quote Post
goran
post 17.09.2010, 14:54:24
Post #4





Grupa: Zarejestrowani
Postów: 23
Pomógł: 2
Dołączył: 17.09.2010

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


  1. SELECT * FROM drug_db_log_pl GROUP BY id_to, action


ew. jeżeli źle zrozumiałem to tak:

  1. SELECT * FROM drug_db_log_pl WHERE action = 1 GROUP BY id_to


Ten post edytował goran 17.09.2010, 14:55:32
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: 19.07.2025 - 18:19