Jump to content
php.lv forumi

jaunumu lapa


direktors

Recommended Posts

ir doma veidot šādu tabulu:

 

jaunumi:

id|kategorija|nosaukums|bilde|ievads|pilns_teksts|autora_id|datums|gads|menesis|lasits|komentaru_skaits

+

komentari:

id|jaunuma_id|autors|teksts|epasts|web|ip

jautājums#1: vai ir nepieciešams izdalīt ievads un pilns_teksts jeb šos abus laukus apvienot un izvadot galvenajā lapā mazus ievadus jaunumiem limitēt izvadāmo simbolu skaitu.. kurā variantā performance būs labāka?

 

jautājums#2: man ir sadaļa arhīvs un tur var izvēlēties gadu, pēc tam mēnesi un aplūkot rakstus. tam man papildus kolonnai datums ir arī kolonnas gads un menesis. vai ir iespējs iztikt bez šīm divām kolonnām un noteikt kuri raksti atbilst pieprasitajam gadam, menesim?

 

un varbut vel kautkas ir piebilstams attiecībā uz tabulu laukiem..?

 

paldies iepriekš.

Edited by direktors
Link to comment
Share on other sites

lai dabuutu vajadziigo datumu

vienkaarsha saliidzinaashana

SELECT * FROM tabula WHERE datums='2007-10-19'

ja vajag gadu un menesi

tad izmanto f-jas YEAR(), MONTH(), DAYOFMONTH()

ja vajag ierakstiit tad izmanto CURDATE() , vai ar PHP DATE() izveido stringu....

ja vajag teiksim 33 dienas vecus ierakstus tad

SELECT * FROM tabula WHERE datums < DATE_ADD(CURDATE(), INTERVAL 33 DAY)

noformateetu datumu var dabuut

DATE_FORMAT(datums,'%Y bla bala %m bla2 bla %d') as pilns_datums

kur bla bla jebkas iznjemot % (lai to lietotu skat manuaali)

Link to comment
Share on other sites

es tagad sāku pīpēt ieteikumus.

 

tabulā laukam datums noradiju tipu datetime

 

tālāk,

$sql = "INSERT INTO jaunumi (nosaukums, datums) VALUES ( 'nosaukums kautkaads' , CURDATE())";

 

tabula aizpildās lūk kā:

nosaukums kautkaads 2006-07-13 00:00:00

 

kādēļ laiks ir pa nullēm?

 

un vai tiktāl doma ir pareiza, pēcāk varēs atlasīt pa gadiem, mēnešiem?

 

EDIT:

atradu, ka CURDATE() vietā var likt NOW(). tas strādā.

 

saglabāts tiek YYYY-MM-DD HH:MM:SS.

 

kā tad ir ar to izvadīšanu tagad? kā atlasīt piemēram 2005 gada jūnija ierakstus?

Edited by direktors
Link to comment
Share on other sites

kam tev DATETIME ja pietiek ar DATE ?

gribas arii pulksteni ? ;)

 

<CIT> kā atlasīt piemēram 2005 gada jūnija ierakstus? </CIT>

SELECT * FROM tabula WHERE YEAR(datuma_lauks)=2005 AND MONTH(datuma_lauks)=6

 

edit:

CURDATE() ir prieks datutipa DATE // tikai datums

NOW() prieksh DATETIME // datums un pulkstenis

Edited by Grey_Wolf
Link to comment
Share on other sites

bet vai rakstīt šitā lai atlasa 2005 gada jūniju nebūs ātrāk

select * from table where datuma_lauks >="2005-06-01" AND datuma_lauks<"2005-07-01"

 

viena projecta tabulā ar 1632365 ierakstiem un indexu uz datuma_lauks selectējot 1 mēneša ierakstus ar

* intervālu: 154,763 total, Query took 0.0225 sec

* year() un month(): 154,763 total, Query took 1.6377 sec

Edited by v3rb0
Link to comment
Share on other sites

  • 2 weeks later...
viena projecta tabulā ar 1632365 ierakstiem un indexu uz datuma_lauks selectējot 1 mēneša ierakstus ar

kā var piegrabināt db ar vismaz ar miljons ierakstiem? es uztaisiju mazu skritu ar

for ($i = 1; $i <= 1000000; $i++) {...

palaidu šamo.. pec minūtes uzmeta

Fatal error: Maximum execution time of 60 seconds exceeded in C:\db.php on line 30

 

pa to minūti aptuveni 3800 ierakstus tikai veica.

 

EDIT.

 

un vai varat pateikt kadēļ man nežēlīgi bremzē lapa, ja es gribu viņā izvadīt kopējo rindu skaitu un izmantoju šādu kodu:

$query = mysql_query("SELECT * FROM zinjuarhivs"); $number=mysql_num_rows($query);
echo "<br />Kopв ievietoti raksti ".$number;

vai iespējams kāds efektīvāks veids kā izvadīt šos datus?

Edited by direktors
Link to comment
Share on other sites

* nomaini tās 30 secundes uz lielāku ciparu - php configā max execution time vai kko tādu pameklē.

 

* atver ar operu, un uzliec lai automatsiki refreshojas reizi pardesmit secundēs.

 

* nedari neko no tā, bet spaidi refresh - daudz :)

Link to comment
Share on other sites

atgriežoties pie neskaidrā.

vai varat pateikt kadēļ man nežēlīgi bremzē lapa, ja es gribu viņā izvadīt kopējo rindu skaitu un izmantoju šādu kodu:

$query = mysql_query("SELECT * FROM zinjuarhivs"); $number=mysql_num_rows($query);

echo "<br />Kopв ievietoti raksti ".$number;

vai iespējams kāds efektīvāks veids kā izvadīt šos datus?

Edited by direktors
Link to comment
Share on other sites

×
×
  • Create New...