Jump to content
php.lv forumi

YEAR(datums) AS year...WHERE year = '2004'


rumpels

Recommended Posts

Sadomāju izveidot universaalu arhīva skriptu, tobish ja ir kaut kada tabula kurā ir DATE ir iespējams tos sagrupēt pēc gada un mēneša.

 

Problēma ir tajā ka otrajā selektā nevar uzrādīt ka izvada tikai WHERE year = '$gads' līdz ar to ir ķeza un izvada visus mēnešus kuri pastāv tabulā pie abiem gadiem un gadi visur ir vienādi. Vai ir kādas idejas kā būtu labāk konstruēt, ko esmu nepareizi izštukojis?

 

<html>
<head>
<title>arhīvs</title>
<?php
mysql_connect ("localhost", "user", "pass");
mysql_select_db("database");
?>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1257">
</head>
<body>
<?
$query = mysql_query("SELECT *,YEAR(datums) AS year FROM tabula GROUP BY year ORDER BY year DESC");
while($rinda = mysql_fetch_assoc($query))
{
$gads = $rinda["year"];
echo $gads.". gads<br>";

$query2 = mysql_query("SELECT *,YEAR(datums) AS year,MONTH(datums) AS month,DAYOFWEEK(datums) AS day FROM tabula GROUP BY month");
while($rinda2 = mysql_fetch_assoc($query2))
{
$months = array("", "Janvāris", "Februāris", "Marts", "Aprīlis", "Maijs", "Jūnijs", "Jūlijs", "Augusts", "Septembris", "Oktobris", "Novembris", "Decembris");
$dien = array("Svētdiena", "Pirmdiena", "Otrdiena", "Trešdiena", "Ceturtdiena", "Piektdiena", "Sestdiena");
$die = $rinda2["day"];
$men = $rinda2["month"];
$gad = $rinda2["year"];

echo "  <a href=\"?month=".$men."&year=".$gad."\">".$months[$men]."</a><br>";
}
}
?>
</body>
</html>

Link to comment
Share on other sites

v/b problēma tajā, ka rakstot year kā kolonnas vārdu tu izmanto mysql iekšējo komandu (resp. mysql domā ka tā ir funkcija un gaida, ka tur būs "("), lai izmantotu šādus kolonnu nosaukumus, tie jāietver backtickos ` (parasti zem esc, pirms 1)

 

select year(datums) as `year` WHERE `year`=YEAR(NOW())

select DISTINCT `group` as gruppa GROUP BY `group`

 

et cetera

Link to comment
Share on other sites

sorry par to sintaksi esmu laikam parnjemts un kljudos aizvien vairak, bet sql tiesham nenjem preti sho vaicajumu..

SELECT *,YEAR(datums) AS `gads`,MONTH(datums) AS `month`,DAYOFWEEK(datums) AS `day` FROM tabula WHERE `gads` = YEAR('2003') GROUP BY `month`

#1054 - Unknown column 'gads' in 'where clause'

Edited by rumpels
Link to comment
Share on other sites

neskaitot neprātīgu " izmantošanu, vēlos atzīmēt variantu

while(...)

{

$months = array("", "Janvāris", "Februāris",...);

$dien = array("Svētdiena", ..., "Sestdiena");

}

- sanāk ka katrā ciklā tev tie masīvi tiek rādīti no jauna. lai pataupītu RAMu:

$months = array("", "Janvāris", "Februāris",...); 
$dien = array("Svētdiena", ..., "Sestdiena");
while(...) 
{
$month un $dien šeit jau pieejami
}

Link to comment
Share on other sites

Ek, ka cilvēkiem joprojām patīk eskeipoties:

echo "  <a href=\"?month=".$men."&year=".$gad."\">".$months[$men]."</a><br>"

Nebūtu vienkāršāk:

echo '  <a href="?month='.$men.'&year='.$gad.'">'.$months[$men].'</a><br>'

vai pat:

echo "  <a href='?month=$men&year=$gad'>".$months[$men].'</a><br>'

 

Un kāda jēga vispār no ši a hrefa? Tas tak netiek nekur izmantots, ne? Vai arī viss šis ir tikai fragments no lielāka koda gabala?

Edited by bubu
Link to comment
Share on other sites

echo '  <a href="?month='.$men.'&year='.$gad.'">'.$months[$men].'</a><br />'

vairāk piekrītu šim variantam, jo kaučkā pierastāk redzēt noģenerētā htmlā atributūtus iekš ""

SQL kvērijiem gan izmantoju " ", jo tur stringus jānodod ar ' ' (izņemot gadījumus ar 'DELETE FROM TABLE '.$table);

Link to comment
Share on other sites

×
×
  • Create New...