webForumDet fria alternativet

Arkivscript

3 svar · 317 visningar · startad av Micke^2

Micke^2Medlem sedan juli 20032 inlägg
#1

hej.
jag behöver hjälp med en funktion i ett script jag har, jag har redan fått veta vad som behövs göras men eftersom jag inte kan php så bra frågar jag här :).
det är ett script man ska kunna ändra månad och år för att få fram olika nyheter.

scriptet:

<form action='<?=$_SERVER[PHP_SELF];?>' method='POST'> 

<?php 

$DBhost = "localhost";
$DBdatabase = "nyhet";
$DBuser = "DBA";
$DBpass = "";

mysql_connect("$DBhost","$DBuser","$DBpass") or exit(mysql_error());
mysql_select_db("$DBdatabase") or exit(mysql_error());

function getDayName($dayNr){ 
    $dayNames = array ( 
        'Söndag', 'Måndag', 'Tisdag', 'Onsdag', 
        'Torsdag', 'Fredag', 'Lördag'); 
    return $dayNames[$dayNr]; 
} 

function getMonthName($monthNr){ 
    $monthNames = array( 
        1 => 'Januari', 'Februari', 'Mars', 'April', 'Maj', 'Juni', 
        'Juli', 'Augusti', 'September', 'Oktober', 'November', 'December'); 
    return $monthNames[$monthNr]; 
} 

function makeDayLink($day,$month,$year){ 
   $timestamp = mktime(1,1,1,$month,$day,$year); 
   $eventQuery = @mysql_query("SELECT eventtime FROM mbaEvents WHERE eventtime='$timestamp'") or exit(mysql_error()); 
   $antal = mysql_num_rows($eventQuery); 
   if($antal > 0){ 
      $link = "<a href='$_SERVER[PHP_SELF]?showdayevent=$timestamp'>$day</a>"; 
   }else{ 
      $link = "<span class='mini'>$day</span>"; 
   } 
   return $link; 
} 

   echo"<center><table width='500' style='border-style:solid;border-color:#BEDCF1;border-width:1;'>"; 
   $thismonth = getMonthName(date("n")); 
   $thisday = getDayName(date("w")); 
   $thisDate = date("d"); 
   echo"<tr bgcolor='#BEDCF1'><td colspan='2'><center><span class='big'>$thisday $thisDate $thismonth</span></center></td></tr>"; 

   echo"<tr><td valign='top'>"; 
   echo"<SELECT name='year' onChange='document.forms[0].submit();'>"; 
    
   $selectedYear = date("Y"); 
   if(!isset($_POST[year])){ 
      $_POST[year] = $selectedYear; 
   
   }else{ 
      $selectedYear = $_POST[year]; 
   } 
   if(isset($_GET[showdayevent])){ 
      $_POST[year] =  date("Y",$_GET[showdayevent]); 
      $selectedYear = date("Y",$_GET[showdayevent]); 
   } 
   for($i=$selectedYear-1;$i<=$selectedYear+2;$i++){ 
      if($selectedYear == $i){ 
         $sel = "SELECTED"; 
      }else{ 
         $sel = ""; 
      } 
      echo "<option value='$i' $sel>$i</option>"; 
   } 
   echo"</SELECT>  "; 
   echo"<SELECT name='month' onChange='document.forms[0].submit();'>"; 
   $selectedMonth = date("n"); 
   if(!isset($_POST[month])){ 
      $_POST[month] = $selectedMonth; 
   }else{ 
      $selectedMonth = $_POST[month]; 
   } 
   if(isset($_GET[showdayevent])){ 
      $_POST[month] =  date("m",$_GET[showdayevent]); 
      $selectedMonth = date("m",$_GET[showdayevent]); 
   } 
   for($i=1;$i<=12;$i++){ 
      if($selectedMonth == $i){ 
         $sel = "SELECTED"; 
      }else{ 
         $sel = ""; 
      } 
      $selMonth = getMonthName($i); 
      echo "<option value='$i' $sel>$selMonth</option>"; 
   } 
   echo"</SELECT>"; 
   echo"</td></tr>"; 
   if(!isset($_GET['showdayevent'])){ 
      $geteventtimestamp = mktime(1,1,1,date("m"),date("d"),date("Y")); 
      $evDate = "idag"; 
   }else{ 
      $geteventtimestamp = $_GET[showdayevent]; 
      $evDate = date("y-m-d",$geteventtimestamp); 
   } 
    
   echo"<tr><td valign='top' align='left' class='cellborder'><hr></td>"; 
   
   echo "</td></tr>"; 
   echo"<tr><td colspan='2'>"; 
   $daysInMonth = date("t",mktime(1,1,1,$_POST['month'],1,$_POST['year'])); 
   $firstDayNr = date("w",mktime(1,1,1,$_POST['month'],1,$_POST['year'])); 
   if($firstDayNr == 0){ 
      $firstDayNr = 7; 
   } 
   $firstDayNr-=2; 
   $dayNumberArray = array(); 
   for($i=0;$i<=$firstDayNr;$i++){ 
      $dayNumberArray[] = ""; 
   } 
   for($i=1;$i<=$daysInMonth;$i++){ 
      if($i <= 9){ 
         $dNr = "0$i"; 
      }else{ 
         $dNr = $i; 
      } 
      $dayNumberArray[] = $dNr; 
   } 
    
   echo"<center><table>"; 

$scud = mysql_db_query('nyhet' , "SELECT * FROM nyhet WHERE manad = '$manad' && ar = '$ar' ORDER BY id DESC") or exit(mysql_error());  

        while ($rad = mysql_fetch_array ($scud)) {

echo "  <table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n";
echo "  <tr>\n";
echo "  <td>\n";
echo "  <table width=\"90%\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">\n";
echo "  <tr>\n";
echo "  <td><img src=\"../Main/Menu_table.gif\" width=\"100%\" height=\"10\"></td>\n";
echo "  </tr>\n";
echo "  <tr>\n";
echo "  <td><table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n";
echo "  <tr>\n";
echo "  <td width=\"30%\"><div align=\"center\"><img src=\"../Bilder/Nyhet.gif\" widt§h=\"15\" height=\"15\"></div></td>\n";
echo "  <td width=\"70%\" class=\"Datum\"><strong>","Skrivet:", " ", $rad[1], " ", $rad[2] , "," , " ", $rad[3], " ", "av", " " ,"<a href=\"mailto:", $rad[6],"\">", $rad[4],"</A></strong></td>\n";
echo "  </tr>\n";
echo "  </table></td>\n";
echo "  </tr>\n";
echo "  </table>\n";
echo "  </td>\n";
echo "  </tr>\n";
echo "  <tr> \n";
echo "  <td>&</td>\n";
echo "  </tr>\n";
echo "  <tr>\n";
echo "  <td>\n";
echo "  <table width=\"90%\" align=\"center\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n";
echo "  <tr>\n";
echo "  <td>", $rad[5] ,"</td>\n";
echo "  </tr>\n";
echo "  </table>\n";
echo "  </td>\n";
echo "  </tr>\n";
echo "  $rad[7]\n";
echo "  <tr> \n";
echo "  <td>&</td>\n";
echo "  </tr>\n";
echo "  </table>\n";}

   echo"</table></center>"; 
   echo"</td></tr>"; 
   echo"</table></centeR>"; 
?> 
</form>

detta behövs göras:

När man ändrar så sparar du år i $ar, månad i $manad (dvs, de värdena man valt i din drop-down-meny)
Sen gör du om $manad från siffervärdet (1, 2..., 12) till månadens namn (januari, februari, osv...)

tacksam för hjälp
/micke

AgaithMedlem sedan jan. 2001191 inlägg
#2

Kan du specifiera lite mer vad du vill uppnå, har själv anväånt mig av det scriptet och modifierat det lite granna så bara du säger vad du vill så jag fattar skall det nog gå att lösa.

Micke^2Medlem sedan juli 20032 inlägg
#3

jag vill kunna ändra värderna i dropdownmenyn så olika nyheter kommer fram beroende på vilken månad det är.
scriptet finns på denna sida i "action": http://dba.shacknet.nu/Allmant/Arkiv.php

den enda skillnaden mellan dom scripten är quoteraden

/micke

AgaithMedlem sedan jan. 2001191 inlägg
#4

micklade med det lite själv och det slutade med att jag lade till en knapp för att välja år/månad och tog bort den automatiska script-prylen (dvs onChange). Går säkerligen att fixa om man kan javascript bättre än mig.

127 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)