nach Datum Filtern

covets1

Grünschnabel
Hi Leutz,

ich habe eine übersicht der Kategorien in den ich die Beiträge zähle nun möchte ich noch einen Datum Filter hinzufügen so das er mir alle Beiträge von -------- bis anzeigt.

Verwendetet Tabellen sql_kategorien und sql_files das Datum ist in der spalte added in
time stamp hinterlegt.

Ich hoffe das ihr mir helfen könnt da mir langsam die Haare zu Berge stehen.

PHP:
<?
if ($cat == -1) {
     $cat = 0;}
$result = mysql_query("SELECT * FROM $sql_kategorien WHERE id='$cat'");
$kat_details = mysql_fetch_array($result);
$kategorie_description = $kat_details[description];
$back_id = $kat_details[under];
$gesamtkategorie = catlinks($cat);
?>
<b><? echo $gesamtkategorie ?></b>
<?
<?
if ($cat) {
?>
<? echo $kategorie_description  ?>
<a href="<? echo "$categ_html?cat=$back_id" ?>">zur&uuml;ck</a>
<?
}
$td_count = 0;
$result = mysql_query("SELECT * FROM $sql_kategorien WHERE under='$cat' ORDER BY title");
while ($kat_array = mysql_fetch_array($result)) {
  $kat_name = $kat_array["title"];
  $kat_id = $kat_array["id"];
  $kat_desc = $kat_array["description"];
  $td_count++;
  if ($td_count == 3) { $td_count = 1; }
  if ($td_count == 1) { echo "<tr><td width=\"50%\" class=\"cattitle1\">"; }
  if ($td_count == 2) { echo "<td class=\"cattitle1\">"; }
  $kat_dls = getcatdls($kat_id);
  $r_under_cat = mysql_query("SELECT * FROM $sql_kategorien WHERE under='$kat_id'");
  $catunder_count = mysql_num_rows($r_under_cat);
  $under_length = 0;
  $under_cats = "";
  while ($under_array = mysql_fetch_array($r_under_cat)) {
    if ($under_length > 0) { $under_cats .= " | "; }
    $under_length += strlen($under_array["title"]);
    if ($under_length < $categlist_length) {

      $under_cats .= "<a href=\"".$categ_html."?cat=".$under_array["id"]."\">".$under_array["title"]."</a> (".getcatdls($under_array["id"]).")";

    } else {
      $under_cats .= "<a href=\"".$categ_html."?cat=".$under_array["id"]."\">".$under_array["title"]."</a> (".getcatdls($under_array["id"]).")";
      break;
    }
  }
  if($adminebene >= "2")
  	{
  		$anz_ebene = "";
  	}
  else
  	{
  		$anz_ebene = "AND `poster` = '$adminid'";
  	}

  $anz = mysql_query("SELECT * FROM $sql_files WHERE kategorie='$kat_id' $anz_ebene", $handler);
  $anz1 = 0;
  $anz1 = mysql_num_rows($anz);
# $kat_dls
 $added_date = date("j.m.Y", $added); // Timestamp zu Datum
        $today_date = date("j.m.Y");
        if ($added_date == $today_date) {
          $added_date = "$added_date";
        }
        $added_time = date("G:i", $added); // Timestamp zur Zeit
?>
<a href="<? echo "$categ_html?cat=$kat_id" ?>"><? echo $kat_name ?></a> (<? echo $anz1 ?>)
<?
  if ($under_cats) {
?>
   <? echo $under_cats ?>
<?
  }
?>
<? echo $kat_desc ?>
<?
  if ($td_count == 1) { echo "</td>"; }
  if ($td_count == 2) { echo "</td></tr>"; }
}
  if ($td_count == 1) { echo "<td class=\"cattitle1\">&nbsp;</td><tr>"; }
?>
 
Du müsstest theoretisch nur deine SQL-Anweisung variabel erweitern (je nach dem ob der Client überhaupt nach Datum filtern will oder nicht)
PHP:
if (isset($_POST['date_year'])) {
    $start = mktime(/* ... */); // Startdatum als Unixtimestamp
    $end   = mktime(/* ... */); // Enddatum als Unixtimestamp
    $where = " AND `timestamp` BETWEEN '{$start}' AND '{$end}'"; // Wherecondition erweitern
} else {
    $where = ''; // nicht erweitern
}

Jenachdem, wie deine Timestampspalte vorhanden ist, musst du im Falle eines SQL-Timestamps noch den Unixtimestamp rekonstruieren über zB [phpf]date[/phpf].

SQL:
SELECT *
FROM `table`
WHERE 1 AND `timestamp` BETWEEN 'start' AND 'end';

referenz BETWEEN erster wert AND zweiter wert heißt zu gut Deutsch so viel wie
Code:
referenz >= erster wert && referenz <= zweiter wert

Das musst du nur noch entsprechend in dein Script einbauen - Bin leider etwas in Eile und konnte deinen Codeauszug nicht wirklich analysieren.
 
Mir ist leider nicht ganz klar, in welchem Query / in welchen Queries du eine Geltungsraum einbauen möchtest - Kannst du mir die entsprechenden Queries nochmal gesondert angeben, und auch die Datumsfelder angeben?
Des Weiteren würde mich interessieren, wie du die Datumseinschränkung vornehmen möchtest. Mit Eingabe- / Selectfeldern? Wenn ja, wäre auch diese Information interessant.

Mit diesen Angaben lässt sich sicherlich was entsprechend deines Geschmackes finden.
 
Hi maeTimmae

ich habe dir unten das ganze script eingefügt ab zeile 236 ist dein script eingefügt.

kurz zu diesen script das ist eine übersicht der Kategorien + anzeige der inhalte der einzelnen cats und untercats.

bei den filter ist nur wichtig das er in der ersten übersicht die anzahl anzeigt der kategorien.

Z.B.
vom 10.09.2007 bis 17.09.2007
cat 1 (15)
cat 2 (20) u.s.w.

Daniel


PHP:
<?
include("config.php");
include("a_admin.php");

include("public.php");

include("$header_inc");



if (!isset($showlimit)) { $showlimit = 30; }
if (!isset($pagesep)) { $pagesep = " - "; }

if (!isset($sort)) { $sort = "added"; }
if ($order != "ASC" and $order != "DESC") { $order = "ASC"; }
if (!isset($cat)) { $cat = 0; }
if (!isset($show)) { $show = $showlimit; }
if (!isset($page)) { $page = 1; }

$handler = @mysql_connect($db_server,$db_username,$db_passwort);
@mysql_select_db($db_database,$handler);
if ($cat == -1) {

  if($adminebene >= "2")
  	{
  		$anz_ebene = "";
  	}
  else
  	{
  		$anz_ebene = "where `poster` = '$adminid'";
  	}

  $result = mysql_query("SELECT id FROM $sql_files $anz_ebene");
} else {  if($adminebene >= "2")

  	{
  		$anz_ebene = "";
  	}
  else
  	{
  		$anz_ebene = "AND  `poster` = '$adminid'";
  	}

  $result = mysql_query("SELECT id FROM $sql_files WHERE kategorie='$cat' $anz_ebene");

}

$maximum = mysql_num_rows($result);

$numpages = ceil($maximum / $show);
if ($numpages < $page) { $page = 1; }
$pos = (($page - 1) * $show);

if ($page == 1)                 { $lastpage = 0; } else { $lastpage = $page - 1; }
if (($maximum - $pos) < $show)  { $nextpage = 0; } else { $nextpage = $page + 1; }

