Avatar billede woogoo Nybegynder
12. juni 2007 - 21:38 Der er 3 kommentarer

Update tekst i MySQL database via input felter i PHP fil

Hey eksperter

Jeg kunne godt tænke mig at vide hvordan jeg opdatere noget data i en MySQL tabel. Jeg har en tabel, hvor jeg loader nogen felter ud i nogen input felter. Jeg vil så kunne trykke "Submit" og det jeg har rettet i felterne, skal overskrive det gamle, altså oven i samme id!.. Kan det lade sig gøre? og hvordan?
Avatar billede jakobdo Ekspert
12. juni 2007 - 22:08 #1
Hurtigt eksempel:

<?php
//Filen kaldes f.eks. med: fil.php?id=1

if(is_numeric($_GET['id']))
{
    $id = intval($_GET['id']);
   
    //Skal vi opdatere data?
    if(isset($_POST['update']))
    {
        $navn = mysql_real_escape_string($_POST['navn']);
        $email = mysql_real_escape_string($_POST['email']);
        //osv...
        mysql_query("UPDATE tabel_navn SET navn = '".$navn."', email = '".email."' WHERE id = $id LIMIT 1");
    }
   
    $query = mysql_query("SELECT * FROM tabel_navn WHERE id = $id LIMIT 1");
    if(mysql_num_rows($query)==1)
    {
        $row = mysql_fetch_assoc($query);
        echo '<form action="fil.php?id=$id" method="post">';
       
        echo 'Navn: <input type="text" name="navn" value="'.$row['navn'].'" /><br />';
        echo 'Email: <input type="text" name="email" value="'.$row['email'].'" /><br />';
        //osv...
       
        echo '<input type="submit" name="update" value="Opdater data" /><br />';
        echo '</form>';
    }
}
Avatar billede woogoo Nybegynder
12. juni 2007 - 22:34 #2
Hmm.. mjaaa.. ved ikke lige hvor det skal sættes ind.. her er hele koden:


<html>
<head>
<script type="text/javascript" language="Javascript">
    function check_data(my_form){
   
    var problem = false; // Flag variable
   
    //validate the name
    if (my_form.navn.value == "") {
        alert("Du skal skrive dit navn!");
        my_form.fornavn.focus();
        problem = true;
    }   
    if (my_form.overskrift.value == ""){
        alert("Du skal skrive en overskrift!");
        my_form.mobil.focus();
        problem = true;
    }
    if (my_form.besked.value == ""){
        alert("Du skal skrive en besked!");
        my_form.email.focus();
        problem = true;
    }
    //Return true/false based upon problem
    if (problem){
        return false;
    }else{
        return true;
    }
} //End of function definition.

//-->
</script>
<?php
@include('config1.inc');


if(isset($_POST['Submit']))
{   
    if(!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $_POST['mail']))
    {            
            $mail1=FALSE;
            ?>           
            <script type="text/javascript" language="Javascript">
            alert("Din E-mail er ikke valid!");
            </script>
            <?php
                //echo "Din E-mail er ikke valid!<br>";
       
    }
    else
    {
            $mail1=TRUE;
    }
   
    if($mail1) {
   


if(is_numeric($_GET['id']))
{

    $id = intval($_GET['id']);
   
    //Skal vi opdatere data?
    if(isset($_POST['update']))
    {
        $navn = mysql_real_escape_string($_POST['navn']);
        $mail = mysql_real_escape_string($_POST['mail']);
        $overskrift = mysql_real_escape_string($_POST['overskrift']);
        $tekst = mysql_real_escape_string($_POST['tekst']);
        con_db();
        mysql_query("UPDATE logs SET navn = '".$navn."', mail = '".$mail."', overskrift = '".$overskrift."', tekst = '".$tekst."' WHERE id = $id LIMIT 1");
    }
   
    $query = mysql_query("SELECT * FROM logs WHERE id = $id LIMIT 1");
    if(mysql_num_rows($query)==1)
    {
        $row = mysql_fetch_assoc($query);
    ?>
<link href="css.css" rel="stylesheet" type="text/css">
</head>
<body><center><table style=\"border:1px dotted #000000\" cellspacing=\"0px\" cellpadding=\"0px\" width=\"500px\"><tr><td style="border:1px solid #000000" bgcolor='#d7d7d7' width="554px"><center>
<b>.:Logbog:.</b></center></td></tr>
</table><br />
<table class="maintable"><tr valign="top"><td>
<form action="logbog_ret.php?id=<?php echo $id ?>" onSubmit="return check_data(this)" method="post" name="form1" id="form1">
<center><font size="3px" style="font-weight:bold">Ret Logbogs-besked</font>
<table width="300">
<tr valign="top">
    <td id="left">
        <b>Navn:</b>
    </td>
    <td id="right">
        <input name="navn" type="text" id="navn" value="<?php echo $row['navn'] ?>"/></td>
</tr>
<tr valign="top">
    <td id="left">
        <b>E-mail:</b>
    </td>
    <td id="right">
        <input name="mail" maxlength="100" type="text" id="mail" value="<?php echo $row['mail'] ?>"/></td>
</tr>
<tr valign="top">
    <td id="left">
        <b>Overskrift:</b>
    </td>
    <td id="right">
        <input name="overskrift" type="text" id="overskrift" value="<?php echo $row['overskrift'] ?>" /></td>
</tr>
<tr valign="top">
    <td id="left">
        <b>Tekst:</b>
    </td>
    <td id="right">
        <textarea name="tekst" cols="30" rows="15" id="tekst"><?php echo $row['tekst'] ?></textarea>
    </td>
</tr>
<tr>
<td colspan="2"><center>
<input id="submitknap" type="submit" name="Submit" value="Submit" />

</center>
</td>
</tr>
</table>
<?php
close();
?>
<a href="logbog_show.php" target="_self">Gå til logbogen</a></center>
</form></td></tr></table></center>
<center>

   
    <?php
    }
}
   
    echo "<font style=\"font-size: 10px\">Logbogsbesked er rettet d. ".$dato." kl. ".$tid." <br>
    Din IP-Adresse er også logget som: ".$_SERVER['REMOTE_ADDR']." !<br></font>
    <a href=\"logbog_show.php\">Gå til Logbog</a> <br>";
    }else{
        echo $message."<br>";
        echo "<a href=\"logbog_show.php\">Gå til Logbog</a> <br>";
    }
}
?></center></body></html>
Avatar billede jakobdo Ekspert
13. juni 2007 - 08:56 #3
Og der stod jeg så af. Gider ikke det med at flette kode ind i eksisterende kode desværre.
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

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