Avatar billede pylle Nybegynder
08. marts 2011 - 22:22 Der er 9 kommentarer

Hjælp til databaseopdatering

Hej er der nogen der kan hjælpe her
jeg vil gerne have min kalender til at vise aktuel måned når siden åbnes.
Jeg får denne meddelse når jeg åbner siden

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'and aar =' at line 1
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /volume1/web/liste kalender/vis_kalender.php on line 61

der hentes data ID,dato,maaned,ugedagnavn,beskrivelse fra MySQL


Koden er her
<?PHP
require_once("farver.php");
include("connect.php");



// Måned på året 1-12
// $md = date("n");
// Årstal (4-cifret) 2011
// $aar  = date("Y");

?>
<div align="center">

<form method="post" action="<?php $_SERVER['PHP_SELF'] ?>">
Vælg Dag:: 

<?php
dag();
?>

Vælg Måned: 

<?php
maaned();
?>
 
Vælg År: 

<?php
aar();
?>

<input type="hidden" name="op" value="ds">
<input type="submit" name="submit" value="Vælg Måned / År">

</form>
</div>
<?php

//viser overskrift tabel
Print "<table width=561 align=center border='0'>
        <tr bgcolor=" . farve() . "\n>
        <td width=33>id</td>
        <td width=17>Dato</td>
        <td width=16>Måned</td>
        <td width=32>aar</td>
        <td width=56>navn</td>
        <td width=303>beskrivelse</td>
        <td width=47>ret</td>
        </tr>
</table>";





$resultat = mysql_query("SELECT *  FROM kalender "."WHERE id = id and maaned = $md and aar = $aar");
Print mysql_error();

while($post = mysql_fetch_array($resultat)){
//Sætter måneds navn ind
              //pos  0      1        2        3      4      5      6    7        8      9        10        11        12
$maaneder = array("dommy","Januar","Februar","Marts","April","Maj","Juni","Juli","August","Oktber","September","November","December",);
$aktuel_maaned = $post[maaned];
//echo $maaneder[$aktuel_maaned]; //Skriv resultat



//Skriver kalender data på skærm
  Print "<table border=0 width=650 align=center>
 

        <table border=0 width=561 ALIGN=center id=table1>
<tr bgcolor=" . farve() . "\n>
        <td width=33>$post[id]</td>
        <td width=17 align=right>$post[dag]</td>
        <td width=16>$maaneder[$aktuel_maaned]</td>
        <td width=32>$post[aar]</td>
        <td width=56>$post[dag_navn]</td>
        <td width=303>$post[event]</td>
        <td width=47><a href=\"rediger_vare_form.php?id=$post[id]\">Ret<?=$post[id];?></a></td>


</tr>
</table>";
}
exit;
?>
<?php

/******************/
//funktion til år
/******************/
function aar(){

echo "<select name=\"aar\">\n"; //år loop - der er mulighed for at indtaste 1 gamle år
  $aar = date("Y")-1; //årstal med 4 cife f.eks 2010
  $detteaar = date("Y");
    for($i = $aar; $i < ($aar+10); $i++){    // indsæt antal aar +10 = 10 år
      if($i == $detteaar){
          echo"<option value=$i Selected>$i</option>\n";
      }else{
          echo"<option value=$i>$i</option>\n";
      }
    }
echo "</select>\n";

}
/******************/
//funktion til måned
/******************/
function maaned(){

echo "<select name=\"md\">\n";
  $dkmdr = array("Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December");
  $mdnu = date("m"); //måned med 2 cifre f.eks 01 - 12
  $md = $mdnu; //sættes til næste måned
    for($j = 1; $j <= 9; $j++){
      $x = $j-1; //til brug for måneds array
      if($j == $md){
        echo"<option value=\"0".$j."\" Selected>$dkmdr[$x] ($j)</option>\n";
      }else{
        echo"<option value=\"0".$j."\">$dkmdr[$x] ($j)</option>\n";
      }
    }
    for($j = 10; $j <= 12; $j++){
      $x = $j-1; //til brug for måneds array
      if($j == $md){
          echo"<option value=\"$j\" Selected>$dkmdr[$x] ($j)</option>\n";
      }else{
          echo"<option value=\"$j\">$dkmdr[$x] ($j)</option>\n";
        }
    }
echo "</select>\n";
}

/******************/
//funktion til dag
/******************/
function dag(){

echo "<select name=\"dato\">\n"; //år loop - der er mulighed for at indtaste 1 gamle år
    $dd = date("d"); //dags dato
    for($i = 1; $i <= 9; $i++){
      if($i == $dd){
          echo"<option value=\"0".$i."\" Selected>$i</option>\n";
      }else{
          echo"<option value=\"0".$i."\">$i</option>\n";
      }
    }
    for($i = 10; $i <= 31; $i++){
      if($i == $dd){
          echo"<option value=$i Selected>$i</option>\n";
      }else{
          echo"<option value=$i>$i</option>\n";
      }
    }
echo "</select>\n";

}
?>
Avatar billede erikjacobsen Ekspert
08. marts 2011 - 22:43 #1
Ser ud til at din $aar er tom.
Avatar billede pylle Nybegynder
08. marts 2011 - 22:53 #2
Ja men kan man ikke få funktionen til at fylde noget i $aar ?
Avatar billede pylle Nybegynder
08. marts 2011 - 22:59 #3
når der bliver trykket på  Vælg Måned / År knappen ser det fint ud
den kan ses her
http://93.164.165.106/liste%20kalender/vis_kalender.php
Avatar billede erikjacobsen Ekspert
08. marts 2011 - 23:05 #4
Jo. Hvad skal der stå i $aar og i $md, som osgå er tom? Du har linier:

  // $md = date("n");
  // $aar  = date("Y");

hvor du åbenbart har gjort dig nogle tanker om det. Men de er kun kommentarer.

Måske tror du, at du sætter værdierne i de to funktioner mnd() og aar(), men der sætte du kun $md og $aar som lokale variabler, der ikke kan ses udenfor funktionerne.

Du kan fx gøre dem synlige udenfor med

  function aar() {
    global $aar;
            ....osv....
  }


Jeg kan heller ikke se hvad id=id skal gøre i din SQL-sætning:
  ...WHERE id = id....
Avatar billede pylle Nybegynder
09. marts 2011 - 21:03 #5
Indehold i $aar og i $md skulle gerne være aktuel dato

Jo jeg ved godt at 
// $md = date("n");
// $aar  = date("Y")
kun er kommentarer dem brugte jeg før funktionerne dag, maaned, aar.

Forstår ikke lige det med udenfor

WHERE id = id.... har jeg slettet
Avatar billede erikjacobsen Ekspert
09. marts 2011 - 21:36 #6
Du skal formentlig blot tilføje de linier med
  global $aar;
osv
Avatar billede pylle Nybegynder
09. marts 2011 - 21:56 #7
funker ej
får denne her
Fatal error: Cannot redeclare aar() (previously declared in /volume1/web/liste kalender/vis_kalender.php:86) in /volume1/web/liste kalender/vis_kalender.php on line 117
Avatar billede pylle Nybegynder
09. marts 2011 - 21:57 #8
Lige koden

<?PHP
require_once("farver.php");
include("connect.php");


// Måned på året 1-12
// $md = date("n");
// Årstal (4-cifret) 2011
// $aar  = date("Y");
?>

<div align="center">
<form method="post" action="<?php $_SERVER['PHP_SELF'] ?>">

Vælg Dag::&nbsp;
<?php
dag();
?>

Vælg Måned:&nbsp;
<?php
maaned();
?>&nbsp;

Vælg År:&nbsp;
<?php
aar();
?>

<input type="hidden" name="op" value="ds">
<input type="submit" name="submit" value="Vælg Måned / År">

</form>
</div>
<?php
//viser overskrift tabel
Print "<table width=561 bgcolor= lightblue align=center border='1'>
        <td width=33>id</td>
        <td width=17>Dato</td>
        <td width=16>Måned</td>
        <td width=32>aar</td>
        <td width=56>navn</td>
        <td width=303>beskrivelse</td>
        <td width=47>ret</td>
        </tr>