if ($cat == -1) {
 if($adminebene >= "2")
 {
  		$anz_ebene = "";
  	}
  else
  	{
  		$anz_ebene = "where `poster` = '$adminid'";
  	}
  $result = mysql_query("SELECT * FROM $sql_files $anz_ebene ORDER BY $sort $order LIMIT $pos, $show");} else {  if($adminebene >= "2")
  	{
  		$anz_ebene = "";
  	}
  else
  	{
  		$anz_ebene = "AND  `poster` = '$adminid'";
  	}
  $result = mysql_query("SELECT * FROM $sql_files WHERE kategorie='$cat' $anz_ebene ORDER BY $sort $order LIMIT $pos, $show");

}
$show_max = mysql_num_rows($result);
if ($show_max) {

layout("table1a"); ?>
<b>Dateien (<? echo "$show_max/$maximum" ?>)</b>
<? layout("table1b"); ?>
<tr><td align="center" colspan="2">
    <table align="center" width="100%" border="0" cellspacing="0" cellpadding="0">
<?
if ($numpages > 1) { ?>
       <tr>
         <td width="100" class="itemnorm">Seiten blättern</td>
         <td align="center">
<? if ($lastpage > 0) { ?>
           <a href="<? echo "$categ_html?cat=$cat&sort=$sort&order=$order&show=$show&page=$lastpage" ?>">&lt;&lt;</a>
<? } else { ?>
           &lt;&lt;
<? }
   for ($actpage = 1; $actpage <= $numpages; $actpage++) {
     echo $pagesep;
     if ($actpage != $page) { ?>
           <a href="<? echo "$categ_html?cat=$cat&sort=$sort&order=$order&show=$show&page=$actpage" ?>"><? echo $actpage ?></a>
           <? } else { echo "<b>".$actpage."</b>"; } ?>
<? }
   echo $pagesep;
   if ($nextpage > 0) { ?>
           <a href="<? echo "$categ_html?cat=$cat&sort=$sort&order=$order&show=$show&page=$nextpage" ?>">&gt;&gt;</a>
<? } else { ?>
           &gt;&gt;
<? } ?>
         </td>
       </tr>
<? if ($maximum > 20) { ?>
       <tr>
         <td class="itemnorm">Anzeigen pro Seite</td>
         <td align="center" class="itemnorm">
           <a href="<? echo "$categ_html?cat=$cat&sort=$sort&order=$order&show=10" ?>">10</a> <? echo $pagesep; ?>
           <a href="<? echo "$categ_html?cat=$cat&sort=$sort&order=$order&show=20" ?>">20</a> <? echo $pagesep; ?>
           <a href="<? echo "$categ_html?cat=$cat&sort=$sort&order=$order&show=50" ?>">50</a> <? echo $pagesep; ?>
           <a href="<? echo "$categ_html?cat=$cat&sort=$sort&order=$order&show=100" ?>">100</a>
         </td>
       </tr>
<?   }
   } ?>
       <tr>
         <td class="itemnorm">Sortieren nach</td>
         <td align="center" class="itemnorm">
           <a href="<? echo "$categ_html?cat=$cat&sort=added&order=$order&page=$page&show=$show" ?>">Erstellt</a> <a href="<? echo "$categ_html?cat=$cat&sort=added&order=ASC&page=$page&show=$show" ?>"><img src="order_up.gif" width="8" height="5" border=0 alt="Ansteigende Sortierung" align=middle></a><a href="<? echo "$categ_html?cat=$cat&sort=added&order=DESC&page=$page&show=$show" ?>"><img src="order_down.gif" width="8" height="5" border=0 alt="Absteigende Sortierung" align=middle></a> <? echo $pagesep; ?>
           <a href="<? echo "$categ_html?cat=$cat&sort=Name&order=$order&page=$page&show=$show" ?>">Name</a> <a href="<? echo "$categ_html?cat=$cat&sort=name&order=ASC&page=$page&show=$show" ?>"><img src="order_up.gif" width="8" height="5" border=0 alt="Ansteigende Sortierung" align=middle></a><a href="<? echo "$categ_html?cat=$cat&sort=name&order=DESC&page=$page&show=$show" ?>"><img src="order_down.gif" width="8" height="5" border=0 alt="Absteigende Sortierung" align=middle></a>
          <? echo $pagesep; ?>
           <a href="<? echo "$categ_html?cat=$cat&sort=auftragsdat&order=$order&page=$page&show=$show" ?>">Bearbeitet</a> <a href="<? echo "$categ_html?cat=$cat&sort=auftragsdat&order=ASC&page=$page&show=$show" ?>"><img src="order_up.gif" width="8" height="5" border=0 alt="Ansteigende Sortierung" align=middle></a><a href="<? echo "$categ_html?cat=$cat&sort=auftragsdat&order=DESC&page=$page&show=$show" ?>"><img src="order_down.gif" width="8" height="5" border=0 alt="Absteigende Sortierung" align=middle></a> <? echo $pagesep; ?>
           <a href="<? echo "$categ_html?cat=$cat&sort=poster&order=$order&page=$page&show=$show" ?>">M.A.</a> <a href="<? echo "$categ_html?cat=$cat&sort=poster&order=ASC&page=$page&show=$show" ?>"><img src="order_up.gif" width="8" height="5" border=0 alt="Ansteigende Sortierung" align=middle></a><a href="<? echo "$categ_html?cat=$cat&sort=poster&order=DESC&page=$page&show=$show" ?>"><img src="order_down.gif" width="8" height="5" border=0 alt="Absteigende Sortierung" align=middle></a> <? echo $pagesep; ?>
		   <a href="<? echo "$categ_html?cat=$cat&sort=kategorie&order=$order&page=$page&show=$show" ?>">Status</a> <a href="<? echo "$categ_html?cat=$cat&sort=kategorie&order=ASC&page=$page&show=$show" ?>"><img src="order_up.gif" width="8" height="5" border=0 alt="Ansteigende Sortierung" align=middle></a><a href="<? echo "$categ_html?cat=$cat&sort=kategorie&order=DESC&page=$page&show=$show" ?>"><img src="order_down.gif" width="8" height="5" border=0 alt="Absteigende Sortierung" align=middle></a> <? echo $pagesep; ?>
		   <a href="<? echo "$categ_html?cat=$cat&sort=jahr_wi&order=$order&page=$page&show=$show" ?>">WV</a> <a href="<? echo "$categ_html?cat=$cat&sort=jahr_wi&order=ASC&page=$page&show=$show" ?>"><img src="order_up.gif" width="8" height="5" border=0 alt="Ansteigende Sortierung" align=middle></a><a href="<? echo "$categ_html?cat=$cat&sort=jahr_wi&order=DESC&page=$page&show=$show" ?>"><img src="order_down.gif" width="8" height="5" border=0 alt="Absteigende Sortierung" align=middle></a>

         </td>
       </tr>
       <tr>
         <td height="1" colspan="2" class="itemheader0"></td>
       </tr>
     </table><br>
</td></tr>
 


<?

while($details = mysql_fetch_array($result))
{		$id = $details["id"];

        $downloads = $details["downloads"];
        $lastdownload = $details["lastdownload"];
        $title = $details["title"];
        $added = $details["added"];
		$name = $details["name"];
		$auftragsdat = $details["auftragsdat"];
		$poster = $details["poster"];
		$kategorie = $details["kategorie"];
        $description = $details["description"];
		$jahr_wi2 = "";
		$jahr_wi= "";
		$wimonat= "";
		$witag= "";
   		$wistunde= "";
        $wieminute= "";

        $jahr_wi2= $details["jahr_wi"];

		if($jahr_wi2 != "0")
			{
				$jahr_wi= date("Y", $jahr_wi2);

				$wimonat= date("m", $jahr_wi2);

				$witag= date("d", $jahr_wi2);

        		$wistunde= date("H", $jahr_wi2);

		        $wieminute= date("i", $jahr_wi2);
			}

         $added_date = date("j.m.Y", $added); // Timestamp zu Datum
        $today_date = date("j.m.Y");
        if ($added_date == $today_date) {
          $added_date = "$added_date";
        }
        $added_time = date("G:i", $added); // Timestamp zur Zeit

$b_date = date("j.m.Y", $auftragsdat); // Timestamp zu Datum
$today_date = date("j.m.Y");
if ($b_date == $today_date) {
  $b_date = "$b_date";
}
$b_time = date("G:i", $auftragsdat); // Timestamp zur Zeit

        if (!$description) {
          $description = "-";
        }
        if (!$title) {
          $title = "-";
        }
		?>

<tr><td align="left" class="itembold">
  Name:&nbsp;&nbsp;&nbsp;<a href="<? echo "$download_html?id=$id" ?>"><? echo $name ?></a>
</td>
<td valign="top" class="itemnorm"><a href="<? echo "$editfile_html?id=$id" ?>" target="_new"></a>&nbsp;&nbsp;<? echo "$added_date $added_time" ?>&nbsp;&nbsp;BA: <? echo "$b_date - $b_time" ?></a>&nbsp;&nbsp;M.A.: <? echo $poster ?>&nbsp;&nbsp;Status:<? echo $kategorie ?>&nbsp;&nbsp;WV:<? echo $witag  ?>.<? echo $wimonat ?>.<? echo $jahr_wi ?>&nbsp;-&nbsp;<? echo $wistunde ?>:<? echo $wieminute ?>&nbsp;Uhr <tr><td align="left" class="itemsmall">

</td>
<td class="itemsmall"></p>

</td></tr>

<?
$jahr_wi = "";
$jahr_wi2 = "";
}

layout("table1c");
layout("table1d");

}

