webForumDet fria alternativet

Loop för aktuell dag.

2 svar · 299 visningar · startad av SannyW

SannyWMedlem sedan jan. 2003438 inlägg
#1

Hej!

Har problem att få ut värde på aktuell dag. Hela bordskalendern skapas och ser ut som den skall, men just värden från databasen får jag inte ut rätt.

Ser ut som de loppas ut i ordning och hamnar inte på aktuell dag.

Kom gärna med synpunkter om det är helt uppåt väggarna i koden. Är ny i php och utvecklas gärna. :stud

Tack på förhand.


//********** Start SQL ************
$query = "select id, rubrik, detalj, DATE_FORMAT(datum, '%Y-%m-%d') as datum1, DATE_FORMAT(frantid, '%H:%i') as ftid, DATE_FORMAT(tilltid, '%H:%i') as ttid from tbl_calender as c INNER JOIN tbl_team as t ON t.t_teamID = c.teamID WHERE t.t_name = 'f14' order by frantid asc";
//********** Slut SQL ************

db_connect();
$result = mysql_query($query);
$num_result = mysql_num_rows($result);
  if ($num_result < 1) 
    echo 'Det finns inga data';
  else
  {
    $iCounter=1;

    // Hämtar värde för aktiv/valt år, månad och dag.
    $dYear =  getLinkValue('y');
    $dMonth = getLinkValue('m');
    $dDay = getLinkValue('d');

    // Antalet dagar i månaden
    $dDaysInMonth = date('t', mktime(0,0,0,$dMonth,1,$dYear));   
 
    for ($i=0; $i<$dDaysInMonth; $i++)
    {
      $row = mysql_fetch_array($result);
				
      // Ändrar färgen för söndagar.
      if (dDayName($iCounter) == 'Söndag') {
        $sNclass = "CalenderNamnRed";
        $sColor = "#EEEEEE";
        $iLinesize = 3;
	$sClass = "CalenderBoldRed";
      }
      else {
        $sClass = "CalenderBoldBlack";
        $sNclass = "CalenderNamnBlack";
        $sColor = "FFFFFF";
        $iLinesize = 1;
      }

      // Ändrar färg för dagens datum.
      if (date('m') ==  $dMonth) {
        if (date('d') == $iCounter) 
        { 
          $sColor = "#FFFFCC";
        }
      }
			
      echo '<tr bgcolor="'.$sColor.'"><td align="center" width="30">'; 
 
      $Output = '<span class="'.$sClass.'">'.$iCounter.'</a></span></td>';
      $Output = $Output.'<td class="'.$sNclass.'" width="95" valign="top">'.dDayName($iCounter).'</span>';
      $Output = $Output.'<span class="CalenderxSmall">&nbsp;&nbsp;'.DayCount($iCounter).'</span><br>';
      $Output = $Output.'<span class=CalenderSmall>'.sNamn($dMonth,$iCounter).'</span></td>';
      $Output = $Output.'<td valign=top width=300>'; 

      // Här skall skrivas om villkoren uppfylls. FUNKAR INTE
      if (substr($row['datum1'], 8, 2) == $iCounter)        
      {
        $Output = $Output.'<font class="CalenderTime">'.$row[ftid].'-'.$row[ttid].'</font>';
      }

      echo $Output;

      // Skriver ut veckonummer
      if (dDayName($iCounter) == 'Måndag') {
        $dYear =  getLinkValue('y');
        $dMonth = getLinkValue('m');
        $dDay = getLinkValue('d');

        $currenttime = mktime (0,0,0,$dMonth,$iCounter+8,$dYear);
        $newtime = mktime (0,0,0,1,1,2007);
        $iWeekNo = DateDiff ("w",$newtime ,$currenttime);

        echo '</td><td class="CalenderSmall" align="right" width="60" valign="top">v.'.$iWeekNo.'</td></tr><tr><td colspan=4></td></tr>';
      }
      else {
        echo '</td><td>&nbsp;</td></tr><tr><td colspan="4"></td></tr>';
      }

      $iCounter = $iCounter + 1; 

    }//for
  }//else
SannyWMedlem sedan jan. 2003438 inlägg
#2

Vidare tankar.

Utvecklar frågeställningen något, vad är lämpligast. Att hämta allt en gång från databasen och sedan loopa ut innehållet via en array. Är det helt uppåt väggarna att lägga hämtningen i en funktion och sedan hämta ut värde från databasen på önskad plats med en öppning av databasen varje gång?

Eller finns det något sätt som helt enkelt inte har korsat min väg?

SannyWMedlem sedan jan. 2003438 inlägg
#3

Tror jag blir smått galen på detta med looparna. Om jag använder "echo" så får jag ut informationen som jag "vill" (hamnar dock fel på sidan), men med "return" så får jag bara ut första raden för ett visst datum.

Får inte ihop det när jag försöker skicka flera värde med funktionen som return.

Någon som har någon idé?

     
for ($i=0; $i<$num_result; $i++)
		{
     $row = mysql_fetch_array($result);
     {
       $action = $row['rubrik'];

       return $action;
     }
143 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
140 ms — hämta tråd, inlägg och bilagor (db)