22. marts 2007 - 14:26
Der er
108 kommentarer og 1 løsning
kalender med MySql
Jeg ved det her spørgsmål er blevt stille 100 gange, men jeg kan alligevel ikke finde ud af det. Skal lave en kalender, der lister en måned ad gange, og skriver tekst ud på de dage hvor der er noget i DB'en. Hvad gør jeg herfra? <?php $day = date( "j", mktime(0, 0, 0, $m, 1, $y)); $days_in_month = date( "t", mktime(0, 0, 0, $m, 1, $y)); $tabel = $maned.''.$y; $hent_kalender = "SELECT * FROM $tabel WHERE sted='$kalender'"; aabn_forbindelse_og_vaelgdb(); $resultat_hent_kalender = mysql_query($hent_kalender); luk_forbindelse(); while($day <= $days_in_month){ ?> <tr> <td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2"><?php echo $day; ?></td> <td style="height:20px; width:322px;"class="border12 p6"> </td> </tr> <?php $day++; } ?> og så hvis der er noget tekst: <html> <tr> <td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="karamel border8 border7 p2"><?php echo $dag; ?></td> <td style="height:20px; width:322px; padding-top:2px; padding-right:6px; padding-bottom:2px; padding-left:6px;" align="left" valign="middle" class="karamel border7"><span class="p6"><?php echo $tekst; ?></span></td> </tr> </html>
Annonceindlæg fra Computerworld
22. marts 2007 - 16:35
#1
Okay... jeg ved at det er svært at få nogen til at svarer på kalender sprm. (hvorfor egt?) Men jeg kæmper videre og håber det bedste.... Nedenstående giver pote, men jeg er stadig langt fra mål (føles det). <?php $day = date( "j", mktime(0, 0, 0, $m, 1, $y)); $days_in_month = date( "t", mktime(0, 0, 0, $m, 1, $y)); $hent_kalender = "SELECT dato FROM $tabel WHERE sted='$kalender'"; aabn_forbindelse_og_vaelgdb(); $resultat_hent_kalender = mysql_query($hent_kalender); luk_forbindelse(); while($resultat_kalender = mysql_fetch_array($resultat_hent_kalender)) { $dato = $resultat_kalender["dato"]; $dag = date('j', $dato); $dagarray[] = $dag; } while($day <= $days_in_month){ if (in_array ($day, $dagarray)) { ?> <tr> <td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2">!!</td> <td style="height:20px; width:322px;"class="border12 p6"> </td> </tr> <?php }else{ ?> <tr> <td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2"><?php echo $day; ?></td> <td style="height:20px; width:322px;"class="border12 p6"> </td> </tr> <?php } $day++; } ?> Jeg har nedestående tabel i DB id | sted | dato | tekst | tekst2 | link | tilmeld og jeg skal have hevet sted, dato, tekst, tekst 2, link og tilmeld med ud, så de ligger i det samme array som dato'en (eller noget tilsvarende). GIver det mening?
22. marts 2007 - 16:59
#2
Nej, ovenstående virker åbenbart kun når der er mindst en række der passer til dagarray... ellers melder den fejl
22. marts 2007 - 17:57
#3
Måske jeg kan hjælpe med lidt principper :) Vi beslutter at vi vil starte med at vise den måned vi aktuelt er i, derfor skal vi vide hvor mange dage der er i denne måned --> $days=date("t"); Vi ved at vi skal starte med den første, så vi starter en løkke der 'kører' alle dagene i måneden igennem --> for($i=1; $i<=$days; $i++) { Inde i denne løkke skal vi så enten skrive indholdet fra databasen, hvis der er noget på den pågældende dag, eller skrive ingenting hvis der ikke er noget på den pågældende dag --> $q=mysql_query("SELECT tekst FROM tabel WHERE dato='".mktime(0, 0, 0, date("m"), $i, date("Y"))."'"); $r=mysql_fetch_assoc($q); echo "Dato : ".strftime("%A den %d. %B")." Indhold : "; if($r[tekst]!="") { echo $r[tekst]; } echo "<br>"; Så fik vi hele måneden ud....men vi vil jo gerne kunne bevæge os frem og tilbage i kalenderen - 1 måned af gangen. Så vi skal bruge en variabel som fortæller os hvilken måned vi skal vise. Denne putter vi i URL'en som en GET variabel og den aktuelle måned er 0. Når vi bevæger os frem ligger vi 1 til og når vi bevæger os tilbage trækker vi en 1 fra. Denne variabel kalder vi 'a'. mktime(0, 0, 0, date("m"), 1, date("Y")) giver os timestamp for den første i denne måned så --> mktime(0, 0, 0, date("m")+$_GET['a'], 1, date("Y")) må alt efter værdien af 'a' give os den første i den måned vi vil se. Her det heldigvis så snildt at hvis 'a' er f.eks. 14 så finder mktime selv ud af at året date("Y"), er anderledes så det behøver vi ikke spekulere på. Godt så....så vi starter med at 'hente' variablen 'a' fra URL'en. Den skal kun bestå af tal så det checker vi lige først. $a=0; if(isset($_GET['a'])) { if(preg_match("/^[0-9]+$/", $_GET['a'])) { $a=$_GET['a']; } } vi skal jo give mulighed for at trykke frem i kalederen og tilbage så vi laver lige de to links : $linkf="<a href='?a=".++$a."'>Frem</a><br>"; --$a; $linkt="<a href='?a=".--$a."'>Tilbage</a><br>"; ++$a; Så prøver vi at sætte det hele sammen --> Så har vi vist alle de elementer vi skal bruge --> Først hentes og checkes variablen 'a'. Så dannes frem og tilbage links. Så findes antal dage i den aktuelle måned --> $days=date("t", mktime(0, 0, 0, date("m")+$a, 1, date("Y"))); Så køre en løkke alle dagene igennem og nu dannes dato mærke sådan her --> mktime(0, 0, 0, date("m")+$a, $i, date("Y")); Hmmm...var det det...jeg kan ikke rigtigt overskue hvad jeg har skrevet her så nu sender jeg afsted, så må vi se :) Mvh. Johan
22. marts 2007 - 18:06
#4
Ja, okay nogenlunde...men hvis jeg nu prøver at strikke koden sammen her... $a=0; if(isset($_GET['a'])) { if(preg_match("/^[0-9]+$/", $_GET['a'])) { $a=$_GET['a']; }} $linkf="<a href='?a=".++$a."'>Frem</a><br>"; --$a; $linkt="<a href='?a=".--$a."'>Tilbage</a><br>"; ++$a; $output=$linkf.$linkt; $days=date("t", mktime(0, 0, 0, date("m")+$a, 1, date("Y"))); for($i=1; $i<=$days; $i++) { $day=mktime(0, 0, 0, date("m")+$a, $i, date("Y")); $q=mysql_query("SELECT tekst FROM tabel WHERE dato='".$day."'"); $r=mysql_fetch_assoc($q); $output.="Dato : ".strftime("%A den %d. %B", $day)." Indhold : "; if($r[tekst]!="") { $output.=$r[tekst]; } $output.="<br>"; } echo $output; Hmmm....gad vide om det så også rent faktisk virker i virkeligheden...det får jeg jo nok snart at vide :) Mvh. Johan
22. marts 2007 - 18:19
#5
He he....ja okay, jeg prøvede lige at teste, uden SQL delen, og da 'a' jo kan være negativ skal vi lige have minus stregen med i checket af 'a', og så sætter vi lige lidt danske gloser på dagene med setlocale() --> setlocale(LC_ALL, 'danish'); $a=0; if(isset($_GET['a'])) { if(preg_match("/^[0-9-]+$/", $_GET['a'])) { $a=$_GET['a']; }} $linkf="<a href='?a=".++$a."'>Frem</a><br>"; --$a; $linkt="<a href='?a=".--$a."'>Tilbage</a><br>"; ++$a; $output=$linkf.$linkt; $days=date("t", mktime(0, 0, 0, date("m")+$a, 1, date("Y"))); for($i=1; $i<=$days; $i++) { $day=mktime(0, 0, 0, date("m")+$a, $i, date("Y")); $q=mysql_query("SELECT tekst FROM tabel WHERE dato='".$day."'"); $r=mysql_fetch_assoc($q); $output.="Dato : ".strftime("%A den %d. %B", $day)." Indhold : "; if($r[tekst]!="") { $output.=$r[tekst]; } $output.="<br>"; } echo $output; I strftime bruger jeg %d til dagens nummer, det er blot fordi at hvis du tester på en windows platform mener jeg det er, så giver %e nemlig intet output, men %e er trods alt den bedste at bruge. Mvh. Johan
22. marts 2007 - 19:12
#6
Hej Johan.. skulle lige have noget at spise... Jeg har sådan set hele koden der genererer måneder "frem og tilbage".. mangler bare koden der sørger for at fylde ud med den data der er... Jeg kigger lige på det du har skrevet og vender tilbage.. Dejlgit at der endeligt er en der er med på lidt kalendersjov :0)
22. marts 2007 - 19:15
#7
Men jeg poster lige koden her for sjov skyld mens jeg kigger videre. $m = (isset($_GET['m']))?intval($_GET['m']):date('n'); $y = (isset($_GET['y']))?intval($_GET['y']):date('Y'); $day = date( "j", mktime(0, 0, 0, $m, 1, $y)); $days_in_month = date( "t", mktime(0, 0, 0, $m, 1, $y)); if($m < 0 && $y < 0){ $m = date('n'); $y = date('Y'); } $prevM = $m - 1; $nextM = $m + 1; $prevY = $y; $nextY = $y; if($prevM < 1){ $prevM = 12; $prevY = $y - 1; } if($nextM > 12){ $nextM = 1; $nextY = $y + 1; } $myTime = mktime(0, 0, 0, $m, 1, $y); $forrige = '<a href="?side='.$side.'&kalender='.$kalender.'&m='.$prevM.'&y='.$prevY.'"><img src="image/pil_h.gif" border="0"></a>'; $maned = strftime("%B",$myTime); $ar = " ".$y; $naeste = '<a href="?side='.$side.'&kalender='.$kalender.'&m='.$nextM.'&y='.$nextY.'"><img src="image/pil_v.gif" border="0"></a>';
22. marts 2007 - 19:18
#8
Forstår jeg rigtigt at du foreslår at hente i DB for hver dag der udskrives? $q=mysql_query("SELECT tekst FROM tabel WHERE dato='".$day."'");
22. marts 2007 - 19:30
#9
Ja, for hver dag checkes der om der er noget på den pågældende dag i databasen. Det er muligt at der skal checkes om der kommer en række ud af den query istedet for at checke om r[tekst] er tom eller 'fuld' Mvh. Johan
22. marts 2007 - 19:44
#10
Hm... okay, jeg tænkte bare at det var bedre at hente det hele ud af DB på en gang og så løbe igennem resultaterne.. Går det ikke hurtigere.. eller går det mon ud på et? Hvad tror du?
22. marts 2007 - 19:54
#11
Tja, det ved jeg ikke med sikkerhed. Altså der er jo nok ikke nogen tvivl om at det vil være hurtigere at lave en forespørgsel istedet for de ca. 30 ovenstående kræver, men om forskellen er mærkbar aner jeg ikke, men lad os da kigge på om vi kan nøjes med en forespørgsel :) Mvh. Johan
22. marts 2007 - 20:12
#12
Noget ala det her måske, jeg 'orker' ikke at lave en sql db og teste på, så det må du stå for :) setlocale(LC_ALL, 'danish'); $arr=array(); $a=0; if(isset($_GET['a'])) { if(preg_match("/^(-)?[0-9]+$/", $_GET['a'])) { $a=$_GET['a']; }} $linkf="<a href='?a=".++$a."'>Frem</a><br>"; --$a; $linkt="<a href='?a=".--$a."'>Tilbage</a><br>"; ++$a; $output=$linkf.$linkt; $days=date("t", mktime(0, 0, 0, date("m")+$a, 1, date("Y"))); $fday=mktime(0, 0, 0, date("m")+$a, 1, date("Y")); $lday=mktime(0, 0, 0, date("m")+$a, $days, date("Y")); $q=mysql_query("SELECT tekst, dato FROM tabel WHERE dato>='".$fday."' AND dato<='".$lday."'"); while($r=mysql_fetch_assoc($q)) { $arr[$r[dato]]=$r[tekst]; } for($i=1; $i<=$days; $i++) { $day=mktime(0, 0, 0, date("m")+$a, $i, date("Y")); $output.="Dato : ".strftime("%A den %d. %B", $day)." Indhold : "; if($arr[$day]!="") { $output.=$arr[$day]; } $output.="<br>"; } echo $output; Mvh. Johan
22. marts 2007 - 20:14
#13
Jaaaa... og det er jo det jeg ikke kan finde ud af :0)
22. marts 2007 - 20:19
#14
Øh, hvad er det du mener du ikke kan finde ud af ? Mvh. Johan
22. marts 2007 - 20:26
#15
Jeg kan finde ud af at tjekke om dagen er der.. men at få tekst og alt det andet med som jeg omtaler i starten af dette spørgsmål magter jeg ikke :0)
22. marts 2007 - 20:30
#16
Hvordan er strukturen i din tabel ? Vis evt. et dump fra myphpadmin. Mvh. Johan
22. marts 2007 - 20:45
#17
Fandt noget lidt højere oppe. Det ser ud som om du har en tabel for hver måned, det vil jeg ikke råde dig til istedet skal du blot have en tabel. I det følgende går jeg ud fra at du har en tabel med felterne id, sted, dato, tekst, tekst2, link, tilmeld. Tabellens navn kan du selv opdatere i koden, jeg har bare kaldt den tabel men kalender var måske mere rammende. setlocale(LC_ALL, 'danish'); $id=array(); $sted=array(); $tekst=array(); $tekst2=array(); $link=array(); $tilmeld=array(); $a=0; if(isset($_GET['a'])) { if(preg_match("/^(-)?[0-9]+$/", $_GET['a'])) { $a=$_GET['a']; }} $linkf="<a href='?a=".++$a."'>Frem</a><br>"; --$a; $linkt="<a href='?a=".--$a."'>Tilbage</a><br>"; ++$a; $output=$linkf.$linkt; $days=date("t", mktime(0, 0, 0, date("m")+$a, 1, date("Y"))); $fday=mktime(0, 0, 0, date("m")+$a, 1, date("Y")); $lday=mktime(0, 0, 0, date("m")+$a, $days, date("Y")); $q=mysql_query("SELECT * FROM tabel WHERE dato>='".$fday."' AND dato<='".$lday."'"); while($r=mysql_fetch_assoc($q)) { $id[$r[dato]]=$r[id]; $sted[$r[dato]]=$r[sted]; $tekst[$r[dato]]=$r[tekst]; $tekst2[$r[dato]]=$r[tekst2]; $link[$r[dato]]=$r[link]; $tilmeld[$r[dato]]=$r[tilmeld]; } for($i=1; $i<=$days; $i++) { $day=mktime(0, 0, 0, date("m")+$a, $i, date("Y")); $output.="Dato : ".strftime("%A den %d. %B", $day)." Indhold : "; if($id[$day]!="") { $output.="Id - ".$id[$day]." Sted - ".$sted[$day]." Tekst - ".$tekst[$day]." Tekst2 - ".$tekst2[$day]." Link - ".$link[$day]." Tilmeld - ".$tilmeld[$day]; } $output.="<br>"; } echo $output; Mvh. Johan
22. marts 2007 - 20:50
#18
Mit net gør knuder iaften.. måske jeg først får kigget ordetligt på det imorgen.. Håber at du fortsat lytter med så :0)
22. marts 2007 - 20:57
#19
Vi får se :) Mvh. Johan
22. marts 2007 - 22:44
#20
Så er det vist nok for i aften :), jeg endte foreøbig med dette. Det skulle gerne være således at du kan have flere 'aftaler' den samme dag. Tabellen er bygget op som nævnt ovenfor, men kun en tabel ! // --> Connect to mySQL <-- // $c=@mysql_connect('host','user','pass'); @mysql_select_db('db',$c); // --> Set dansk som sprog <-- // setlocale(LC_ALL, 'danish'); // --> Set variabler <-- // $dato=array(); $sted=array(); $tekst=array(); $tekst2=array(); $link=array(); $tilmeld=array(); $a=0; // --> Definer 'a' fra URL <-- // if(isset($_GET['a'])) { if(preg_match("/^(-)?[0-9]+$/", $_GET['a'])) { $a=$_GET['a']; }} // --> Lav frem og tilbage link <-- // $linkf="<a href='?a=".++$a."'>Frem</a><br>"; --$a; $linkt="<a href='?a=".--$a."'>Tilbage</a><br>"; ++$a; $output=$linkt.$linkf; // --> Definer antal dage i måneden og variabler til mySQL request <-- // $days=date("t", mktime(0, 0, 0, date("m")+$a, 1, date("Y"))); $fday=mktime(0, 0, 0, date("m")+$a, 1, date("Y")); $lday=mktime(0, 0, 0, date("m")+$a, $days, date("Y")); // --> Udfør en enkelt request og put resultatet i array's <-- // $q=mysql_query("SELECT * FROM tabel WHERE dato>='".$fday."' AND dato<='".$lday."'"); while($r=mysql_fetch_assoc($q)) { $dato[$r[id]]=$r[dato]; $sted[$r[id]]=$r[sted]; $tekst[$r[id]]=$r[tekst]; $tekst2[$r[id]]=$r[tekst2]; $link[$r[id]]=$r[link]; $tilmeld[$r[id]]=$r[tilmeld]; } // --> Løkke som køre alle dage i måneden igennem <-- // for($i=1; $i<=$days; $i++) { $day=mktime(0, 0, 0, date("m")+$a, $i, date("Y")); $output.=ucfirst(strftime("%a d. %d. %b", $day))."<br>"; $tmpa=array_keys($dato, $day); foreach($tmpa as $value) { $output.="Sted : ".$sted[$value]." Tekst : ".$tekst[$value]." Tekst2 : ".$tekst2[$value]." Link : ".$link[$value]." Tilmeld : ".$tilmeld[$value]."<br>"; } } // --> Sæt tilbage og frem links i bunden <-- // $output.=$linkt.$linkf; // --> Output html <-- // echo $output; Der kan så lægges en masse styles osv. på men det kan du muntre dig med :) Mvh. Johan
23. marts 2007 - 08:54
#21
Ser overordentligt lækkert ud Johan, men jeg er ikke pt. interesseret i at lave hele min kalender opbygning om. Det jeg mangler er at hente og udskrive.. Så de kodelinjer jeg skal have fat i må være noget i retningen af disse: $dato=array(); $sted=array(); $tekst=array(); $tekst2=array(); $link=array(); $tilmeld=array(); $q=mysql_query("SELECT * FROM tabel WHERE dato>='".$fday."' AND dato<='".$lday."'"); while($r=mysql_fetch_assoc($q)) { $dato[$r[id]]=$r[dato]; $sted[$r[id]]=$r[sted]; $tekst[$r[id]]=$r[tekst]; $tekst2[$r[id]]=$r[tekst2]; $link[$r[id]]=$r[link]; $tilmeld[$r[id]]=$r[tilmeld]; } for($i=1; $i<=$days; $i++) { $day=mktime(0, 0, 0, date("m")+$a, $i, date("Y")); $output.=ucfirst(strftime("%a d. %d. %b", $day))."<br>"; $tmpa=array_keys($dato, $day); foreach($tmpa as $value) { $output.="Sted : ".$sted[$value]." Tekst : ".$tekst[$value]." Tekst2 : ".$tekst2[$value]." Link : ".$link[$value]." Tilmeld : ".$tilmeld[$value]."<br>"; } } Og dem vil jeg så prøve at decifrere :0)
23. marts 2007 - 09:08
#22
Det er ikke meget jeg forstår af din kode :0( Kan du ikke prøve at tage udgangspunkt i min egen kode fra 22/03-2007 16:35:17 ? Kand et slet ikke bruges?
23. marts 2007 - 09:20
#23
Tittebøh :), så var jeg alligevel med på en lytter :) Jo, naturligvis kan vi tage udgangspunkt i din egen kode, jeg drønede jo bare derudaf med principper og så tog det nok lidt overhånd :).... Men nu skal jeg lige arbejde lidt også, så kigger jeg tilbage senere. Mvh. Johan
23. marts 2007 - 09:28
#24
:0)
23. marts 2007 - 10:47
#25
Hvis vi nu starter med at prøve at få et 'udtræk' fra databasen, som ligner det vi har brug for, så lader vi selve kalenderen ligge lidt. Først skal vi jo oprette forbindelsen til serveren og vælge vores database. Den del af det går jeg ud fra du har helt styr på :) Så går jeg ud fra, som du skriver at vi skal have fat i sted, dato, tekst, tekst 2, link og tilmeld, som vi så vil prøve at ligge i et eller flere array's. Jeg ved ikke hvilket navn du har givet din tabel, så jeg bruger bare 'tabel' herunder, men som tidligere nævnt bør du have en tabel som indeholder alle måneder, ikke en for hver måned !! Først en simpel query --> $q=mysql_query("SELECT * FROM tabel"); Så trækker vi rækkerne ud en efter en med en while() løkke --> while($r=mysql_fetch_assoc($q)) { Nu skal vi så have lagt informationerne i vores array's, men først skal vi have fundet en individuel 'nøgle' som kan identificere de forskellige værdier i vores array's. for($i=1; $i<=10; $i++) { $oArray[$i]="hej".$i; } Her fylder vi et array op med ti nøgle/værdi set. Nøglen er tal fra 1 til 10 og værdierne er "hej1" til "hej10". Sådan kunne vi fylde vores array's op men vi har jo allerede en unik nøgle fra databasen, nemlig id feltet i vores tabel. id feltet går jeg udfra at du har sat til "unik" og "auto-increment" i din tabel, hvis du ikke er med på hvad jeg mener her, bliver du nød til at vise din tabel struktur før vi kan arbejde videre :) Så nu prøver vi at se om ikke vi kan bruge id feltet til at identificere værdierne i vores array --> Tidligere lavede vi en while() løkke som trak rækker ud af vores query. Disse rækker hedder $r så id feltet fra vores tabel hedder således $r[id]. Så hvis vi vil lave et array der hedder dato, med dato værdierne og id som nøgle kan det se således ud --> $dato[$r[id]]=$r[dato]; Så foreløbig har vi dette --> // --> connect til server og database <-- // $q=mysql_query("SELECT * FROM tabel"); while($r=mysql_fetch_assoc($q)) { $dato[$r[id]]=$r[dato]; } Så nu ligger alle datoerne fra tabellen i vores array. Hvis der er to ens datoer vil de stadig ligge i array'et med to forskellige nøgler. Så hvis vi nu prøver at overføre dette princip til kalenderen, skal vi jo hver gang vi skriver en dato til kalenderen, checke om der er nogle datoer i vores array der svarer til den dato vi skriver. Det gør vi ved hjælp af php funktionen array_keys(). Denne funktion hjælper os med at søge vores array igennem efter en bestemt VÆRDI og så returnere de NØGLER som repræsentere værdierne. I det følgende leder vi efter NØGLER som referere til VÆRDIER som er idag --> $day=mktime(0, 0, 0, date("m"), date("d"), date("Y")); $tmpa=array(); $tmpa=array_keys($dato, $day); Så hvis der er nogle datoer i vores array som er idag, vil NØGLERNE til disse værdier nu ligge i array'et $tmpa. Så hvis vi skal have fat i de værdier vi søger efter skal vi altså kigge $tmpa igennem og bruge værdierne herfra som nøgler i vores oprindelige $dato array.....er du med ? :) --> foreach($tmpa as $value) { echo "Her er en dato : ".$dato[$value]."<br>"; } Men det giver os jo ikke alle de informationer vi vil have. Vi vil jo også have tekst og tekst2 og link osv. Princippet er så at vi laver et array for hver af de felter vi henter ud af databasen. --> $dato=array(); $sted=array(); $tekst=array(); $tekst2=array(); $link=array(); $tilmeld=array(); og når vi så, som vi gjorde ovenover, finder nøglerne til den dato vi er ved at skrive, så kan vi via disse nøgler hente alle de værdier fra vores tabel som hænger sammen med den aktuelle dato --> $dato[$value] indeholder datoen, $sted[$value] indeholder stedet, $tekst[$value] indeholder tekst osv. osv. Øhh..nu tror jeg bare at jeg tonsede på igen...ufatteligt..gav det mening ? Jeg trykker send, så må jeg forsøge at samle op efterfølgende.
23. marts 2007 - 10:54
#26
Puha, før jeg fylder mere på her, må jeg hellere vente på et livstegn fra dig. Giver det nogen mening ? Mvh. Johan
23. marts 2007 - 13:05
#27
Ja, det giver mening.. men har ikke fået prøvet det af endnu fordi jeg er inde i en eller anden forbandet internetstorm..Prøver det af nu. Lige en ting - Hvorfor mener du det er bedre at lægge kalenderen i EN tabel?
23. marts 2007 - 13:14
#28
Men der er lige en ting til. Før med: <?php $day = date( "j", mktime(0, 0, 0, $m, 1, $y)); $days_in_month = date( "t", mktime(0, 0, 0, $m, 1, $y)); $tabel = $maned.''.$y; $hent_kalender = "SELECT * FROM $tabel WHERE sted='$kalender'"; aabn_forbindelse_og_vaelgdb(); $resultat_hent_kalender = mysql_query($hent_kalender); luk_forbindelse(); while($day <= $days_in_month){ ?> <tr> <td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2"><?php echo $day; ?></td> <td style="height:20px; width:322px;"class="border12 p6"> </td> </tr> <?php $day++; } ?> ... genererede jeg jo alle dage i en måned.. Med din kode skriver den vel kun hvis der er noget i tabelen?
23. marts 2007 - 16:08
#29
'Koden' jeg postede i formiddags, levere ganske rigtigt kun output når der står noget i databasen, men det er jo også blot en beskrivelse af et del element af den tidligere kode som leverede output for alle dage i måneden. Det er denne løkke der kører ligeså mange gange som der er dage i måneden --> for($i=1; $i<=$days; $i++) { $day=mktime(0, 0, 0, date("m")+$a, $i, date("Y")); $output.=ucfirst(strftime("%a d. %d. %b", $day))."<br>"; Her skrives datoen ud uanset om der er indhold i databasen eller ej. Mht. én tabel mod en for hver måned....tja, hvorfor ikke ?, flere tabeller gør blot søgningen og antallet af variabler mere kompliseret og større. Søgningen der laves i tabellen er jo ikke specielt kompliseret eller omfattende, så uanset (næsten) hvor meget data du putter i tabellen vil søgningen kunne foretages lynhurtigt, og så vidt jeg har forstået endnu hurtigere ved at indeksere tabellen på dato feltet. Skulle det senere vise sig at du f.eks. vil tilføje et ekstra felt, eller ændre noget ved de eksisterende felter er det langt nemmere at implementere en sådan ændring, hvis du 'kun' har en tabel til forskel fra f.eks. 12. Så enkelhed, brugbarhed, hastighed og fleksibilitet taler enten for, eller i værste fald udgør det ingen forskel, at du kun bør have en tabel. Mvh. Johan
23. marts 2007 - 16:17
#30
Okay.. du har overbevist mig om en tabel :0) (jeg er så nem) Men jeg skal lige prøve at få hoved og hale på det hele...
23. marts 2007 - 16:30
#31
Så det kunne se sådan her ud? $days=date("t", mktime(0, 0, 0, date("m")+$a, 1, date("Y"))); $fday=mktime(0, 0, 0, date("m")+$a, 1, date("Y")); $lday=mktime(0, 0, 0, date("m")+$a, $days, date("Y")); <?php aabn_forbindelse_og_vaelgdb(); $q=mysql_query("SELECT * FROM kalender WHERE dato>='".$fday."' AND dato<='".$lday."' AND sted='$kalender'"); luk_forbindelse(); while($r=mysql_fetch_assoc($q)) { $dato[$r[id]]=$r[dato]; $sted[$r[id]]=$r[sted]; } $tmpa=array(); $tmpa=array_keys($dato, $day);<?php for($i=1; $i<=$days; $i++) { $day=mktime(0, 0, 0, date("m")+$a, $i, date("Y")); foreach($tmpa as $value) { ?> <tr> <td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2"><?php $dato[$value]; ?></td> <td style="height:20px; width:322px;"class="border12 p6"><?php $tekst[$value]; ?></td> </tr> <?php } } ?>
23. marts 2007 - 16:35
#32
Næh.. åbenbart ikke...
23. marts 2007 - 16:55
#33
Behøver jeg at sige at jeg er forvirret :0) Jeg har dette, som sikkert af meget gode grunde ikke virker (jeg kan da i hvert fald se en variabel, som jeg ikke laver = $a): <?php $m = (isset($_GET['m']))?intval($_GET['m']):date('n'); $y = (isset($_GET['y']))?intval($_GET['y']):date('Y'); if($m < 0 && $y < 0){ $m = date('n'); $y = date('Y'); } $prevM = $m - 1; $nextM = $m + 1; $prevY = $y; $nextY = $y; if($prevM < 1){ $prevM = 12; $prevY = $y - 1; } if($nextM > 12){ $nextM = 1; $nextY = $y + 1; } $myTime = mktime(0, 0, 0, $m, 1, $y); $forrige = '<a href="?side='.$side.'&kalender='.$kalender.'&m='.$prevM.'&y='.$prevY.'"><img src="image/pil_h.gif" border="0"></a>'; $maned = strftime("%B",$myTime); $ar = " ".$y; $naeste = '<a href="?side='.$side.'&kalender='.$kalender.'&m='.$nextM.'&y='.$nextY.'"><img src="image/pil_v.gif" border="0"></a>'; $days=date("t", mktime(0, 0, 0, date("m")+$a, 1, date("Y"))); $fday=mktime(0, 0, 0, date("m")+$a, 1, date("Y")); $lday=mktime(0, 0, 0, date("m")+$a, $days, date("Y")); aabn_forbindelse_og_vaelgdb(); $q=mysql_query("SELECT * FROM kalender WHERE dato>='".$fday."' AND dato<='".$lday."' AND sted='$kalender'"); luk_forbindelse(); while($r=mysql_fetch_assoc($q)) { $dato[$r['id']]=$r['dato']; $sted[$r['id']]=$r['sted']; } ?> // --> Bla bla bla <-- // <html> <html> <td style="height:20px; width:20px; padding-top:2px;" align="right" valign="middle"><?php echo $forrige; ?></td> <td style="height:20px; width:117px;" align="center" valign="middle" class="p2"><?php echo ucfirst($maned); echo $ar; ?></td> <td style="height:20px; width:8px; padding-top:2px;" align="left" valign="middle"><?php echo $naeste ?></td> </html> // --> Bla bla bla <-- // <?php for($i=1; $i<=$days; $i++) { $day=mktime(0, 0, 0, date("m")+$a, $i, date("Y")); echo "<tr><td style=\"height:20px; width:26px; padding-right:4px;\" align=\"right\" valign=\"middle\" class=\"border11 p2\">".php echo strftime("%a d. %d. %b", $day)."</td>"; $tmpa=array_keys($dato, $day); foreach($tmpa as $value) { echo "<td style=\"height:20px; width:322px;\"class=\"border12 p6\">".$sted[$value]."</td></tr>"; } } ?>
23. marts 2007 - 21:03
#34
Oups, faldt lige max i søvn der...skulle bare lige have en lille en på øjet efter arbejde...og nu er klokken 21:00 :)...nåh ja, men så er man vel også udhvilet :). Jeg kigger lige på hvad du har skrevet når hjernen også står op :) Mvh. Johan
23. marts 2007 - 21:31
#35
Hm,du bliver nok nød til at forklare hvad du bruger de forskellige variabler i din url til --> <a href="?side='.$side.'&kalender='.$kalender.'&m='.$prevM.'&y='.$prevY.'"> Jeg er med på hvad 'm' og 'y' er, 'side' kunne jeg forestille mig bruges til noget include noget så det er også fint, men hvad er 'kalender' ? Du må også lige forklare mig noget om disse to linjer --> $q=mysql_query("SELECT * FROM kalender WHERE dato>='".$fday."' AND dato<='".$lday."' AND sted='$kalender'"); Hvorfor er 'sted' med i din query ? while($r=mysql_fetch_assoc($q)) { $dato[$r['id']]=$r['dato']; $sted[$r['id']]=$r['sted']; Du trækker kun 'dato' og 'sted' ud af tabellen, men stedet kender du jo allerede fra din query, og 'dato' giver jo ingen mening hvis ikke du trækker flere informationer ud ? Mvh. Johan
24. marts 2007 - 12:12
#36
Kalenderen viser både for København og Århus, som man kan skifte ml. visningen af. $kalender indeholder byens navn. Derfor er sted med i min query. Men hvorfor jeg har puttet sted ind i min while() kan jeg ved gud ikke svare dig på :0) Momentan nedsmeltning måske?
24. marts 2007 - 12:14
#37
$sted[$r['id']]=$r['sted']; skulle selvf. havde været $tekst[$r['id']]=$r['tekst'];
24. marts 2007 - 15:03
#38
Så fik jeg kigget lidt på din kode, og det ser ikke ud som om der er langt endnu :) Hvad sker der hvis du prøver med følgende : <?php $m = (isset($_GET['m']))?intval($_GET['m']):date('n'); $y = (isset($_GET['y']))?intval($_GET['y']):date('Y'); if($m < 0 && $y < 0){ $m = date('n'); $y = date('Y'); } $prevM = $m - 1; $nextM = $m + 1; $prevY = $y; $nextY = $y; if($prevM < 1){ $prevM = 12; $prevY = $y - 1; } if($nextM > 12){ $nextM = 1; $nextY = $y + 1; } $myTime = mktime(0, 0, 0, $m, 1, $y); $forrige = '<a href="?side='.$side.'&kalender='.$kalender.'&m='.$prevM.'&y='.$prevY.'"><img src="image/pil_h.gif" border="0"></a>'; $maned = strftime("%B",$myTime); $ar = " ".$y; $naeste = '<a href="?side='.$side.'&kalender='.$kalender.'&m='.$nextM.'&y='.$nextY.'"><img src="image/pil_v.gif" border="0"></a>'; $days=date("t", mktime(0, 0, 0, $m, 1, $y)); $fday=mktime(0, 0, 0, $m, 1, $y); $lday=mktime(0, 0, 0, $m, $days, $y); aabn_forbindelse_og_vaelgdb(); $q=mysql_query("SELECT * FROM kalender WHERE dato>='".$fday."' AND dato<='".$lday."' AND sted='$kalender'"); luk_forbindelse(); $dato=array(); $tekst=array(); while($r=mysql_fetch_assoc($q)) { $dato[$r['id']]=$r['dato']; $tekst[$r['id']]=$r['tekst']; } ?> // --> Bla bla bla <-- // <html> <body> <table> <tr> <td style="height:20px; width:20px; padding-top:2px;" align="right" valign="middle"><?php echo $forrige; ?></td> <td style="height:20px; width:117px;" align="center" valign="middle" class="p2"><?php echo ucfirst($maned).$ar; ?></td> <td style="height:20px; width:8px; padding-top:2px;" align="left" valign="middle"><?php echo $naeste ?></td> </tr> // --> Bla bla bla <-- // <?php for($i=1; $i<=$days; $i++) { $day=mktime(0, 0, 0, $m, $i, $y); echo "<tr><td style=\"height:20px; width:26px; padding-right:4px;\" align=\"right\" valign=\"middle\" class=\"border11 p2\">".strftime("%a d. %d. %b", $day)."</td><td style=\"height:20px; width:322px;\"class=\"border12 p6\">"; $tmpa=array_keys($dato, $day); foreach($tmpa as $value) { echo $tekst[$value]; } echo "</td></tr> } ?> </table> </body> </html> Mvh. Johan
24. marts 2007 - 15:05
#39
Ouw, du mangler lige at 'trække' $kalender ind fra URL'en, så tilføj denne linje f.eks. i starten --> $kalender=$_GET['kalender']; Der skal naturligvis checkes lidt på nogle værdier før du kan bruge det i virkeligheden, men nu skal vi bare lige have funktioneliteten på plads. Mvh. Johan
24. marts 2007 - 16:01
#40
Venter lige på at kunne komme på med FTP... så er jeg klar til at teste koden :0)
24. marts 2007 - 16:29
#41
Jamen det virker jo :0)
24. marts 2007 - 16:52
#42
Nu skal jeg så bare have puttet $tekst2[$r['id']]=$r['tekst2']; $link[$r['id']]=$r['link']; $tilmeld[$r['id']]=$r['tilmeld']; ind også. Til det har jeg før brugt if() sætninger. Se nedestående: Hvis der ikke var nogen tekst: <html> <tr> <td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2"><?php echo $dag; ?></td> <td style="height:20px; width:33px;" class="border12 p6"> </td> </tr> </html> og ellers: <tr> <td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="karamel border8 border7 p2"><?php echo $dag; ?></td> <td style="height:20px; width:322px; padding-top:2px; padding-right:6px; padding-bottom:2px; padding-left:6px;" align="left" valign="middle" class="karamel border7"> <?php if(!$link){ if(!$tekst2){ if($tilmeld == 'ja'){ echo "<table style=\"width:322px;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr>"; echo "<td style=\"width:262px;\" class=\"p6\" align=\"left\" valign=\"middle\">".$tekst."</td>"; echo "<td style=\"width:60px;\" align=\"right\" valign=\"middle\"><a href=\"?side=kontakt&overskrift=Tilmeld ".$tekst."\" class=\"a5\">Tilmeld</a></td></tr></table>"; }else{ echo "<span class=\"p6\">".$tekst."</span>"; } } if($tekst2){ if($tilmeld == 'ja'){ echo "<table style=\"width:322px;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr>"; echo "<td style=\"width:262px;\" class=\"p6\" align=\"left\" valign=\"middle\">".$tekst."</br>".$tekst2."</td>"; echo "<td style=\"width:60px;\" align=\"right\" valign=\"middle\"><a href=\"?side=kontakt&overskrift=Tilmeld ".$tekst."\" class=\"a5\">Tilmeld</a></td></tr></table>"; }else echo "<span class=\"p6\">".$tekst."</br>".$tekst2."</span>"; } } } if($link){ if(!$tekst2){ if($tilmeld == 'ja'){ echo "<table style=\"width:322px;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr>"; echo "<td style=\"width:262px;\" align=\"left\" valign=\"middle\"><a href=\"".$link."\" class=\"a5\">".$tekst."</a>"; echo "<td style=\"width:60px;\" align=\"right\" valign=\"middle\"><a href=\"?side=kontakt&overskrift=Tilmeld ".$tekst."\" class=\"a5\">Tilmeld</a></td></tr></table>"; }else{ echo "<a href=\"".$link."\" class=\"a5\">".$tekst."</a>"; } } if($tekst2){ if($tilmeld == 'ja'){ echo "<table style=\"width:322px;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr>"; echo "<td style=\"width:262px;\" align=\"left\" valign=\"middle\"><a href=\"".$link."\" class=\"a5\">".$tekst."</br>".$tekst2."</a>"; echo "<td style=\"width:60px;\" align=\"right\" valign=\"middle\"><a href=\"?side=kontakt&overskrift=Tilmeld ".$tekst."\" class=\"a5\">Tilmeld</a></td></tr></table>"; }else{ echo "<a href=\"".$link."\" class=\"a5\">".$tekst."</br>".$tekst2."</a>"; } } } ?> </td> </tr> <?php } Jeg kan ikke lige finde ud af hvordan (om muligt) jeg kombinerer if() og foreach() ??
24. marts 2007 - 16:57
#43
Ja $dag er jo så lavet til $day nu....
24. marts 2007 - 17:40
#44
For det her giver ikke et godt resultat :0) <tr> <td style="width:365px;" align="left" valign="top"> <table style="height:20px; width:365px;" border="0" cellpadding="0" cellspacing="0"> <?php for($i=1; $i<=$days; $i++) { $day=mktime(0, 0, 0, $m, $i, $y); $day=date('j', $day); echo "<tr><td style=\"height:20px; width:26px; padding-right:4px;\" align=\"right\" valign=\"middle\" class=\"border11 p2\">".date('j', $day)."</td>"; $tmpa=array_keys($dato, $day); foreach($tmpa as $value) { echo "<td style=\"height:20px; width:322px; padding-top:2px; padding-right:6px; padding-bottom:2px; padding-left:6px;\" align=\"left\" valign=\"middle\" class=\"karamel border7\">"; if(!$$link[$value]){ if(!$$tekst2[$value]){ if($tilmeld[$value] == 'ja'){ echo "<table style=\"width:322px;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr>"; echo "<td style=\"width:262px;\" class=\"p6\" align=\"left\" valign=\"middle\">".$tekst[$value]."</td>"; echo "<td style=\"width:60px;\" align=\"right\" valign=\"middle\"><a href=\"?side=kontakt&overskrift=Tilmeld ".$tekst[$value]."\" class=\"a5\">Tilmeld</a></td></tr></table>"; }else{ echo "<span class=\"p6\">".$tekst[$value]."</span>"; } } if($$tekst2[$value]){ if($tilmeld[$value] == 'ja'){ echo "<table style=\"width:322px;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr>"; echo "<td style=\"width:262px;\" class=\"p6\" align=\"left\" valign=\"middle\">".$tekst[$value]."</br>".$tekst2[$value]."</td>"; echo "<td style=\"width:60px;\" align=\"right\" valign=\"middle\"><a href=\"?side=kontakt&overskrift=Tilmeld ".$tekst[$value]."\" class=\"a5\">Tilmeld</a></td></tr></table>"; }else echo "<span class=\"p6\">".$tekst[$value]."</br>".$tekst2[$value]."</span>"; } } } if($$link[$value]){ if(!$tekst2){ if($tilmeld[$value] == 'ja'){ echo "<table style=\"width:322px;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr>"; echo "<td style=\"width:262px;\" align=\"left\" valign=\"middle\"><a href=\"".$link[$value]."\" class=\"a5\">".$tekst[$value]."</a>"; echo "<td style=\"width:60px;\" align=\"right\" valign=\"middle\"><a href=\"?side=kontakt&overskrift=Tilmeld ".$tekst[$value]."\" class=\"a5\">Tilmeld</a></td></tr></table>"; }else{ echo "<a href=\"".$link[$value]."\" class=\"a5\">".$tekst[$value]."</a>"; } } if($$tekst2[$value]){ if($tilmeld[$value] == 'ja'){ echo "<table style=\"width:322px;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr>"; echo "<td style=\"width:262px;\" align=\"left\" valign=\"middle\"><a href=\"".$link[$value]."\" class=\"a5\">".$tekst[$value]."</br>".$tekst2[$value]."</a>"; echo "<td style=\"width:60px;\" align=\"right\" valign=\"middle\"><a href=\"?side=kontakt&overskrift=Tilmeld ".$tekst[$value]."\" class=\"a5\">Tilmeld</a></td></tr></table>"; }else{ echo "<a href=\"".$link[$value]."\" class=\"a5\">".$tekst[$value]."</br>".$tekst2[$value]."</a>"; } } } } echo "</td></tr>"; } ?> </table> </td> </tr>
24. marts 2007 - 20:05
#45
Dvs den udskriver selvf. men tager ikke højde for if() sætningerne.
24. marts 2007 - 20:10
#46
Jeg sidder lige og arbejder på sagen :), vender tilbage.... Mvh. Johan
24. marts 2007 - 20:15
#47
Jeg kan da se at jeg har lavet dobbelt $ nogle steder...
24. marts 2007 - 20:21
#48
Hvis jeg ikke kan se andet så kan jeg da se det :0)
24. marts 2007 - 20:43
#49
Hm, prøv det her... <?php $kalender=$_GET['kalender']; $m = (isset($_GET['m']))?intval($_GET['m']):date('n'); $y = (isset($_GET['y']))?intval($_GET['y']):date('Y'); if($m < 0 && $y < 0){ $m = date('n'); $y = date('Y'); } $prevM = $m - 1; $nextM = $m + 1; $prevY = $y; $nextY = $y; if($prevM < 1){ $prevM = 12; $prevY = $y - 1; } if($nextM > 12){ $nextM = 1; $nextY = $y + 1; } $myTime = mktime(0, 0, 0, $m, 1, $y); $forrige = '<a href="?side='.$side.'&kalender='.$kalender.'&m='.$prevM.'&y='.$prevY.'"><img src="image/pil_h.gif" border="0"></a>'; $maned = strftime("%B",$myTime); $ar = " ".$y; $naeste = '<a href="?side='.$side.'&kalender='.$kalender.'&m='.$nextM.'&y='.$nextY.'"><img src="image/pil_v.gif" border="0"></a>'; $days=date("t", mktime(0, 0, 0, $m, 1, $y)); $fday=mktime(0, 0, 0, $m, 1, $y); $lday=mktime(0, 0, 0, $m, $days, $y); aabn_forbindelse_og_vaelgdb(); $q=mysql_query("SELECT * FROM kalender WHERE dato>='".$fday."' AND dato<='".$lday."' AND sted='$kalender'"); luk_forbindelse(); $dato=array(); $tekst=array(); while($r=mysql_fetch_assoc($q)) { $dato[$r['id']]=$r['dato']; $tekst[$r['id']]=$r['tekst']; $tekst2[$r['id']]=$r['tekst2']; $link[$r['id']]=$r['link']; $tilmeld[$r['id']]=$r['tilmeld']; } ?> // --> Bla bla bla <-- // <html> <body> <table> <tr> <td style="height:20px; width:20px; padding-top:2px;" align="right" valign="middle"><?php echo $forrige; ?></td> <td style="height:20px; width:117px;" align="center" valign="middle" class="p2"><?php echo ucfirst($maned).$ar; ?></td> <td style="height:20px; width:8px; padding-top:2px;" align="left" valign="middle"><?php echo $naeste ?></td> </tr> // --> Bla bla bla <-- // <?php for($i=1; $i<=$days; $i++) { $day=mktime(0, 0, 0, $m, $i, $y); echo "<tr><td style=\"height:20px; width:26px; padding-right:4px;\" align=\"right\" valign=\"middle\" class=\"border11 p2\">".strftime("%a d. %d. %b", $day)."</td><td style=\"height:20px; width:322px;\"class=\"border12 p6\">"; $tmpa=array_keys($dato, $day); foreach($tmpa as $value) { // --> Create day content <-- // $tx=$tekst[$value]; if($tx!="" && $tekst2[$value]!="") { $tx.="<br>"; } $tx.=$tekst2[$value]; if($link[$value]!="" && $tx!="") { $tx="<a href='".$link[$value]."'>".$tx."</a>"; } $tx="<td>".$tx."</td>"; $ti=""; if($tilmeld[$value]=="ja" && $tekst[$value]!="") { $ti="<a href='?side=kontakt&overskrift=Tilmeld_".$tekst[$value]."'>Tilmeld</a>"; } $ti="<td>".$ti."</td>"; $tt="<table> <tr> ".$tx." ".$ti." </tr> </table>"; echo $tt; // --> Day content finished <-- // } echo "</td></tr>"; } ?> </table> </body> </html> Lad høre resultatet. Mvh. Johan
24. marts 2007 - 20:45
#50
Jeg har fjernet en masse styles og andet 'lir' bare lige indtil vi har funktionaliteten på plads. Senere kan vi altid gøre det let og lækkert ;) Mvh. Johan
24. marts 2007 - 20:56
#51
Perfekt... Det virker som det skal du! Jeg kan selv sætte styles på igen.. det skulle vist ikke være noget problem :0)
24. marts 2007 - 21:28
#52
Det kan stadig 'forkortes' en del, men du sidder jo nok og arbejder med det, så jeg venter lige indtil du giver lyd igen. Læg forresten mærke til at jeg har tilføjet en _ til dit tilmeld link.... mellemrum gør sig ikke så godt i URL'er :) Mvh. Johan
25. marts 2007 - 20:04
#53
Har været på arb hele dagen idag... kigger på det imorge :0) Men tusinde tak for hjælpen so fare!
26. marts 2007 - 12:59
#54
Så fik jeg endelig tid til at kigge på det igen :0) Men det er SÅ komprimeret at jeg lige skal tænke mig godt og grundigt om for at "pakke det ud". Hvad er $tx. ? Jeg kan ikke se du sætter den ind nogle steder...
26. marts 2007 - 13:16
#55
Jeg har nu det her, som i browseren til forveksling ligner det jeg havde før. Sidste ting er bare at hvis $tilmed=="" skal td'en være width:322px, ellers width:262px <?php for($i=1; $i<=$days; $i++) { $day=mktime(0, 0, 0, $m, $i, $y); echo "<tr><td style=\"height:20px; width:26px; padding-right:4px;\" align=\"right\" valign=\"middle\" class=\"border11 p2\">".date('j', $day)."</td>"; $tmpa=array_keys($dato, $day); foreach($tmpa as $value) { $tx=$tekst[$value]; if($tx!="" && $tekst2[$value]!="") { $tx.="<br>"; } $tx.=$tekst2[$value]; if($link[$value]!="" && $tx!="") { $tx="<a href='".$link[$value]."' class=\"a5\">".$tx."</a>"; } $tx="<td style=\"width:262px;\" class=\"p6\" align=\"left\" valign=\"middle\">".$tx."</td>"; $ti=""; if($tilmeld[$value]=="ja" && $tekst[$value]!="") { $ti="<a href=\"?side=kontakt&overskrift=Tilmeld ".$tekst[$value]."\" class=\"a5\">Tilmeld</a>"; } $ti="<td style=\"width:60px;\" align=\"right\" valign=\"middle\">".$ti."</td>"; $tt="<table><tr>".$tx."".$ti."</tr></table>"; echo $tt; } echo "</td></tr>"; } ?>
26. marts 2007 - 13:16
#56
Først sættes $tx til værdien af tekst --> $tx=$tekst[$value]; Hvis der står noget i både tekst og tekst2 skal de adskilles med et linjeskift --> if($tx!="" && $tekst2[$value]!="") { $tx.="<br>"; } Så samles tekst med tekst2 --> $tx.=$tekst2[$value]; Hvis link og tekst+tekst2 er udfyldt skal tekst+tekst2 være et link --> if($link[$value]!="" && $tx!="") { $tx="<a href='".$link[$value]."'>".$tx."</a>"; } Så sættes tekst+tekst2+evt. link ind i en tabel celle (som du skal style)--> $tx="<td>".$tx."</td>"; $ti=""; Hvis tilmeld er 'ja' og tekst er udfyldt laves et 'tilmeld' link --> if($tilmeld[$value]=="ja" && $tekst[$value]!="") { $ti="<a href='?side=kontakt&overskrift=Tilmeld_".$tekst[$value]."'>Tilmeld</a>"; } Så puttes det ind i en tabel celle (som du skal style) --> $ti="<td>".$ti."</td>"; Så samles det hele i en tabel --> $tt="<table> <tr> ".$tx." ".$ti." </tr> </table>"; Som sendes til brugeren --> echo $tt; Er nok forklaring ? Mvh. Johan
26. marts 2007 - 13:18
#57
Ovenstående er det der foregår imellem // --> Create day content <-- // og // --> Day content finished <-- // Mvh. Johan
26. marts 2007 - 13:24
#58
ja, so fare so good... men eftersom jeg kun har en <td> at style på --> $tx="<td>".$tx."</td>"; kan jeg ikke se hvordan jeg kan gøre ovenstående (forskellige width)
26. marts 2007 - 13:25
#59
Men viste ikke man "bare" kunne klistre på den måde $tx.=$tekst2[$value]; Det forvirrede mig :0)
26. marts 2007 - 13:31
#60
Hvad med det her --> <?php for($i=1; $i<=$days; $i++) { $day=mktime(0, 0, 0, $m, $i, $y); echo "<tr><td style=\"height:20px; width:26px; padding-right:4px;\" align=\"right\" valign=\"middle\" class=\"border11 p2\">".date('j', $day)."</td>"; $tmpa=array_keys($dato, $day); foreach($tmpa as $value) { $ti=""; $tdwidth="322"; if($tilmeld[$value]=="ja" && $tekst[$value]!="") { $ti="<a href=\"?side=kontakt&overskrift=Tilmeld ".$tekst[$value]."\" class=\"a5\">Tilmeld</a>"; $tdwidth="262"; } $ti="<td style=\"width:60px;\" align=\"right\" valign=\"middle\">".$ti."</td>"; $tt="<table><tr>".$tx."".$ti."</tr></table>"; $tx=$tekst[$value]; if($tx!="" && $tekst2[$value]!="") { $tx.="<br>"; } $tx.=$tekst2[$value]; if($link[$value]!="" && $tx!="") { $tx="<a href='".$link[$value]."' class=\"a5\">".$tx."</a>"; } $tx="<td style=\"width:".$tdwidth."px;\" class=\"p6\" align=\"left\" valign=\"middle\">".$tx."</td>"; echo $tt; } echo "</td></tr>"; } ?> Mvh. Johan
26. marts 2007 - 13:33
#61
Arh, sådan her ... sorry... <?php for($i=1; $i<=$days; $i++) { $day=mktime(0, 0, 0, $m, $i, $y); echo "<tr><td style=\"height:20px; width:26px; padding-right:4px;\" align=\"right\" valign=\"middle\" class=\"border11 p2\">".date('j', $day)."</td>"; $tmpa=array_keys($dato, $day); foreach($tmpa as $value) { $ti=""; $tdwidth="322"; if($tilmeld[$value]=="ja" && $tekst[$value]!="") { $ti="<a href=\"?side=kontakt&overskrift=Tilmeld ".$tekst[$value]."\" class=\"a5\">Tilmeld</a>"; $tdwidth="262"; } $ti="<td style=\"width:60px;\" align=\"right\" valign=\"middle\">".$ti."</td>"; $tx=$tekst[$value]; if($tx!="" && $tekst2[$value]!="") { $tx.="<br>"; } $tx.=$tekst2[$value]; if($link[$value]!="" && $tx!="") { $tx="<a href='".$link[$value]."' class=\"a5\">".$tx."</a>"; } $tx="<td style=\"width:".$tdwidth."px;\" class=\"p6\" align=\"left\" valign=\"middle\">".$tx."</td>"; $tt="<table><tr>".$tx."".$ti."</tr></table>"; echo $tt; } echo "</td></tr>"; } ?>
26. marts 2007 - 13:43
#62
uhh. den kan ikke li det.. laver ged i tabelle..
26. marts 2007 - 13:46
#63
Også med den sidste rettelse ? Mvh. Johan
26. marts 2007 - 13:48
#64
jeps...
26. marts 2007 - 13:58
#65
Jeg bliver nød til at se noget output så. Lav en 'vis kilde' i din browser og vis outputtet her. Mvh. Johan
26. marts 2007 - 13:59
#66
Du kan selvfølgelig også prøve at beskrive hvad 'ged i tabellen' betyder :) Mvh. Johan
26. marts 2007 - 14:10
#67
Ja sorry.. jeg sidder på verdens langsomste netforbindelse lige nu (pain)... Kilden er for lang at poste her.. men kalenderen starter godt nok.. Efter d.5 begynder der at lave rod i hele sidens layout.. det er selvf. lidt svært at forklare... VIl du have koden alligevel?
26. marts 2007 - 14:12
#68
Det er lækkert.. ser sådan her ud :0) <tr> <td style="width:365px;" align="left" valign="top"> <table style="height:20px; width:365px;" border="0" cellpadding="0" cellspacing="0"> <tr><td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2">1</td></td></tr><tr><td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2">2</td></td></tr><tr><td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2">3</td><table><tr><td style="width:322px;" class="p6" align="left" valign="middle">På messe i Kb-hallen. Mød os på stand nr. 82.</td><td style="width:60px;" align="right" valign="middle"></td></tr></table></td></tr><tr><td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2">4</td><table><tr><td style="width:322px;" class="p6" align="left" valign="middle">På messe i Kb-hallen. Mød os på stand nr. 82.</td><td style="width:60px;" align="right" valign="middle"></td></tr></table></td></tr><tr><td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2">5</td><table><tr><td style="width:322px;" class="p6" align="left" valign="middle">På messe i Kb-hallen. Mød os på stand nr. 82.</td><td style="width:60px;" align="right" valign="middle"></td></tr></table></td></tr><tr><td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2">6</td></td></tr><tr><td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2">7</td><table><tr><td style="width:262px;" class="p6" align="left" valign="middle"><a href='?side=kurser&kurser=taften' class="a5">Træningsaften<br>Kom og træn dine psykiske evner</a></td><td style="width:60px;" align="right" valign="middle"><a href="?side=kontakt&overskrift=Tilmeld Træningsaften" class="a5">Tilmeld</a></td></tr></table></td></tr><tr><td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2">8</td><table><tr><td style="width:322px;" class="p6" align="left" valign="middle"><a href='?side=aktiviteter' class="a5">Platforms Clairvoyance</a></td><td style="width:60px;" align="right" valign="middle"></td></tr></table></td></tr><tr><td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2">9</td><table><tr><td style="width:322px;" class="p6" align="left" valign="middle"><a href='?side=kurser&kurser=magiensverden' class="a5">Magiens Verden 6</a></td><td style="width:60px;" align="right" valign="middle"></td></tr></table></td></tr><tr><td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2">10</td></td></tr><tr><td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2">11</td><table><tr><td style="width:322px;" class="p6" align="left" valign="middle">Clairvoyance Skole </td><td style="width:60px;" align="right" valign="middle"></td></tr></table></td></tr><tr><td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2">12</td><table><tr><td style="width:322px;" class="p6" align="left" valign="middle">Clairvoyance Skole </td><td style="width:60px;" align="right" valign="middle"></td></tr></table></td></tr><tr><td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2">13</td><table><tr><td style="width:262px;" class="p6" align="left" valign="middle">Gratis healing af skolens elever</td><td style="width:60px;" align="right" valign="middle"><a href="?side=kontakt&overskrift=Tilmeld Gratis healing af skolens elever" class="a5">Tilmeld</a></td></tr></table></td></tr><tr><td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2">14</td><table><tr><td style="width:262px;" class="p6" align="left" valign="middle"><a href='?side=kurser&kurser=taften' class="a5">Træningsaften<br>Kom og træn dine psykiske evner</a></td><td style="width:60px;" align="right" valign="middle"><a href="?side=kontakt&overskrift=Tilmeld Træningsaften" class="a5">Tilmeld</a></td></tr></table></td></tr><tr><td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2">15</td><table><tr><td style="width:322px;" class="p6" align="left" valign="middle"><a href='?side=aktiviteter&aktiviteter=kobenhavn' class="a5">Foredrag v/ Robby Curdorf.<br>"En besøgende fra et ikke fysisk univers".</a></td><td style="width:60px;" align="right" valign="middle"></td></tr></table></td></tr><tr><td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2">16</td><table><tr><td style="width:322px;" class="p6" align="left" valign="middle">Kom og træn afdødekontakt<br>v/ Véronique Thygesen tlf. 26802155 </td><td style="width:60px;" align="right" valign="middle"></td></tr></table></td></tr><tr><td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2">17</td><table><tr><td style="width:322px;" class="p6" align="left" valign="middle"></td><td style="width:60px;" align="right" valign="middle"></td></tr></table></td></tr><tr><td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2">18</td><table><tr><td style="width:322px;" class="p6" align="left" valign="middle">Healer Skole</td><td style="width:60px;" align="right" valign="middle"></td></tr></table></td></tr><tr><td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2">19</td><table><tr><td style="width:322px;" class="p6" align="left" valign="middle">Healer Skole</td><td style="width:60px;" align="right" valign="middle"></td></tr></table></td></tr><tr><td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2">20</td></td></tr><tr><td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2">21</td><table><tr><td style="width:262px;" class="p6" align="left" valign="middle"><a href='?side=kurser&kurser=taften' class="a5">Træningsaften<br>Kom og træn dine psykiske evner</a></td><td style="width:60px;" align="right" valign="middle"><a href="?side=kontakt&overskrift=Tilmeld Træningsaften" class="a5">Tilmeld</a></td></tr></table></td></tr><tr><td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2">22</td></td></tr><tr><td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2">23</td><table><tr><td style="width:322px;" class="p6" align="left" valign="middle">Kurusstart: Spirituelt Udviklingsforløb.</td><td style="width:60px;" align="right" valign="middle"></td></tr></table></td></tr><tr><td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2">24</td></td></tr><tr><td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2">25</td><table><tr><td style="width:322px;" class="p6" align="left" valign="middle">Clairvoyance Skole</td><td style="width:60px;" align="right" valign="middle"></td></tr></table></td></tr><tr><td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2">26</td><table><tr><td style="width:322px;" class="p6" align="left" valign="middle">Clairvoyance Skole</td><td style="width:60px;" align="right" valign="middle"></td></tr></table></td></tr><tr><td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2">27</td><table><tr><td style="width:262px;" class="p6" align="left" valign="middle">Gratis healing af skolens elever </td><td style="width:60px;" align="right" valign="middle"><a href="?side=kontakt&overskrift=Tilmeld Gratis healing af skolens elever " class="a5">Tilmeld</a></td></tr></table></td></tr><tr><td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2">28</td><table><tr><td style="width:262px;" class="p6" align="left" valign="middle"><a href='?side=kurser&kurser=taften' class="a5">Træningsaften<br>Kom og træn dine psykiske evner</a></td><td style="width:60px;" align="right" valign="middle"><a href="?side=kontakt&overskrift=Tilmeld Træningsaften" class="a5">Tilmeld</a></td></tr></table></td></tr><tr><td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2">29</td><table><tr><td style="width:322px;" class="p6" align="left" valign="middle">Kom og træn afdødekontakt<br>v/ Véronique Thygesen. Tlf. 26802155 </td><td style="width:60px;" align="right" valign="middle"></td></tr></table></td></tr><tr><td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2">30</td><table><tr><td style="width:322px;" class="p6" align="left" valign="middle">Spirituelt Udviklingsforløb 2</td><td style="width:60px;" align="right" valign="middle"></td></tr></table></td></tr> </table> </td> </tr>
26. marts 2007 - 14:14
#69
Et lille udsnit :0) </tr> <tr> <td style="width:365px;" align="left" valign="top"> <table style="height:20px; width:365px;" border="0" cellpadding="0" cellspacing="0"> <tr> <td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2">1</td></td> </tr> <tr> <td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2">2</td></td> </tr> <tr> <td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2">3</td> <table> <tr> <td style="width:322px;" class="p6" align="left" valign="middle">På messe i Kb-hallen. Mød os på stand nr. 82.</td> <td style="width:60px;" align="right" valign="middle"></td> </tr> </table> </td> </tr> <tr> <td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2">4</td> <table> <tr> <td style="width:322px;" class="p6" align="left" valign="middle">På messe i Kb-hallen. Mød os på stand nr. 82.</td> <td style="width:60px;" align="right" valign="middle"></td> </tr> </table> </td> </tr> <tr> <td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2">5</td> <table><tr><td style="width:322px;" class="p6" align="left" valign="middle">På messe i Kb-hallen. Mød os på stand nr. 82.</td> <td style="width:60px;" align="right" valign="middle"></td> </tr> </table> </td></tr> <tr> <td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2">6</td> </td> </tr> <tr> <td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2">7</td> <table> <tr> <td style="width:262px;" class="p6" align="left" valign="middle"><a href='?side=kurser&kurser=taften' class="a5">Træningsaften<br>Kom og træn dine psykiske evner</a></td> <td style="width:60px;" align="right" valign="middle"><a href="?side=kontakt&overskrift=Tilmeld Træningsaften" class="a5">Tilmeld</a></td> </tr> </table> </td> </tr> <tr> <td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2">8</td> <table> <tr>
26. marts 2007 - 14:23
#70
Muligvis sådan her ? --> <?php for($i=1; $i<=$days; $i++) { $day=mktime(0, 0, 0, $m, $i, $y); echo "<tr><td style=\"height:20px; width:26px; padding-right:4px;\" align=\"right\" valign=\"middle\" class=\"border11 p2\">".date('j', $day)."</td><td>"; $tmpa=array_keys($dato, $day); foreach($tmpa as $value) { $ti=""; $tdwidth="322"; if($tilmeld[$value]=="ja" && $tekst[$value]!="") { $ti="<a href=\"?side=kontakt&overskrift=Tilmeld ".$tekst[$value]."\" class=\"a5\">Tilmeld</a>"; $tdwidth="262"; } $ti="<td style=\"width:60px;\" align=\"right\" valign=\"middle\">".$ti."</td>"; $tx=$tekst[$value]; if($tx!="" && $tekst2[$value]!="") { $tx.="<br>"; } $tx.=$tekst2[$value]; if($link[$value]!="" && $tx!="") { $tx="<a href='".$link[$value]."' class=\"a5\">".$tx."</a>"; } $tx="<td style=\"width:".$tdwidth."px;\" class=\"p6\" align=\"left\" valign=\"middle\">".$tx."</td>"; $tt="<table><tr>".$tx."".$ti."</tr></table>"; echo $tt; } echo "</td></tr>"; } ?> Mvh.Johan
26. marts 2007 - 14:27
#71
Ouw bliver nød til at smutte til tandlægen .... gulp... later dude ... Mvh. Johan
26. marts 2007 - 14:27
#72
Jeg tænker at -> echo "</td></tr>"; vel egt. skal være echo "</tr>"; både $ti og $tx er jo afsluttet....
26. marts 2007 - 14:29
#73
uhhh..... ;0)
26. marts 2007 - 15:01
#74
Jeg tror jeg har fundet fejlen.... $tt="<table><tr>".$tx."".$ti."</tr></table>"; bliver jo ikke sat ind i nogen <td>
26. marts 2007 - 15:06
#75
Okay.. der fik jeg lige et mental meltdown.. det var jo lige som det du var kommet frem til.. så er det jo fedt at jeg kan genopfinde den dybe tallerken :0) Nå Jonas.. jeg tror du har udstået dine 100 point... lægger du ikke et svar :0)
26. marts 2007 - 15:14
#76
Nul huller :), jo, jeg kan sagtens ligge et svar, men er du tilfreds med resultatet ? Som sagt så kan noget af det godt gøres lidt 'lettere'/'kortere'.... Mvh. Johan
26. marts 2007 - 15:53
#77
Nul huller plus :0) Jeg kan alligevel ikke få de styles lagt ordentligt på.... argh <?php for($i=1; $i<=$days; $i++) { $day=mktime(0, 0, 0, $m, $i, $y); echo "<tr><td style=\"height:20px; width:26px; padding-right:4px;\" align=\"right\" valign=\"middle\" class=\"border11 p2\">".date('j', $day)."</td>"; echo "<td style=\"height:20px; width:322px; padding-top:2px; padding-right:6px; padding-bottom:2px; padding-left:6px;\" align=\"left\" valign=\"middle\">"; $tmpa=array_keys($dato, $day); foreach($tmpa as $value){ $ti=""; $tdwidth="322"; $tdclass="karamel border7"; if($tilmeld[$value]=="ja" && $tekst[$value]!=""){ $ti="<a href=\"?side=kontakt&overskrift=Tilmeld ".$tekst[$value]."\" class=\"a5\">Tilmeld</a>"; $tdwidth="262"; } $ti="<td style=\"width:60px;\" align=\"right\" valign=\"middle\">".$ti."</td>"; $tx=$tekst[$value]; if($tx!="" && $tekst2[$value]!=""){ $tx.="<br>"; }else{ $tdclass = "border12"; } $tx.$tekst2[$value]; if($link[$value]!="" && $tx!=""){ $tx="<a href='".$link[$value]."' class=\"a5\">".$tx."</a>"; } $tx="<td style=\"width:".$tdwidth."px;\" class=\"p6\" align=\"left\" valign=\"middle\" class=\"".$tdclass."\">".$tx."</td>"; $tt="<table style=\"width:322px;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr>".$tx."".$ti."</tr></table>"; echo $tt; } echo "</td></tr>"; } ?> ..giver <tr> <td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2">1</td> <td style="height:20px; width:322px; padding-top:2px; padding-right:6px; padding-bottom:2px; padding-left:6px;" align="left" valign="middle"></td> </tr> <tr> <td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2">2</td> <td style="height:20px; width:322px; padding-top:2px; padding-right:6px; padding-bottom:2px; padding-left:6px;" align="left" valign="middle"></td> </tr> <tr> <td style="height:20px; width:26px; padding-right:4px;" align="right" valign="middle" class="border11 p2">3</td> <td style="height:20px; width:322px; padding-top:2px; padding-right:6px; padding-bottom:2px; padding-left:6px;" align="left" valign="middle"> <table style="width:322px;" border="0" cellpadding="0" cellspacing="0"> <tr> <td style="width:322px;" class="p6" align="left" valign="middle" class="border12">På messe i Kb-hallen. Mød os på stand nr. 82.</td> <td style="width:60px;" align="right" valign="middle"></td> </tr> </table> </td> </tr> og altså bliver $tdclass ikke taget med ??
26. marts 2007 - 16:04
#78
Glem det... der var jo en class i forvejen :/ Kortere? Er det ikke som at klippe hår af en skallet?
26. marts 2007 - 16:09
#79
He he...jo det kan man måske godt sige :), men lad mig se hvordan hele koden ser ud nu. Og det kunne være cool hvis du også postede css delen. Mvh. Johan
26. marts 2007 - 16:10
#80
kan ikke find ud af det alligevel....
26. marts 2007 - 16:15
#81
Ligenu ser det sådan her ud... <?php for($i=1; $i<=$days; $i++) { $day=mktime(0, 0, 0, $m, $i, $y); echo "<tr><td style=\"height:20px; width:26px; padding-right:4px;\" align=\"right\" valign=\"middle\" class=\"border11 p2\">".date('j', $day)."</td>"; echo "<td style=\"height:20px; width:322px; padding-top:2px; padding-right:6px; padding-bottom:2px; padding-left:6px;\" align=\"left\" valign=\"middle\">"; $tmpa=array_keys($dato, $day); foreach($tmpa as $value){ $ti=""; $tdwidth="322"; $tdclass="karamel border7"; if($tilmeld[$value]=="ja" && $tekst[$value]!=""){ $ti="<a href=\"?side=kontakt&overskrift=Tilmeld ".$tekst[$value]."\" class=\"a5\">Tilmeld</a>"; $tdwidth="262"; $tdclass="karamel border7"; } $ti="<td style=\"width:60px; height:20px;\" align=\"right\" valign=\"middle\" class=\"".$tdclass."\">".$ti."</td>"; $tx=$tekst[$value]; if($tx!="" && $tekst2[$value]!=""){ $tx.="<br>"; }else{ $tdclass = "border12"; } $tx.$tekst2[$value]; if($link[$value]!="" && $tx!=""){ $tx="<a href='".$link[$value]."' class=\"a5\">".$tx."</a>"; } $tx="<td style=\"width:".$tdwidth."px; height:20px;\" align=\"left\" valign=\"middle\" class=\"p6 ".$tdclass."\">".$tx."</td>"; $tt="<table style=\"width:322px;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr>".$tx."".$ti."</tr></table>"; echo $tt; } echo "</td></tr>"; } ?> Problemet er, at det helst skulle se ud som aller øverst her på siden. Dvs. Når der er tekst i et felt skal det være class="karamel border 7", ellers class="border 12". Med nuværende kode kommer jeg jo i 'karambolage' med padding's og kan alligevel ikke hitte rundt i at få sat det ordenligt ind skønt jeg egt. synes at koden er nem og overskuelig.. Sol stik måske? Nå nej.. det er udenfor...
26. marts 2007 - 16:16
#82
FEJL --> class="karamel border7", og class="border12" selvølgelig!
26. marts 2007 - 16:19
#83
Lad mig se indholdet af de css klasser du bruger. Mvh. Johan
26. marts 2007 - 16:37
#84
.border12 { border-bottom: 1px solid #EFE9CC; } .karamel { background-image: url(image/baggrund_karamel.gif); background-repeat: repeat; } .border7 { border-bottom: 1px solid #FFFFFF; } .p6 { font-family: verdana; color: #2E2909; font-size: 11px; font-weight: normal; } osv...
26. marts 2007 - 16:38
#85
må lige smutte kort....
26. marts 2007 - 18:12
#86
Nogen kommentar :0) ?
26. marts 2007 - 19:14
#87
Jeg har ikke fået kigget endnu, og får sikkert også først tid senere i aften. Mvh. Johan
26. marts 2007 - 22:50
#88
Hvordan fungere det her --> <?php for($i=1; $i<=$days; $i++) { $day=mktime(0, 0, 0, $m, $i, $y); echo "<tr><td style='height: 20px; width: 26px; text-align: right; vertical-align: middle; padding-right:4px;' class='border11 p2'>".date('j', $day)."</td>"; echo "<td style='height: 20px; width: 322px; padding: 2px 6px; text-align: left; vertical-align: middle;'>"; $tmpa=array_keys($dato, $day); foreach($tmpa as $value){ $ti=""; $tdwidth=""; if($tilmeld[$value]=="ja" && $tekst[$value]!="") { $ti="<a href='?side=kontakt&overskrift=Tilmeld ".$tekst[$value]."' class='a5'>Tilmeld</a>"; $tdwidth="width: 262px; "; $ti="<td style='width: 60px; height: 20px; text-align: right; vertical-align: middle' class='karamel border7'>".$ti."</td>"; } $tx=$tekst[$value]; if($tx!="" && $tekst2[$value]!="") { $tx.="<br>"; } $tx.=$tekst2[$value]; if($tx!="") { $tdclass="karamel border7"; } else { $tdclass="border12"; } if($link[$value]!="" && $tx!="") { $tx="<a href='".$link[$value]."' class='a5'>".$tx."</a>"; } $tx="<td style='".$tdwidth."height: 20px; text-align: left; vertical-align: middle' class='p6 ".$tdclass."'>".$tx."</td>"; $tt="<table style='width: 100%; border: 0px;' cellpadding='0' cellspacing='0'><tr>".$tx.$ti."</tr></table>"; echo $tt; } echo "</td></tr>"; } ?> Mvh. Johan
26. marts 2007 - 22:52
#89
Du må meget 'undskylde' formaterings ændringerne, men det er nemmere at læse koden når den er formateret som man selv gør det :) Mht. til din brug af \" såkan du blot bruge ' istedet. Mvh. Johan
27. marts 2007 - 09:21
#90
Det lader til at jeg arbejder når du har fri og omvendt :0) Jeg er klar over at du arbejde i "blinde" og det gør det måske lidt sværere. Det beklagerjeg... overstående kode virker fint, og er nogenlunde det jeg selv er kommet frem til. Problemet nu er, at der under de 'tomme' datorækker skal være en streg = border 12.... Den bliver ikke vist. Det lader ikke til at den medtager else-delen i $tdclass="karamel border7"; } else { $tdclass="border12"; } Her er en del af kildekoden: <tr> <td style="height:20px; width:30px; padding-right:4px;" align="right" valign="middle" class="border11 p2">1</td> <td style="height:20px; width:332px;" align="left" valign="middle"></td> </tr> <tr> <td style="height:20px; width:30px; padding-right:4px;" align="right" valign="middle" class="border11 p2">2</td> <td style="height:20px; width:332px;" align="left" valign="middle"></td> </tr> <tr> <td style="height:20px; width:30px; padding-right:4px;" align="right" valign="middle" class="border11 p2">3</td> <td style="height:20px; width:332px;" align="left" valign="middle"> <table style="width:332px;" border="0" cellpadding="0" cellspacing="0"> <tr> <td style="width:332px; height:20px; padding-left:6px;" align="left" valign="middle" class="p6 karamel border7">På messe i Kb-hallen. Mød os på stand nr. 82.</td> <td style="width:60px; height:20px;" align="left" valign="middle" class="karamel border7"> </td> </tr> </table> </td> </tr> I rækkerne efter dato 1 og 2, hvor der ikke er noget tekst, viser den slet ikke nogen class?? Ved rækkerne med tekst virker $tdclass fint :0)
27. marts 2007 - 09:43
#91
Her er mit eget foreslag....som giver det sammen som din bare med nogle rettelser iform f noget padding der er flytte og sånt... <?php for($i=1; $i<=$days; $i++) { $day=mktime(0, 0, 0, $m, $i, $y); echo "<tr><td style=\"height:20px; width:30px; padding-right:4px;\" align=\"right\" valign=\"middle\" class=\"border11 p2\">".date('j', $day)."</td>"; echo "<td style=\"height:20px; width:332px;\" align=\"left\" valign=\"middle\">"; $tmpa=array_keys($dato, $day); foreach($tmpa as $value){ $ti=""; $tdwidth="332"; $tdclass="karamel border7"; if($tilmeld[$value]=="ja" && $tekst[$value]!=""){ $ti="<a href=\"?side=kontakt&overskrift=Tilmeld ".$tekst[$value]."\" class=\"a5\">Tilmeld</a>"; $tdwidth="277"; } $ti="<td style=\"width:55px; height:20px;\" align=\"left\" valign=\"middle\" class=\"".$tdclass."\">".$ti."</td>"; $tx=$tekst[$value]; if($tx!="" && $tekst2[$value]!=""){ $tx.="<br>"; } $tx.$tekst2[$value]; if($link[$value]!="" && $tx!=""){ $tx="<a href='".$link[$value]."' class=\"a5\">".$tx."</a>"; } $tx="<td style=\"width:".$tdwidth."px; height:20px; padding-left:6px;\" align=\"left\" valign=\"middle\" class=\"p6 ".$tdclass."\">".$tx."</td>"; $tt="<table style=\"width:332px;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr>".$tx."".$ti."</tr></table>"; echo $tt; } echo "</td></tr>"; } ?>
27. marts 2007 - 12:21
#92
Det er fuldstændigt umuligt for mig at hjælpe dig, hvis du ikke bruger de ændringer jeg laver :) Hvis du sidder og arbejder videre med din egen kode og kun 'kigger' på de ændringer jeg laver, giver de problemer og det output du viser mig ingen mening hos mig..... Du kan altid lave design ændringer osv. bagefter.... Prøv at bruge det eksempel jeg postede 26/03-2007 22:50:24 og så vis mig det output som det levere, sammen med en beskrivelse af hvad du gerne vil have anderledes, så skal jeg prøve at hjælpe. Det er ikke et surt opstød..'bøvs'..det er bare krop umuligt når jeg ikke selv kan teste... Mvh. Johan
27. marts 2007 - 13:49
#93
Men jeg HAR prøvet din kode af fra 26/03-2007 22:50:24 og postet udfaldet 27/03-2007 09:21:49.
27. marts 2007 - 13:53
#94
Det er resultatet af din kode OG de ønskede ændringer der er postet der... (jeg ved at jeg starter med at skrive at det virkede fint... det skulle nok have været modereret til "næsten fint"). Som jeg tidligere har skrevet er problemet nu, at den ikke bruger broder12, og altså sætter streg under de "tomme" tekstfelter... Beklager hvis ikke det har været tydeligt nok :0)
27. marts 2007 - 13:57
#95
Forkert.. der skulle selvf. stå at den ikke bruger border12 og altså IKKE sætter streg under de "tomme" tekstfelter... Jeg er klar over at jeg kan lave designændringer senere, men din måde at sætte det op på er bare så radikalt anderledes end min, at jeg virkeligt har problemer med det.. derfor forsøger jeg mig undervejs.. :0)
27. marts 2007 - 16:03
#96
Det output du viser den 27/03-2007 09:21:49 kan umuligt være resultatet af min kode da der er fuldstændigt lavet om på css delen. Det er derfor umuligt for mig at se hvad der ellers er ændret f.eks. har jeg nu mange gange forsøgt at få denne linje --> $tx.$tekst2[$value]; rettet til $tx.=$tekst2[$value]; Men da ændringen ikke bliver vist i det du efterfølgende poster, går jeg ud fra at du ikke arbejder med min kode, men holder fast i din egen. Jeg vil meget gerne hjælpe dig, og jeg vil meget gerne bevare din formatering, men så længe vi fejlsøger og fejlretter er det bare vigtigt at vi arbejder med den samme kode. Så min bøn, før vi fortsætter, er at du tager en kopi af den kode jeg sidst postede, prøver den, og så skriver resultatet inklusiv de fejlmeddelelser og ændringer du gerne vil have lavet. Endnu en gang, jeg vil gerne hjælpe. Mvh. Johan
27. marts 2007 - 17:23
#97
Det har bestemt ikke været min hensigt at lave rav i den. Og jeg har faktisk troet at jeg har gjort præcis som du har bedt mig om.... Jeg beklager meget at der er sket en fejl. Det er muligt at jeg HAR pastet den forkeret kode.. men jeg har ikke bevidst hold fast i egen kode. Her kommer i hvert fald resultatet, tjekket, dobbelttjekket og eftertjekket at det er den rigtige - helt igennem tjekket: <tr> <td style='height: 20px; width: 26px; text-align: right; vertical-align: middle; padding-right:4px;' class='border11 p2'>1</td> <td style='height: 20px; width: 322px; padding: 2px 6px; text-align: left; vertical-align: middle;'></td> </tr> <tr> <td style='height: 20px; width: 26px; text-align: right; vertical-align: middle; padding-right:4px;' class='border11 p2'>2</td> <td style='height: 20px; width: 322px; padding: 2px 6px; text-align: left; vertical-align: middle;'></td> </tr> <tr> <td style='height: 20px; width: 26px; text-align: right; vertical-align: middle; padding-right:4px;' class='border11 p2'>3</td> <td style='height: 20px; width: 322px; padding: 2px 6px; text-align: left; vertical-align: middle;'> <table style='width: 100%; border: 0px;' cellpadding='0' cellspacing='0'> <tr> <td style='height: 20px; text-align: left; vertical-align: middle' class='p6 karamel border7'>På messe i Kb-hallen. Mød os på stand nr. 82.</td> </tr> </table> </td> </tr> Tak for din tålmodighed .... :0)
27. marts 2007 - 17:28
#98
Hov... der mangler noget af det jeg skrev --> Style vorker fint på 'fyldte rækker', men på 'tomme rækker' mangler der en border, altså border12 :0)
27. marts 2007 - 17:51
#99
Ingen problemer, det var bare lidt frustrerende, men nu ser det hele meget genkendeligt ud :) Nu kan jeg se hvad det er du mener og jeg har lavet en mulig løsning her. Det er ikke det mest elegante, men nu vil jeg først bare høre om det ser ud som du vil have, så kan vi altid gøre det lækkert senere :) for($i=1; $i<=$days; $i++) { $day=mktime(0, 0, 0, $m, $i, $y); echo "<tr><td style='height: 20px; width: 26px; text-align: right; vertical-align: middle; padding-right:4px;' class='border11 p2'>".date('j', $day)."</td>"; echo "<td style='height: 20px; width: 322px; padding: 2px 6px; text-align: left; vertical-align: middle;'>"; $tmpa=array_keys($dato, $day); if(count($tmpa)>0) { foreach($tmpa as $value){ $ti=""; $tdwidth=""; if($tilmeld[$value]=="ja" && $tekst[$value]!="") { $ti="<a href='?side=kontakt&overskrift=Tilmeld ".$tekst[$value]."' class='a5'>Tilmeld</a>"; $tdwidth="width: 262px; "; $ti="<td style='width: 60px; height: 20px; text-align: right; vertical-align: middle' class='karamel border7'>".$ti."</td>"; } $tx=$tekst[$value]; if($tx!="" && $tekst2[$value]!="") { $tx.="<br>"; } $tx.=$tekst2[$value]; if($tx!="") { $tdclass="karamel border7"; } else { $tdclass="border12"; } if($link[$value]!="" && $tx!="") { $tx="<a href='".$link[$value]."' class='a5'>".$tx."</a>"; } $tx="<td style='".$tdwidth."height: 20px; text-align: left; vertical-align: middle' class='p6 ".$tdclass."'>".$tx."</td>"; $tt="<table style='width: 100%; border: 0px;' cellpadding='0' cellspacing='0'><tr>".$tx.$ti."</tr></table>"; echo $tt; } } else { echo "<table style='width: 100%; border: 0px;' cellpadding='0' cellspacing='0'> <tr> <td style='height: 20px; text-align: left; vertical-align: middle' class='p6 border12'></td> </tr> </table>"; } echo "</td></tr>"; } Mvh. Johan
27. marts 2007 - 18:04
#100
Sammen resultat i browseren, men class er nu sat i koden... <tr> <td style='height: 20px; width: 26px; text-align: right; vertical-align: middle; padding-right:4px;' class='border11 p2'>1</td> <td style='height: 20px; width: 322px; padding: 2px 6px; text-align: left; vertical-align: middle;'> <table style='width: 100%; border: 0px;' cellpadding='0' cellspacing='0'> <tr> <td style='height: 20px; text-align: left; vertical-align: middle' class='p6 border12'></td> </tr> </table> </td> </tr> <tr> <td style='height: 20px; width: 26px; text-align: right; vertical-align: middle; padding-right:4px;' class='border11 p2'>2</td> <td style='height: 20px; width: 322px; padding: 2px 6px; text-align: left; vertical-align: middle;'> <table style='width: 100%; border: 0px;' cellpadding='0' cellspacing='0'> <tr> <td style='height: 20px; text-align: left; vertical-align: middle' class='p6 border12'></td> </tr> </table> </td> </tr> <tr> <td style='height: 20px; width: 26px; text-align: right; vertical-align: middle; padding-right:4px;' class='border11 p2'>3</td> <td style='height: 20px; width: 322px; padding: 2px 6px; text-align: left; vertical-align: middle;'> <table style='width: 100%; border: 0px;' cellpadding='0' cellspacing='0'> <tr> <td style='height: 20px; text-align: left; vertical-align: middle' class='p6 border12'></td> </tr> </table> </td> </tr> Hvad hvis man flyttede class='p6 ".$tdclass."' op i den <td> der INDEHOLDER <tablen>...?
27. marts 2007 - 18:05
#101
pttt.. hvad er det for noget vrøvl jeg siger...
27. marts 2007 - 18:15
#102
Altså vrøvlen var mit foreslag.. ikke fejlen. Fejlen er stadig den samme..
27. marts 2007 - 19:15
#103
Så kommer denne her :) for($i=1; $i<=$days; $i++) { $day=mktime(0, 0, 0, $m, $i, $y); echo "<tr><td style='height: 20px; width: 26px; text-align: right; vertical-align: middle; padding-right:4px;' class='border11 p2'>".date('j', $day)."</td>"; echo "<td style='height: 20px; width: 322px; padding: 2px 6px; text-align: left; vertical-align: middle;'>"; $tmpa=array_keys($dato, $day); if(count($tmpa)>0) { foreach($tmpa as $value){ $ti=""; $tdwidth=""; if($tilmeld[$value]=="ja" && $tekst[$value]!="") { $ti="<a href='?side=kontakt&overskrift=Tilmeld ".$tekst[$value]."' class='a5'>Tilmeld</a>"; $tdwidth="width: 262px; "; $ti="<td style='width: 60px; height: 20px; text-align: right; vertical-align: middle' class='karamel border7'>".$ti."</td>"; } $tx=$tekst[$value]; if($tx!="" && $tekst2[$value]!="") { $tx.="<br>"; } $tx.=$tekst2[$value]; if($tx!="") { $tdclass="karamel border7"; } else { $tx=" "; $tdclass="border12"; } if($link[$value]!="" && $tx!=" ") { $tx="<a href='".$link[$value]."' class='a5'>".$tx."</a>"; } $tx="<td style='".$tdwidth."height: 20px; text-align: left; vertical-align: middle' class='p6 ".$tdclass."'>".$tx."</td>"; $tt="<table style='width: 100%; border: 0px;' cellpadding='0' cellspacing='0'><tr>".$tx.$ti."</tr></table>"; echo $tt; } } else { echo "<table style='width: 100%; border: 0px;' cellpadding='0' cellspacing='0'> <tr> <td style='height: 20px; text-align: left; vertical-align: middle' class='p6 border12'> </td> </tr> </table>"; } echo "</td></tr>"; } Mvh. Johan
27. marts 2007 - 20:14
#104
og den virker :0)
27. marts 2007 - 20:58
#105
Jamen det er da bare dejligt :) Grunden til at det ikke virkede før er blot at i nogle browsere vises tomme celler ikke, og derfor heller ikke deres styles. Det er fikset ved at 'fylde' de tomme celler med som er et 'mellemrum'. Som sagt kan en del af hele koden gøres lidt kortere, men jeg ved ikke om vi skal kigge på det eller om du er tilfreds ? Mvh. Johan
27. marts 2007 - 21:22
#106
Jeg tror at jeg er tilfreds og vil videre med noget andet. Den her tråd er jo gået hen og blevet lang ;0) Læg dit svar, og du skal få som fortjent! Mange tak for hjælpen!
27. marts 2007 - 21:37
#107
Ja, det er nok derfor at det er svært at få hjælp i kalender spørgsmål ;) he he Det er helt fint, bare du er tilfreds med resultatet. Mvh. Johan
28. marts 2007 - 14:05
#108
Værsgod... og tak fordi du var ham, der endeligt turde tage hul på kalenderspørgsmålet :0)
28. marts 2007 - 14:15
#109
Velbekomme, og tak for points :) Mvh. Johan
Vi tilbyder markedets bedste kurser inden for webudvikling