Oprettet ons. d. 11. november 2009 kl. 10:04:40

diablo925
diablo925 (7.595 point. Point ude: 30)

kalender script

hej kloge hoveder ;D

jeg har fundet et kalender script som jeg har modet lidt

men det vil ikke som jeg vil

man skal nemlig indtaste hvornår man gå på ferie og kommer hjem igen

og så skal den så skrive ude for den given dag
ens navn
og ved den dato man kommer hjem skal den også skrive ens navn

har lavet en mysql hvor den gemmer dato i et DATE felt

mit mysql
$query = mysql_query("SELECT user FROM calendar WHERE startdate = '$year-$month-$day_num'") or die(mysql_error());
while($row = mysql_fetch_array($query))
    {   
    $user = $row["user"];
    }

siden side her http://intern.oticket.dk/ (...)

vil gode give en lille sum (100-200) kr for at få det til at virke

skriv lige hvis i vil have hele siden

Skrevet ons. d. 11. november 2009 kl. 10:21:22| #1

Umiddelbart kan man ikke - ud fra kildekoden som du har indsat her - se hvorfor scriptet ikke vil som du vil.
Det der er relevant er hvordan du skriver kalenderen ud og hvordan du henter oplysningerne for hver af datoerne, når du henter brugeren ud (selvom jeg godt kan regne ud at sidstnævnte er den snippet du har indsat her).

Det ville også være rart at se din struktur af tabellen calendar samt et par af de entries du har i tabellen.

Skrevet ons. d. 11. november 2009 kl. 11:49:10| #2

diablo925
diablo925 (7.595 point)
id      int(11)
user      varchar(255)
text      text
enddate      date
startdate      date


id     user       text     enddate     startdate
11     diablo925             2009-11-27     2009-11-11

Skrevet ons. d. 11. november 2009 kl. 11:52:09| #3

Jeg vil gerne se hvordan du laver din kalender.

Skrevet ons. d. 11. november 2009 kl. 13:56:23| #4

Christian_Belgien
Christian_Belgien (50.868 point)
diablo925, afholder du en gaette konkurrence eller har du et problem som du haaber paa en loesning paa? 

Hvis du har et problem saa ville det foroege chancen for et svar hvis du foerst forklarede hvad problemet er.  Hvad precies er det du vil opnaa og hvad sker der i stedet?

(1) Vil du have en kalender for medarbejder (eller bare dig selv) der viser dit navn for startdagen og slutdagen for ferie og intet for de mellemliggende dage?  Og faar du saa i stedet en kalender hvor dit navn vises for hver dag i ferieperioden?

(2) Eller vil du have en kalender hvor du opgiver startdato og slutdato og saa skal dit navn staa for hver dag i ferieperioden?  Og faar du saa i stedet en kalender der viser en forkert ferieperiode?  (Dit tabel eksempel viser ferie fra 11 til 27 november men kalenderen paa dit link fra 11 november og til slutningen af maaneden.)

(3)  Skal kalenderen bruges af adskillige mennesker og skal feltet for en dato saa liste alle navnene hvis der er flere paa ferie ad gangen?

Saa maa du forklare hvad du har gjort saa der er en chance for at finde hvad der skal aendres.  Din sql query tyder paa at du vil have dit navn paa kalenderen for hele ferieperioden, det vil sige hvis din query kaldes i en loekke for hver dag i kalenderperioden.  Det link du viser er for en udfyldt kalenderside.  Hvor er saa koden der udfylder og viser kalendersiden?

Og variablerne i din query hvor kommer de fra?

Endvidere, hvor er koden for hvordan du fylder dine datoer i databasen?

Kom frem med noejagtigt hvad problemet er (hvad du vil og hvad du faar) og hele koden, saa er der en chance at en loesning kan blive fundet.

Skrevet ons. d. 11. november 2009 kl. 14:06:27| #5

diablo925
diablo925 (7.595 point)
Christian_Belgien sorry for at jeg har svært ved at udtrykke mig sprogliget da jeg er ordblind

pt indtater jeg bare selv info ind i min database

og den skal bruges som du skriver i (1) til mit team

<?php
//This gets today's date
$date = time () ;

//This puts the day, month, and year in seperate variables
$day = date('d', $date) ;
$month1 = date('m', $date) ;
$year1 = date('Y', $date) ;
if($_GET["m"]) {
$month = $_GET["m"];
$year = $_GET["y"];
} else {
$month = date('m', $date) ;
$year = date('Y', $date) ;
}
//Here we generate the first day of the month
$first_day = mktime(0,0,0,$month, 1, $year) ;

//This gets us the month name
$title = date('F', $first_day) ;

//Here we find out what day of the week the first day of the month falls on
$day_of_week = date('D', $first_day) ;

//Once we know what day of the week it falls on, we know how many blank days occure before it. If the first day of the week is a Sunday then it would be zero
switch($day_of_week){
case "Sun": $blank = 0; break;
case "Mon": $blank = 1; break;
case "Tue": $blank = 2; break;
case "Wed": $blank = 3; break;
case "Thu": $blank = 4; break;
case "Fri": $blank = 5; break;
case "Sat": $blank = 6; break;
}

//We then determine how many days are in the current month
$days_in_month = cal_days_in_month(0, $month, $year) ;

// change month
if($month == 12){
    $next_month = 1;
    $next_year  = $year + 1;
}else{
    $next_month = $month + 1;
    $next_year  = $year;
}

if($month == 1){
    $prev_month = 12;
    $prev_year  = $year - 1;
}else{
    $prev_month = $month - 1;
    $prev_year  = $year;
}

//Here we start building the table heads
echo "<table border=1 width=100%>";
echo "<tr><th colspan=7> <center><a href=\"test.php?&m=$prev_month&&y=$prev_year\"><<</a> $title $year <a href=\"test.php?m=$next_month&&y=$next_year\">>></a></center></th></tr>";
echo "<tr><td width=60>$LANG_CALENDER_son</td><td width=60>$LANG_CALENDER_man</td><td width=60>$LANG_CALENDER_tir</td><td width=60>$LANG_CALENDER_ons</td><td width=60>$LANG_CALENDER_tor</td><td width=60>$LANG_CALENDER_fre</td><td width=60>$LANG_CALENDER_lor</td></tr>";

//This counts the days in the week, up to 7
$day_count = 1;

echo "<tr>";
//first we take care of those blank days
while ( $blank > 0 )
{
echo "<td></td>";
$blank = $blank-1;
$day_count++;
}
//sets the first day of the month to 1
$day_num = 1;

//count up the days, untill we've done all of them in the month
while ( $day_num <= $days_in_month )
{
    $query = mysql_query("SELECT user FROM calendar WHERE startdate = '$year-$month-$day_num'") or die(mysql_error());
while($row = mysql_fetch_array($query))
    {   
    $user = $row["user"];
    }   
echo"<td valign=top><a href=\"index.php?page=new&&funk=add&&dnew=$day_num&&mnew=$month&&ynew=$year\">$day_num</a><br />
$user</td>";
$day_num++;
$day_count++;
//Make sure we start a new row every week
if ($day_count > 7)
{
echo "</tr> <tr>";
$day_count = 1;
}
}
//Finaly we finish out the table with some blank details if needed
while ( $day_count >1 && $day_count <=7 )
{
echo "<td></td>";
$day_count++;
}

echo "</tr></table>";
?>

Skrevet ons. d. 11. november 2009 kl. 14:44:56| #6

Prøv at skifte dette ud:


$query = mysql_query("SELECT user FROM calendar WHERE startdate = '$year-$month-$day_num'") or die(mysql_error());
while($row = mysql_fetch_array($query))
    { 
    $user = $row["user"];
    } 
echo"<td valign=top><a href=\"index.php?page=new&&funk=add&&dnew=$day_num&&mnew=$month&&ynew=$year\">$day_num</a><br />
$user</td>";



med dette:




echo"<td valign=top><a href=\"index.php?page=new&&funk=add&&dnew=$day_num&&mnew=$month&&ynew=$year\">$day_num</a><br />";

$query = mysql_query("SELECT user FROM calendar WHERE startdate = '$year-$month-$day_num'") or die(mysql_error());
while($row = mysql_fetch_assoc($query))
  echo $row["user"]."<br />";

echo "</td>";


Skrevet ons. d. 11. november 2009 kl. 16:18:08| #7

diablo925
diablo925 (7.595 point)
det virker smid et svar og mange mange tak

Skrevet ons. d. 11. november 2009 kl. 17:16:51| #8

Christian_Belgien
Christian_Belgien (50.868 point)
Repox var hurtigst til at finde grunden til at brugernavnet blev repetered for resten af maaneden: $user faar i den gamle kode en vaerdi som den beholder for resten af maaneden med mendre der er en anden user der gaar paa ferie senere i maaneden.  Ved at aendre raekkefoelgen har han loest det.

Jeg er i gang med at laere mig selv php/mysql/css m.m. og jeg har funded det en saerdeles nyttig oevelse at proeve finde svarene til de spoergsmaal der kommer her paa eksperten, normalt ved hjaelp af meget Google og proeven sig frem.  Jeg observerer at diablo i sit oprindelige spoergsmaal ville se startdag og enddag for ferie for de forskellige users.  Jeg har derfor arbejdet videre, genbrugt repox's kode, tilfoejet en query for enddate, og tilfoejet "start" og "end".  Det bliver til nedenstaaende kode.

Jeg lavede en lille hjemmeside til at teste det med, http://christianjorgensen.be/ (...), som du er velkommen til at besoege (og som beviser at repox's kode virker,) og en lille tabel med det foelgende indhold:

id  user  text  enddate  startdate 
      1 user1 text1 2009-11-10 2009-11-01
      2 user2 text2 2009-11-20 2009-11-01
      3 user3 text3 2009-11-11 2009-11-10
      4 user4 text4 2009-11-30 2009-11-12
      5 user5 text5 2009-11-30 2009-11-05
      6 user6 text6 2009-11-29 2009-11-06

Jeg har saaledes soerget for at paa adskillige dage er der mere end en bruger.

Her er saa koden:

while ( $day_num <= $days_in_month )
  {
    echo"<td valign=top><a href=\"index.php?page=new&&funk=add&&dnew=$day_num&&mnew=$month&&ynew=$year\">$day_num</a><br />";
    $query = mysql_query("SELECT user FROM calendar WHERE startdate = '$year-$month-$day_num'") or die(mysql_error());
    while($row = mysql_fetch_assoc($query))  echo $row["user"]." start<br />";
    $query = mysql_query("SELECT user FROM calendar WHERE enddate = '$year-$month-$day_num'") or die(mysql_error());
    while($row = mysql_fetch_assoc($query))  echo $row["user"]." end<br />";

    while($row = mysql_fetch_array($query)) echo $row["user"] . " end<br/>";
    echo "</td>";
    $day_num++;
    $day_count++;
    //Make sure we start a new row every week
    if ($day_count > 7)
    {
      echo "</tr> <tr>";
      $day_count = 1;
    }
  }

Skrevet ons. d. 11. november 2009 kl. 17:28:49| #9


Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   


Seneste spørgsmål

DB-baseret dropdown viser selected post to gange...

Oprettet den 21. maj 2013 kl. 15.52
allandk giver 30 point for svar | Giv et svar »

Hente alle poster og gemme i variabel til senere echo

Oprettet den 20. maj 2013 kl. 21.49
allandk giver 30 point for svar | Giv et svar »

if med flere SELECT i Mysql

Oprettet den 19. maj 2013 kl. 15.08
artico giver 100 point for svar | Giv et svar »








Tips & Tricks fra PC World

Teaser billede

Her er seks Google Labs-funktioner, som du skal slå til med det samme

Gmail Labs giver dig adgang til en masse smarte funktioner, som Googles ingeniører leger med i øjeblikket.


Anmeldelser fra PC World

Teaser billede

Test: Samsung Galaxy S4 er et hit - trods gøglertricks

Kan Samsung beholde førertrøjen i det store Android-race? Galaxy S4 er smækfyldt med innovative funktioner, men også med en del gøgl. Er det for meget? Få vores dom over Samsungs nye topmodel.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Tre smarte trick som gør Windows 8 bedre

Boot direkte til skrivebordet, få en strategisk godt placeret luk-knap og slip for at logge ind. Her er tre tips til Windows 8, som gør det nemmere at blive venner med styresystemet.


Nyheder fra Computerworld

Teaser billede

Kom med indenfor hos dansk overvågningstjeneste

Reportage: Følg med Computerworld ind i en verden af overvågning hos Center for Cybersikkerhed. Her kan du se, hvordan tjenestens analytikere arbejder med det værktøj, der til dagligt søger for at...


IT Kurser
Samarbejdspartnere

Udgiver · © 2013 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger