webForumDet fria alternativet

Arkivscript

PHP

3 svar · 319 visningar · startad av Micke^2

Medlem sedan juli 20032 inlägg
Frågan#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

Medlem 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.

Medlem 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

Medlem 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.

272 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
140 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)