if ($cat == -1) {
  $cat = 0;
}

$result = mysql_query("SELECT * FROM $sql_kategorien WHERE id='$cat'");
$kat_details = mysql_fetch_array($result);

$kategorie_description = $kat_details[description];
$back_id = $kat_details[under];

$gesamtkategorie = catlinks($cat);


layout("table1a"); ?>
<b><? echo $adminuser ?></b> <p>
<b> <? echo $gesamtkategorie ?></b>
<?
if (isset($_POST['date_year'])) { 
    $start = mktime(/* ... */); // Startdatum als Unixtimestamp 
    $end   = mktime(/* ... */); // Enddatum als Unixtimestamp 
    $where = " AND `added` BETWEEN '{$start}' AND '{$end}'"; // Wherecondition erweitern 
} else { 
    $where = ''; // nicht erweitern 
}  
 $added_date = date("j.m.Y", $added); // Timestamp zu Datum
        $today_date = date("j.m.Y");
        if ($added_date == $today_date) {
          $added_date = "$added_date";
        }
        $added_time = date("G:i", $added); // Timestamp zur Zeit

$SQL = mysql_query("SELECT *FROM $sql_files WHERE 1 AND `added` BETWEEN 'start' AND 'end'"); 

?>
<form id="added" name="added" method="post" action="<? echo $PHP_SELF ?>">
von <input name="start" type="text" value="<? echo $added_date ?>" /> 
bis <input name="end" type="text" value="<? echo $added_date ?>" />
<input type="submit" name="Submit" value="Filtern" id="Submit" />
</form>

<? layout("table1b");

if ($cat) {

?>
<tr><td class="catdesc2" colspan="2">
  <? echo $kategorie_description  ?>
</td></tr>
<tr><td class="cattitle1" colspan="2">
<a href="<? echo "$categ_html?cat=$back_id" ?>">zur&uuml;ck</a>
<hr noshade color="#000000"></td></tr>
<?

}

$td_count = 0;

$result = mysql_query("SELECT * FROM $sql_kategorien WHERE under='$cat' ORDER BY title");
while ($kat_array = mysql_fetch_array($result)) {
  $kat_name = $kat_array["title"];
  $kat_id = $kat_array["id"];
  $kat_desc = $kat_array["description"];
  $td_count++;
  if ($td_count == 3) { $td_count = 1; }
  if ($td_count == 1) { echo "<tr><td width=\"50%\" class=\"cattitle1\">"; }
  if ($td_count == 2) { echo "<td class=\"cattitle1\">"; }

  $kat_dls = getcatdls($kat_id);

  $r_under_cat = mysql_query("SELECT * FROM $sql_kategorien WHERE under='$kat_id'");
  $catunder_count = mysql_num_rows($r_under_cat);
  $under_length = 0;
  $under_cats = "";
  while ($under_array = mysql_fetch_array($r_under_cat)) {
    if ($under_length > 0) { $under_cats .= " | "; }
    $under_length += strlen($under_array["title"]);
    if ($under_length < $categlist_length) {

      $under_cats .= "<a href=\"".$categ_html."?cat=".$under_array["id"]."\">".$under_array["title"]."</a> (".getcatdls($under_array["id"]).")";

    } else {
      $under_cats .= "<a href=\"".$categ_html."?cat=".$under_array["id"]."\">".$under_array["title"]."</a> (".getcatdls($under_array["id"]).")";
      break;
    }
  }
  if($adminebene >= "2")
  	{
  		$anz_ebene = "";
  	}
  else
  	{
  		$anz_ebene = "AND `poster` = '$adminid'";
  	}

  $anz = mysql_query("SELECT * FROM $sql_files WHERE kategorie='$kat_id' $anz_ebene", $handler);
  $anz1 = 0;
  $anz1 = mysql_num_rows($anz);
  
?>

<table height="98%" width="98%" cellspacing="1" class="tabbord1">
<tr>
 <td valign="middle" align="left" class="itembold">
 <img src="folder.gif" width="15" height="13" border="0" alt="">
 <a href="<? echo "$categ_html?cat=$kat_id" ?>"><? echo $kat_name ?></a> (<? echo $anz1 ?>)
 </td>
</tr>
<?
  if ($under_cats) {
?>
<tr>
 <td class="catdesc2">
   <? echo $under_cats ?>
 </td>
</tr>
<?
  }
?>
<tr>
 <td class="catdesc2">
   <? echo $kat_desc ?>
 </td>
</tr>
</table>
<?

  if ($td_count == 1) { echo "</td>"; }
  if ($td_count == 2) { echo "</td></tr>"; }

}

  if ($td_count == 1) { echo "<td class=\"cattitle1\">&nbsp;</td><tr>"; }

layout("table1c");

include("$footer_inc");

?>
 
Zurück