Avatar billede avminarm Juniormester
13. maj 2003 - 15:04 Der er 7 kommentarer og
1 løsning

edit af data fra mysql

Jeg er ved at lave et lille system hvor man skal kunne oprette en vagt plan for en måned ad gangen - den kan ses (og prøves) på www.wagners.dk/plan

Men jeg er gået død i hvordan jeg kan lave en "edit" funktion til plansystemet.

jeg skulle gerne kunne hente alle checkboxe frem og ud for dem der har vagten skal den være "checked" når planen hentes frem til editering - men ak.....

Er der et kvikt hoved der kan hjælpe??

min DB:
CREATE TABLE navne (
  id tinyint(12) NOT NULL auto_increment,
  navn varchar(50) NOT NULL default '',
  PRIMARY KEY (id)
) TYPE=MyISAM;

CREATE TABLE plan (
  plan_id tinyint(12) NOT NULL auto_increment,
  dag int(2) NOT NULL default '0',
  md int(2) NOT NULL default '0',
  aar int(4) NOT NULL default '0',
  navn_id tinyint(12) NOT NULL default '0',
  PRIMARY KEY (plan_id)
) TYPE=MyISAM;

Jeg bruger flg. funktion til at hente data frem til visning:

function vis($maaned,$detteaar,$dennemd,$dage_i_md){

//benyttede datoer puttes i et array
$sqldage = mysql_query("SELECT DISTINCT dag FROM plan WHERE md = ".$maaned." AND aar = ".$detteaar."") or die (mysql_error()); 
if(mysql_num_rows($sqldage) == 0){
  echo "<tr><td align=\"center\">Der eksisterer ingen plan for <b>".$dkmdr[$dennemd]."</b> ".$detteaar."</td></tr>";
  exit;
}
while ($dage = mysql_fetch_array($sqldage)){
$fyldte[]=$dage['dag'];
}


  echo "<tr><td><b>NAVN:</b></td>";
  for($i = 1; $i <= $dage_i_md; $i++){

    $day  = mktime (0,0,0,$maaned,$i,$detteaar);
    $day_of_week = date(w, $day);

    if($day_of_week == 0 || $day_of_week == 6){ //dage i ugen 0=søndag og 6=lørdag
    $bg = "#C0C0C0";
    }else{
    $bg = "#FFFFFF";
    }
   
    echo "<td bgcolor=\"".$bg."\" align=\"center\">".$ugedag[$day_of_week]."<br><b>".$i."</b></td>";

    } //end forløkke
  echo "</tr>\n";

$sqlnavn = mysql_query("SELECT * FROM navne") or die (mysql_error());
while ($rownavn = mysql_fetch_array($sqlnavn)){
    echo "<tr>";
    echo "<td><b>".$rownavn['navn']."</b>&nbsp;</td>";

    for($i = 1; $i <= $dage_i_md; $i++){
        $day  = mktime (0,0,0,$maaned,$i,$detteaar);
        $day_of_week = date(w, $day);

          if($day_of_week == 0 || $day_of_week == 6){ //dage i ugen 0=søndag og 6=lørdag
          $bg = "#C0C0C0";
            }else{
                if (!in_array ($i, $fyldte)) {
            $bg = "#808080";
            }else{           
            $bg = "#FFFFFF";
            }
          }
         
        echo "<td  bgcolor=\"".$bg."\" align=\"center\">";

        $sql = mysql_query("SELECT * FROM plan WHERE (md = ".$maaned." AND aar = ".$detteaar.") AND navn_id = ".$rownavn['id']."") or die (mysql_error());
        while ($row = mysql_fetch_array($sql)){
       
              if($vis_weekend == 0 && ($day_of_week == 0 || $day_of_week == 6)){ //skal weekends vises eller ej
                  echo " ";
              }else{
                if($row['dag'] == $i){
                    echo "<img src=\"images/pic.jpg\" border=\"0\">";
                }
                }
        }//while sql
        echo "</td>";
    }//for løkke slut
    echo "</tr>\n";
}//while sqlnavn

}//function slut

?>
Avatar billede rdc Nybegynder
14. maj 2003 - 17:53 #1
Utestet..

gem det hele i en hel ny fil, og se om det virker. Jeg har ikke sat det op i checkboxe, det må du så selv ordne, men jeg har kaldt dem ud i tekstboxe istedet.

Somsagt utestet...
<?php
// Sletter hvis der er valgt en bruger
mysql_connect("localhost","brugernavn","kode");
mysql_select_db("databasenavn");
if(isset($_GET['slet'])) {
    $id = $_GET['slet'];
    mysql_query("DELETE FROM navne WHERE id=$id") or die (mysql_error());
}
// Opdaterer brugerdata
if(isset($_POST['opdater'])) {
    $id = $_POST['id'];
    mysql_query("UPDATE navne SET nick='$_POST[nick]',pass='$_POST[pass]' WHERE id=$id") or die (mysql_error());
}
// Udskriver alle brugernavne
$query = mysql_query("SELECT nick,id FROM navne ORDER BY nick ASC") or die (mysql_error());
while($row = mysql_fetch_array($query)) {
    echo "$row[nick] | <a href=\"?slet=$row[id]\">Slet</a> | <a href=\"?ret=$row[id]\">Ændre/Rediger</a><br>";
}
?>
<hr color="black">
<?php
if(isset($_GET['ret'])) {
    $id = $_GET['ret'];
    $brugeropl = mysql_query("SELECT * FROM plan WHERE id=$id") or die (mysql_error());
    $row = mysql_fetch_array($brugeropl);
?>
<div align="center">
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
PlanId :<br><input type="text" name="id" value="<?php echo $row['plan_id ']; ?>"><br>
Dag :<br><input type="text" name="nick" value="<?php echo $row['dag int']; ?>"><br>
Måned :<br><input type="text" name="pass" value="<?php echo $row['md int']; ?>"><br>
år :<br><input type="text" name="LastLogin" value="<?php echo $row['aar int']; ?>"><br>
NavnId :<br><input type="text" name="alder" value="<?php echo $row['navn_id']; ?>"><br>

<input type="submit" name="opdater" value="Ændre/Rediger">
</form></div>
<?php
}
?>
Avatar billede avminarm Juniormester
14. maj 2003 - 21:09 #2
jeg tror du har misforstået - det er ikke ud for hver bruger man skal rette - det skal være hele planen der skal rettes dvs. når planen hentes skal de checkboxe som var/er markeret i den originale indtastning
Avatar billede ohmish Nybegynder
21. maj 2003 - 07:22 #3
du skal da køre et while loop ved visning af databaseindhold, og ved hver felt med tidligere værdi fra checkbox:

if ($felt = "ja") {
echo 'INPUT TYPE="checkbox" NAME="noget" VALUE="ja" CHECKED>'; }
else { echo 'INPUT TYPE="checkbox" NAME="noget" VALUE="ja">'; }

eller:

if ($felt = "ja") { $checked = " CHECKED"; } else { $checked = ""; }
echo 'INPUT TYPE="checkbox" NAME="noget" VALUE="ja"'.$checked.'>';
Avatar billede avminarm Juniormester
21. maj 2003 - 11:03 #4
hmm - mit prob ligger mere præcist i denne stump her:

if($vis_weekend == 0 && ($day_of_week == 0 || $day_of_week == 6)){ //skal weekends vises eller ej
echo " ";
}else{
if($row['dag'] == $i){
echo "<img src=\"images/pic.jpg\" border=\"0\">";
}
}

Hvis den ændres til:
if($vis_weekend == 0 && ($day_of_week == 0 || $day_of_week == 6)){ //skal weekends vises eller ej
echo " ";
}else{
if($row['dag'] == $i){
echo '<INPUT TYPE="checkbox" NAME="noget" VALUE="ja" CHECKED>';
}else{ //Ændret med en else
echo '<INPUT TYPE="checkbox" NAME="noget" VALUE="ja">'; //her udskriver den så 6 checkboxe efter hinanden og den skal bare udskrive 1 tom
}

Det er det jeg ikke kan gennemskue ;o(
Avatar billede ohmish Nybegynder
21. maj 2003 - 11:29 #5
heller ikke her..

men hva med:

if($vis_weekend == 0 && ($day_of_week == 0 || $day_of_week == 6)){ //skal weekends vises eller ej
echo '<INPUT TYPE="checkbox" NAME="noget" VALUE="ja">';
}else{
if($row['dag'] == $i){
echo '<INPUT TYPE="checkbox" NAME="noget" VALUE="ja" CHECKED>';
}
}
Avatar billede avminarm Juniormester
21. maj 2003 - 12:58 #6
nix - så viser den checkboxe i weekend felterne - og det skal den ikke
Avatar billede avminarm Juniormester
27. maj 2003 - 09:17 #7
lukker - jeg må prøve at finde en anden vej rundt
Avatar billede avminarm Juniormester
27. maj 2003 - 09:17 #8
.
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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