Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Određivanje pozicije vijesti na različitim pozicijama sa jednim SQL upitom!

[es] :: MySQL :: Određivanje pozicije vijesti na različitim pozicijama sa jednim SQL upitom!

[ Pregleda: 2423 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mb_sa

Član broj: 50529
Poruke: 172
*.PPPoE-1758.sa.bih.net.ba.



Profil

icon Određivanje pozicije vijesti na različitim pozicijama sa jednim SQL upitom!04.02.2008. u 09:31 - pre 196 meseci
Evo tabela:

Code:
-- 
-- Table structure for table `pozicije`
-- 

CREATE TABLE `pozicije` (
  `id` int(11) NOT NULL auto_increment,
  `pozicija` enum('1','2','3','4') NOT NULL,
  `vijest_id` int(11) NOT NULL,
  PRIMARY KEY  (`id`),
  UNIQUE KEY `pozicija` (`pozicija`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=4;

-- 
-- Dumping data for table `pozicije`
-- 

INSERT INTO `pozicije` VALUES (1, '1', 2);
INSERT INTO `pozicije` VALUES (2, '2', 1);
INSERT INTO `pozicije` VALUES (3, '3', 67);

-- 
-- Table structure for table `vijesti`
-- 

CREATE TABLE `vijesti` (
  `id` int(11) NOT NULL auto_increment,
  `naslov` varchar(100) NOT NULL,
  `tekst` text,
  `datum` datetime NOT NULL,
  `datum_objave` datetime default '0000-00-00 00:00:00',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=68;


Na indexu stranice imam 4 pozicije za vijesti (jedna vijest, jedana pozicija). Pozicija 1 je na vrhu stranice, dok su Pozicije 2, 3 i 4 na dnu stranice.
Vijesti na poziciji 2, 3, i 4 imaju isti prikaz (layout), dok vijest na Poziciji 1 ima nešto drugačiji! Znaci, treba jedan upit da izvuće vijest na Poziciju 1, i drugi za izvuče vijesti na Pozicije 2, 3, i 4.

Potrebno je da omogućim bolje pozicioniranje, tj. forsiranje nekih vijesti u odnosu na druge vijesti. Dakle, u admin panelu bi trebao da administrator
da pozicijama dodijeli vijesti. Svim pozicijama ne mora biti dodijeljenja vijest!

Moja ideja je da se to rijesi prkeo gore navedenih tabela!

Recimo sa sljedećim jendostavnim upitom dobijem vijesti soritrane po pozicijama 2, 3, i 4.

Code:
SELECT v.naslov, p.pozicija 
FROM vijesti v, pozicije p 
WHERE v.id = p.vijest_id AND p.pozicija IN (2,3,4)
ORDER BY p.pozicija


Medjutim, moje pitanje je sljedeće!!
Ukoliko nekoj od pozicija nije dodijeljena vijest (recimo pozicijima 1 i 3), gornji upit će naravno vratiti jedan red. tj. jednu vijest.
Da li je moguće i kako da se jednim upitom vratim vijest na Poziciji 2 i jos dvije zadnje unešene vijesti? Da li to mogu uraditi na osnovu ove strukture tabela ili je jedino rješenje da ovaj problem riješim na nivou programskog jezika!

Lp i Hvala,
mb
 
Odgovor na temu

[es] :: MySQL :: Određivanje pozicije vijesti na različitim pozicijama sa jednim SQL upitom!

[ Pregleda: 2423 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.