</table>";

$resultat = mysql_query("SELECT *  FROM kalender "."WHERE  maaned = $md and aar = $aar");
Print mysql_error();

while($post = mysql_fetch_array($resultat)){
//Sætter måneds navn ind
              //pos  0      1        2        3      4      5      6    7        8      9        10        11        12
$maaneder = array("dommy","Januar","Februar","Marts","April","Maj","Juni","Juli","August","Oktber","September","November","December",);
$aktuel_maaned = $post[maaned];
//echo $maaneder[$aktuel_maaned]; //Skriv resultat



//Skriver kalender data på skærm
  Print "<table border=0 width=650 align=center>
 

        <table border=1 width=561 ALIGN=center id=table1>
        <tr bgcolor=" . farve() . "\n>
        <td width=33>$post[id]</td>
        <td width=17 align=right>$post[dag]</td>
        <td width=16>$maaneder[$aktuel_maaned]</td>
        <td width=32>$post[aar]</td>
        <td width=56>$post[dag_navn]</td>
        <td width=303>$post[event]</td>
        <td width=47><a href=\"rediger_vare_form.php?id=$post[id]\">Ret<?=$post[id];?></a></td>


</tr>
</table>";
}

?>

<?php
/******************/
//funktion til år
/******************/
function aar() {
    global $aar;

  }
 
 
function maaned() {
    global $maaned;

  }

function dag() {
    global $dag;

  }

//function aar(){
function aar() {

echo "<select name=\"aar\">\n"; //år loop - der er mulighed for at indtaste 1 gamle år

    $aar = date("Y")-1; //årstal med 4 cife f.eks 2002
  $detteaar = date("Y");
    for($i = $aar; $i < ($aar+10); $i++){    // indsæt antal aar +5 = 5 år
      if($i == $detteaar){
          echo"<option value=$i Selected>$i</option>\n";
      }else{
        echo"<option value=$i>$i</option>\n";
      }
    }
echo "</select>\n";

}
/******************/
//funktion til måned
/******************/
function maaned(){

echo "<select name=\"md\">\n";
  $dkmdr = array("Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December");
  $mdnu = date("m"); //måned med 2 cifre f.eks 01 - 12
  $md = $mdnu; //sættes til næste måned
    for($j = 1; $j <= 9; $j++){
      $x = $j-1; //til brug for måneds array
      if($j == $md){
        echo"<option value=\"0".$j."\" Selected>$dkmdr[$x] ($j)</option>\n";
      }else{
        echo"<option value=\"0".$j."\">$dkmdr[$x] ($j)</option>\n";
      }
    }
    for($j = 10; $j <= 12; $j++){
      $x = $j-1; //til brug for måneds array
      if($j == $md){
          echo"<option value=\"$j\" Selected>$dkmdr[$x] ($j)</option>\n";
      }else{
          echo"<option value=\"$j\">$dkmdr[$x] ($j)</option>\n";
        }
    }
echo "</select>\n";
}

/******************/
//funktion til dag
/******************/
function dag(){

echo "<select name=\"dato\">\n"; //år loop - der er mulighed for at indtaste 1 gamle år
    $dd = date("d"); //dags dato
    for($i = 1; $i <= 9; $i++){
      if($i == $dd){
          echo"<option value=\"0".$i."\" Selected>$i</option>\n";
      }else{
          echo"<option value=\"0".$i."\">$i</option>\n";
      }
    }
    for($i = 10; $i <= 31; $i++){
      if($i == $dd){
          echo"<option value=$i Selected>$i</option>\n";
      }else{
          echo"<option value=$i>$i</option>\n";
      }
    }
echo "</select>\n";

}
?>
Avatar billede erikjacobsen Ekspert
09. marts 2011 - 22:07 #9
Du skal naturligvis kun have een funktion med navnet aar(). I denne funktion skal din første linie være: global $aar;
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester