Avatar billede kennethv Nybegynder
24. oktober 2008 - 11:18 Der er 18 kommentarer og
2 løsninger

Overfører indhold til en SQL DB

Hej.

Er der en der kan hjælpe mig med det sidste jeg mangler. Jeg skal have overført data fra input felter til min db.

Det her er koden:

<html>

<head>
<style type="text/css">
  form {}
    fieldset {width: 800px;}
    input {width: 50px;}
    p.TekstElement {position: absolute; left: 560px;}
</style>
</head>
<body>
<form method="post">

<fieldset>
  <legend style="font-weight: bold; font-size: 40px; color: #000;">
    Fratrædelse af medarbejder
  </legend>

<table border="0" width = 800px>
<tr>
<td><br><Font Size=4>I forbindelse med, at <b><?PHP echo $strEmployee; ?></b> fratræder sin stilling d. <b><?PHP echo $strDateOfRetire; ?></b> bedes du udfylde dette skema senest 1 uge før fratrædelsen.</Font><br><br></td>
</tr>

<tr>
  <td>
    <fieldset>
      <legend style="font-weight: bold; font-size: 25px; color: #000;">
        Lotus Notes
      </legend>
      <br><Font Size=4>Din medarbejders mailkonto vil være åben 1 måned efter fratrædelse. Derefter slettes den.<br>
        Mails til din medarbejder kan videresendes til en udvalgt person i de efterfølgene 3 måneder.<br><br>
        Mails ønskes videresendt til:</font><input type="checkbox" style="margin-left:348px" onclick="document.getElementById('Lotus').disabled=(this.checked?false:true)"><input type="text" style="margin-left:0px;width:175px" name="v" id="Lotus" disabled="disabled">
      <br><br>
      <Font Size=4><b>HUSK DOG, at få <?PHP echo $strEmployee; ?> til at give andre rettigheder til at læse evt. indkomne mails samt at aktivere Out Of Office med info om fremtidig kontaktadresse - inden fratrædelse. (Læs vejledning om dette på Alround.)</b></font>
    </fieldset><br><br>
  </td>
</tr>

<tr>
  <td>
  <fieldset>
      <legend style="font-weight: bold; font-size: 25px; color: #000;">
        Backup af data
      </legend>
      <Font Size=4><p class="TekstElement"><u>Kopi ønskes</u></p>
      <br>Mail database<input type="checkbox" style="margin-left:451px" name="Kopi" id="Kopi">
      <br><br>
      <b>Vi vil dog anbefale at du sammen med <?PHP echo $strEmployee; ?> aftaler hvilke mailhistorik der skal videresendes til dig, da ikke alle informationer er med i kopien.</b></Font>
    </fieldset><br><br>
  </td>
</tr>

<tr>
  <td>
  <fieldset>
      <legend style="font-weight: bold; font-size: 25px; color: #000;">
        AS/400
      </legend>
      <br><Font Size=4>Sletning af bruger vil blive udført. Hvem skal eje evt. objekter:</font>
        <input type="checkbox" style="margin-left:97px" onclick="document.getElementById('AS400').disabled=(this.checked?false:true)"><input style="margin-left:0px;width:175px" type="text" name="v" id="AS400" disabled="disabled">
    </fieldset><br><br>
  </td>
</tr>

<tr>
  <td>
    <fieldset>
      <legend style="font-weight: bold; font-size: 25px; color: #000;">
        PC
      </legend><br>
      <Font Size=4><?php echo $strEmployee; ?> er bruger af <?php echo $strComputerName; ?>.</font>
      <?php
        if ($strDateOfWarrantyEnded == "")
        {   
            echo "<br><br><Font Size=4>Overdrages til anden medarbejder?";
            echo "<input type=\"checkbox\" style=\"margin-left:300px\" onclick=\"document.getElementById('PC').disabled=(this.checked?false:true)\">";
            echo "<input style=\"margin-left:4px;width:175px\" type=\"text\" name=\"v\" id=\"PC\" disabled=\"disabled\"><br>";
            echo "<br>Retur til IT-afdelingen?</Font>";
            echo "<input type=\"checkbox\" style=\"margin-left:383px\" onclick=\"document.getElementById('text1').disabled=(this.checked?false:true)\">";
            }
        else
        {
            echo "<br><br><Font Size=4> Da den er udløbet for garanti d. ".$strDateOfWarrantyEnded." vil den ikke kunne bruges til anden medarbejder, og vi beder om at få den retur til IT-afdelingen. Samtidig skal vi bede om at få tilbehør retur også, så som SecureID.<br><br>";
            echo "<b>Vi gør i denne forbindelse opmærksom på, at så længe en PC er registreret til din afdeling, betaler afdelingen licensafgifter til alle programmer, der er installeret.</b>";
        }
      ?>
</fieldset>
  </td>
</tr>

</table>
<br><br><input type="submit" style="margin-left:400px" value="Submit">

</fieldset>
<br><br>

<br><br>

</form>

</body>
</html>
Avatar billede majbom Novice
24. oktober 2008 - 11:25 #1
har du noget kendskab til php og mysql overhovedet?

det er lidt svært at vide hvor vi skal begynde når vi ikke ved hvad du ved :)
Avatar billede Slettet bruger
24. oktober 2008 - 11:29 #2
Du skal bruge en SQL-forspørgsel:

Insert Into [tabelnavn] ([felt1], [felt2], [felt3]) Values ('[værdi1]', '[værdi2]', '[værdi3]')

Fx, hvis jeg har en database med en tabel, der hedder "biler", og tabellen indeholder tre felter, der kan indtastes i, som hedder "maerke", "topfart" og "farve". Så indsætter jeg en enhed med ny data ved at skrive følgende SQL-forspørgsel:

Insert Into biler (maerke, topfart, farve) Values ('Mercedes Benz', '300 km/t', 'Blå')

Du skal selvfølgelig have oprettet forbindelse til databasen inden, og alt det der. Har du på en anden side en kode, der henter data fra databasen? Så kan du opbygge forbindelsen på samme måde.

  // Steeven
Avatar billede kennethv Nybegynder
24. oktober 2008 - 11:54 #3
Jeg har forbundet til min db via mssql_connect og det virker.

F.eks. <?php echo $strEmployee; ?> får jeg skrevet medarbejdersnavn ud.

Det jeg ikke ved er hvordan jeg henter data fra mine input felter

Jeg kender godt til SQL syntax, men PHP ved jeg ikke. Sådan noget get eller post eller sådan noget.
Avatar billede Slettet bruger
24. oktober 2008 - 12:32 #4
Du skal lave en formular på en side med input-felter, som skal bruges. Fx som her, hvor der oprettes to tekstfelter og en submitknap:

<form action="fil.php" method="post">
  Name: <input type="text" name="navn" />
  Age: <input type="text" name="alder" />
  <input type="submit" />
</form>

Dette er ren HTML og ikke PHP. Du skal have fx method="post" i form-feltet, og action="fil.php" skal henvise til den fil, der skal modtage formularinformationen. Når der så trykkes på en submitknap, udføres form-atributterne.

Formulardata'ene kan så hentes vha. ASP eller PHP osv, og i dette tilfælde er det fil.php, der skal modtage det. Jeg er ikke ligefrem PHP-programmør, men du skal skrive noget i retning af dette:

<?php echo $_POST["navn"]; ?>

for at hente data fra en formular. Den ovenstående formulars information kunne fx hentes sådan her:

Hej <?php echo $_POST["navn"]; ?>.<br />
Du er <?php echo $_POST["alder"]; ?> år gammel.

Dette ville skrive fx:
    Hej Peter.
    Du er 25 år gammel.
Avatar billede kennethv Nybegynder
24. oktober 2008 - 13:14 #5
Ok. Så jeg opretter en fil der hedder f.eks. fil.php og i den laver jeg mit kald til sql db?
Avatar billede majbom Novice
24. oktober 2008 - 13:20 #6
præcis :)
Avatar billede Slettet bruger
24. oktober 2008 - 13:35 #7
Jep. I filen fil.php skriver du SQL-forespørgslerne om at indsætte data til databasen. Og det du indsætter skal være <?php echo $_POST["navn"]; ?> fx.
Så ud fra det forrige eksempel:

Insert Into biler (maerke, topfart, farve) Values ('<?php echo $_POST["form_maerke"]; ?>', '<?php echo $_POST["form_topfart"]; ?>', '<?php echo $_POST["form_farve"]; ?>')

Er der ikke lige en erfaren PHP-programmør, der vil bekræfte, at dette er korrekt?


  // Steeven
Avatar billede majbom Novice
24. oktober 2008 - 13:50 #8
ville nok skrive det sådan her:

mysql_query("INSERT INTO biler (maerke, topfart, farve) VALUES ('$_POST[form_maerke], $_POST[form_topfart]', '$_POST[form_farve]') or die(mysql_error());
Avatar billede majbom Novice
24. oktober 2008 - 13:52 #9
rettelse:

mysql_query("INSERT INTO biler (maerke, topfart, farve) VALUES ('$_POST[form_maerke], $_POST[form_topfart]', '$_POST[form_farve]')") or die(mysql_error());
Avatar billede kennethv Nybegynder
24. oktober 2008 - 14:20 #10
Ok.

På min side er der indhold som jeg har hentet med:

$res = mssql_query("Select Employee, DateOfRetire, ComputerName, DateOfWarrantyEnded FROM StaffLeftCompany WHERE SecurityCode='".$_GET['id']."'");

Så det skal være en update hvor SecurityCode='".$_GET['id']."'")

Hvordan skal det gøres?
Avatar billede Slettet bruger
24. oktober 2008 - 14:56 #11
Hvis du skal opdatere et felt, skal du ikke bruge "Insert Into". Dette opretter en ny enhed i databasen.
For at redigere i et eksisterende felt, skal du bruge:

Update [tabelnavn] Set [felt1] = [værdi1] , [felt2] = [værdi2] ... Where [et bestemt felt] = '[en bestemt værdi]'

Så dvs., du skal skrive:

UPDATE StaffLeftCompany SET Employee = $_POST[employee] , DateOfRetire = $_POST[dateofretire] , ComputerName= $_POST[computername] , DateOfWarrantyEnded = $_POST[dateofwarrantyended] WHERE SecurityCode='$_POST[id]'

  // Steeven
Avatar billede Slettet bruger
24. oktober 2008 - 14:58 #12
Og her har jeg benyttet den skrivestil, som Spazz har foreslået.

Dine formularfelter skal så navngives: employee, dateofretire, ... osv.

  // Steeven
Avatar billede kennethv Nybegynder
13. oktober 2009 - 09:58 #13
Nogen må give et svar.
Avatar billede majbom Novice
13. oktober 2009 - 12:14 #14
kommer her, så må du selv vurdere...
Avatar billede Slettet bruger
13. oktober 2009 - 19:22 #15
Og et svar herfra.

  // Steeven
Avatar billede Slettet bruger
03. juli 2010 - 20:34 #16
Nu har nogen givet et svar, så kan vi få lukket spørgsmålet?
Avatar billede majbom Novice
04. november 2010 - 10:52 #17
kan vi lukke hér?
Avatar billede majbom Novice
24. maj 2012 - 10:11 #18
hold da op - 3,5 år alligevel

tfp...
Avatar billede kennethv Nybegynder
24. maj 2012 - 10:22 #19
Ja, sorry.

jeg har haft en del at see til de sidste par år.

:(
Avatar billede Slettet bruger
24. maj 2012 - 15:36 #20
No problem :)
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