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

MySQL: brisanje i ponovno citanje iz baze

[es] :: MySQL :: MySQL: brisanje i ponovno citanje iz baze

[ Pregleda: 4361 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

vilyu
Web Developer
Beograd, Srbija

Član broj: 1188
Poruke: 444



+2 Profil

icon MySQL: brisanje i ponovno citanje iz baze20.07.2002. u 09:43 - pre 264 meseci
Cao svima! Imam problemcic sa news sistemom s kojim vezbam. Dakle: Na desnom delu sajta na kom vezbam prikazujem poslednje cetiri unete vesti kojima je pridruzena jedinstvena sifra iz baze. Klikom na jednu od tih vesti, sifra se
prosledjuje strani vesti.php koja bi trebalo da prikaze tu i jos 9
prethodnih vesti u opadajucem poretku. Ako imam 20 vesti i obrisem
pretposlednju, znaci sa sifrom 19, trebalo bi da klikom na vest sa sifrom 18
prikazem 20, 18, 17, 16, 15, 14, 13, 12, 11, 10. E sad, tu nastaje problem
jer sam upit formulisao ovako:
SELECT id, datum, vest FROM vesti ORDER BY id DESC LIMIT ($max-$id), 10
pri cemu je $max sifra poslednje vesti, a $id sifra trazene vesti. Ovaj upit
perfektno radi kada ne brisem vesti, ali kada obrisem pomenutu 19-u, on ce
prvo obrnuti redosled (da bi najnovija vest bila prva), a zatim reci
20-18=2, sto znaci kreni od trece (0,1,2) prikazane, a to je vest sa sifrom
17, a ne 18! Razmisljao sam da belezim broj obrisanih poruka, ali kako one
ne moraju biti za redom, ta varijanta otpada. Takodje, podesavanje teksta
neke vesti na nulu uzrokuje prikaz manje od deset vesti, sto je
neprihvatljivo. Kakvim upitom biste vi ovo resili? Hvala.

Pera električar 0637129710, BG, preporučujem.
 
Odgovor na temu

krvopije
Dusko Maksimovic
Beograd

Član broj: 3289
Poruke: 136
*.beg.sezampro.yu

Sajt: www.reosonline.com


Profil

icon Re: MySQL: brisanje i ponovno citanje iz baze20.07.2002. u 10:14 - pre 264 meseci
Najbolje ti je da u SQL bazi formiras kolonu npr DATUM u koju ce se upisivati tacan datum i vrijeme unosenja vijesti tako da nikada neces imati vijest sa istim datumom i vremenom. Kada izaberes neku od one cetiri vijesti pokupi njen datum i onda u SQL upitu izaberi to vijest i jos 9 koje imaju raniji datum-vrijeme od nje. Tako da prilikom brisanja vijesti upit ce i dalje da ti radi (postojeci SQL upit prepravi)

Valjda je pomoglo

 
Odgovor na temu

Mihailo
Mihailo Đorić

Član broj: 1016
Poruke: 2875
*.beotel.net



+1 Profil

icon Re: MySQL: brisanje i ponovno citanje iz baze20.07.2002. u 16:28 - pre 264 meseci
Jednostavno selektuj više vesti nego što ti treba, recimo hoćeš 20, selektuj 30
primer
Code:

$max=(mysql_query(SELECT COUNT (*) FROM vesti))-30;
$vesti=mysql_query("select * from vesti where id>$max order by id desc");


I onda lepo kroz while ili nekako drugačije prikažeš samo poslednjih 20

Code:
 
$brv=0;
  while($row=(mysql_fetch_array($vesti))and($brv<20))
    {
    echo(' ... vest ... ');
    $brv++;
    }


Naravno, ima lepših i boljih rešenja, ovo mi je trenutno palo na pamet.
 
Odgovor na temu

Riste Pejov
Team Leader/Senior Software Developer @
Ein-Sof ltd Skopje
Skopje, Macedonia

Član broj: 128
Poruke: 571
212.110.78.*

Jabber: richie@bagra.net.mk
ICQ: 154236769
Sajt: riste.softver.org.mk


Profil

icon Re: MySQL: brisanje i ponovno citanje iz baze20.07.2002. u 21:17 - pre 264 meseci
kad insertujes vesti, onda u koloni za datum ubaci NOW() vrednost,
ali kolona datum MORA biti DATETIME.
tako da vesti imaju i vreme dana kad su ubaceni, onda sortiraj po DATUM koloni
ako sam dobro shvatio onda ovo bi uradilo stvar
Code:

SELECT id, datum, vest FROM vesti WHERE datum<$t_datum ORDER BY datum DESC LIMIT 10 

gde $t_datum je vrednost kolone datum za vest koja je izabrana iz browser-a

i onda on prikaze 10 prethodne vesti koji su undeti pre od izabrane

People who think they know everything tend to irritate those of us who do.
 
Odgovor na temu

[es] :: MySQL :: MySQL: brisanje i ponovno citanje iz baze

[ Pregleda: 4361 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

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