Avatar billede akki Nybegynder
03. juni 2003 - 10:48 Der er 13 kommentarer

hjælp til at slette i mysql, ved hjælp af php script

som titlen nok afslører så drejer dette sig om at kunne slette og rette i mysql ud fra en php side.

jeg har sidet og leget med slette delen, men kan ikke rigtig få den til at virke.

jeg ville også blive glad, hvis nogen kunne hjælpe med at lave en rette funktion.

her er det script, som jeg indtil nu har bikset med.

ps. Kører med den nyeste  version af php

<?
$db = mysql_connect("localhost","xx","xx");
mysql_select_db("test",$db);
if(isset($_POST['sletknap']))
    {
    mysql_query("DELETE FROM bog WHERE id = '$sletknap'");
    echo "test ,$sletknap ";
    }
?>
<html>
<head>
<title>Min gæstebogt</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="css-script/bund.CSS" rel="stylesheet" type="text/css">
</head>
<style>
BODY {    scrollbar-3d-light-color:#ffffff;
          scrollbar-arrow-color:#000000;
          scrollbar-base-color:#000000;
          scrollbar-dark-shadow-color:#000000;
          scrollbar-face-color:#eceae9;
          scrollbar-highlight-color:#eceae9;
          scrollbar-shadow-color:#eceae9}
</style>
<body bgcolor="#eceae9" text="#000033" link="#000033">
<font size="2" face="Verdana, Arial, Helvetica, sans-serif">
<?
$db = mysql_connect("localhost","xx","xx");
mysql_select_db("test",$db);
if(isset($_POST['skriv']))
{
    $besked = str_replace("\n","<br>",$_POST['besked']);
    $navn = str_replace("\n","<br>",$_POST['navn']);
    $email = str_replace("\n","<br>",$_POST['email']);
    $dato_array = getdate();
    $dato = $dato_array["mday"] . "/". $dato_array["mon"]."-".$dato_array["year"];
mysql_query("INSERT INTO bog (navn, email, dato, besked) VALUES ('$navn','$email','$dato','$besked')") or die (mysql_error());
}

?>
</font>
<center>
  <form method=post action=<? echo $PHP_SELF; ?>>
    <font size="2" face="Verdana, Arial, Helvetica, sans-serif">
    <input type=hidden name=skriv value=1>
    Navn:
    <input type=text NAME=navn>
    <br>
    Email:
    <input type=text NAME=email>
    <br>
    <textarea name=besked Cols=30 rows=5></textarea>
    <br>
    <input type=submit value="send">
    </font>
  </form>
  <font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
  <br>
  </font>
  <table>
    <?
    if(empty($start)) {
$start = 0;
}
$limit = 5; // Antallet af rækker der skal vises per gang

$foresp = mysql_query("SELECT id, navn, email, dato, besked FROM bog ORDER BY id DESC LIMIT $start, $limit");
while($data =mysql_fetch_row($foresp)){
   
    print "<table border=0 width=500 bgcolor=#ac9d91><td>";
    print "<font size=2 color=#000033 face=Verdana, Arial, Helvetica, sans-serif>Skrevet af : <A HREF=\"mailto:$data[2]\">$data[1]</font>";
    print "<td ALIGN=right><font size=2 color=#000033 face=Verdana, Arial, Helvetica, sans-serif> d. $data[3]</font></td></tr>\n </font>";

    print "<table border=0 width=500 bgcolor=#cdd0bd><tr><td>\n";
    print "<font size=2 color=#000033 face=Verdana, Arial, Helvetica, sans-serif>$data[4]</font></td></tr>\n";
    print "<tr><td></td></tr>\n";
    print "</table><br>";
echo "<form name=form method=post action=bog.php>";
    echo "<input type=hidden name=sletknap value=$data[0]>";
    echo "<input type=submit name=knap value=Slet>";
//    echo "<input type=submit name=rediger value=$data[0]>";
    echo "</form>";
   
        }
        $query = mysql_query("SELECT id FROM bog");

if($start >= $limit) {
if($start < mysql_num_rows($query)+$limit) {
      echo '<a href="'.basename($PHP_SELF).'?start='.($start - $limit).'"><font size=2 color=#000033 face=Verdana, Arial, Helvetica, sans-serif>&laquo;&laquo; Tilbage</font></a> &nbsp; ';
}
}

if($start <= mysql_num_rows($query)-$limit) {
      echo '<a href="'.basename($PHP_SELF).'?start='.($start + $limit).'"><font size=2 color=#000033 face=Verdana, Arial, Helvetica, sans-serif>Frem &raquo;&raquo;</font></a>';
}
?>

  </table>
</center>
</body>
</html>
Avatar billede andy Nybegynder
03. juni 2003 - 10:56 #1
Prøv med:

mysql_query("DELETE FROM bog WHERE id = '$_POST[sletknap]'");
Avatar billede akki Nybegynder
03. juni 2003 - 10:59 #2
det virker.. takker..

inden jeg giver mine point.. kan du så måske hjælpe med en rette funktion.. Rette funktionen, var bla grunden til de mange point...
Avatar billede andy Nybegynder
03. juni 2003 - 11:20 #3
<?php

if (($_GET["ret"] && $_GET["id"]) || $_POST["ret"] == 1) {
    if ($_POST["ret"] == 1) {
        $besked = nl2br($besked);
        mysql_query("UPDATE bog SET navn='$_POST[navn]', email='$_POST[email]', besked='$POST[besked]' WHERE id='$_POST[id]'");
    }
    extract(mysql_query("SELECT id, navn, email, besked FROM bog WHERE id='$_GET[id]'"));
    $besked = br2nl($besked);
?>
<center>
  <form method=post action=<? echo $PHP_SELF; ?>>
    <font size="2" face="Verdana, Arial, Helvetica, sans-serif">
    <input type=hidden name=update value=1>
<input type=hidden name="id" value="<?php echo $id; ?>">
    Navn:
    <input type=text NAME=navn value="<?php echo $navn; ?>">
    <br>
    Email:
    <input type=text NAME=email value="<?php echo $email; ?>">
    <br>
    <textarea name=besked Cols=30 rows=5><?php echo $besked; ?></textarea>
    <br>
    <input type=submit name="submit" value="Ret">
    </font>
  </form>
</center>
<?php } ?>
Avatar billede akki Nybegynder
03. juni 2003 - 11:26 #4
hvordan kalder jeg så den funktion... altsår... hvordan skal jeg sætte det samme.. vil gerne havde at der som med slet knappen, kommer en rette knap lige ved siden af, så man ud fra hver indslag har mulighed for at enten rette eller slette.....

hvis det er, kan jeg kontaktes på mlj@cortexconsult.dk

mvh Martin
Avatar billede andy Nybegynder
03. juni 2003 - 11:43 #5
<?
$db = mysql_connect("localhost","xx","xx");
mysql_select_db("test",$db);
if ($_POST["slet"])
    {
    mysql_query("DELETE FROM bog WHERE id = '$_POST[id]'");
    }
?>
<html>
<head>
<title>Min gæstebogt</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="css-script/bund.CSS" rel="stylesheet" type="text/css">
</head>
<style>
BODY {    scrollbar-3d-light-color:#ffffff;
          scrollbar-arrow-color:#000000;
          scrollbar-base-color:#000000;
          scrollbar-dark-shadow-color:#000000;
          scrollbar-face-color:#eceae9;
          scrollbar-highlight-color:#eceae9;
          scrollbar-shadow-color:#eceae9}
</style>
<body bgcolor="#eceae9" text="#000033" link="#000033">
<font size="2" face="Verdana, Arial, Helvetica, sans-serif">
<?
$db = mysql_connect("localhost","xx","xx");
mysql_select_db("test",$db);
if(isset($_POST['skriv']))
{
    $besked = str_replace("\n","<br>",$_POST['besked']);
    $navn = str_replace("\n","<br>",$_POST['navn']);
    $email = str_replace("\n","<br>",$_POST['email']);
    $dato_array = getdate();
    $dato = $dato_array["mday"] . "/". $dato_array["mon"]."-".$dato_array["year"];
mysql_query("INSERT INTO bog (navn, email, dato, besked) VALUES ('$navn','$email','$dato','$besked')") or die (mysql_error());
}

?>
</font>
<?php

if ($_POST["ret"]) {
    if ($_POST["update"] == 1) {
        $besked = nl2br($besked);
        mysql_query("UPDATE bog SET navn='$_POST[navn]', email='$_POST[email]', besked='$POST[besked]' WHERE id='$_POST[id]'");
    }
    extract(mysql_query("SELECT id, navn, email, besked FROM bog WHERE id='$_POST[id]'"));
    $besked = br2nl($besked);
?>
<center>
  <form method=post action=<? echo $PHP_SELF; ?>>
    <font size="2" face="Verdana, Arial, Helvetica, sans-serif">
    <input type=hidden name=update value=1>
<input type=hidden name="id" value="<?php echo $id; ?>">
    Navn:
    <input type=text NAME=navn value="<?php echo $navn; ?>">
    <br>
    Email:
    <input type=text NAME=email value="<?php echo $email; ?>">
    <br>
    <textarea name=besked Cols=30 rows=5><?php echo $besked; ?></textarea>
    <br>
    <input type=submit name="ret" value="Ret">
    </font>
  </form>
</center>
<?php } ?>
<center>
  <form method=post action=<? echo $PHP_SELF; ?>>
    <font size="2" face="Verdana, Arial, Helvetica, sans-serif">
    <input type=hidden name=skriv value=1>
    Navn:
    <input type=text NAME=navn>
    <br>
    Email:
    <input type=text NAME=email>
    <br>
    <textarea name=besked Cols=30 rows=5></textarea>
    <br>
    <input type=submit value="send">
    </font>
  </form>
  <font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
  <br>
  </font>
  <table>
    <?
    if(empty($start)) {
$start = 0;
}
$limit = 5; // Antallet af rækker der skal vises per gang

$foresp = mysql_query("SELECT id, navn, email, dato, besked FROM bog ORDER BY id DESC LIMIT $start, $limit");
while($data =mysql_fetch_row($foresp)){
   
    print "<table border=0 width=500 bgcolor=#ac9d91><td>";
    print "<font size=2 color=#000033 face=Verdana, Arial, Helvetica, sans-serif>Skrevet af : <A HREF=\"mailto:$data[2]\">$data[1]</font>";
    print "<td ALIGN=right><font size=2 color=#000033 face=Verdana, Arial, Helvetica, sans-serif> d. $data[3]</font></td></tr>\n </font>";

    print "<table border=0 width=500 bgcolor=#cdd0bd><tr><td>\n";
    print "<font size=2 color=#000033 face=Verdana, Arial, Helvetica, sans-serif>$data[4]</font></td></tr>\n";
    print "<tr><td></td></tr>\n";
    print "</table><br>";
echo "<form name=form method=post action=bog.php>";
    echo "<input type=hidden name=id value=$data[0]>";
    echo "<input type=submit name=slet value=Slet>";
    echo "<input type=submit name=ret value="ret">";
    echo "</form>";
   
        }
        $query = mysql_query("SELECT id FROM bog");

if($start >= $limit) {
if($start < mysql_num_rows($query)+$limit) {
      echo '<a href="'.basename($PHP_SELF).'?start='.($start - $limit).'"><font size=2 color=#000033 face=Verdana, Arial, Helvetica, sans-serif>&laquo;&laquo; Tilbage</font></a> &nbsp; ';
}
}

if($start <= mysql_num_rows($query)-$limit) {
      echo '<a href="'.basename($PHP_SELF).'?start='.($start + $limit).'"><font size=2 color=#000033 face=Verdana, Arial, Helvetica, sans-serif>Frem &raquo;&raquo;</font></a>';
}
?>

  </table>
</center>
</body>
Avatar billede akki Nybegynder
03. juni 2003 - 11:58 #6
nu for jeg denne fejl


Warning: extract(): First argument should be an array in D:\Hjemmesider\bog2.php on line 48

Fatal error: Call to undefined function: br2nl() in D:\Hjemmesider\bog2.php on line 49


men ellers tror jeg at det virker...
Avatar billede andy Nybegynder
03. juni 2003 - 12:58 #7
ret extract(mysql_query("SELECT id, navn, email, besked FROM bog WHERE id='$_POST[id]'"));
til
extract(mysql_fetch_array(mysql_query("SELECT id, navn, email, besked FROM bog WHERE id='$_POST[id]'")));
Avatar billede akki Nybegynder
03. juni 2003 - 13:28 #8
ok.. det ser ud til at den virker... dog ikke helt endnu.. jeg kan rette nanv samt email, men teksten bliver ikke rettet.. dvs, den forsvinder helt.

en anden ting.. kan man ikke, når man har trykket ret, sådan at den opdatere, gører sådan at formen forsvinder....
Avatar billede tipsen Nybegynder
03. juni 2003 - 13:37 #9
br2nl() findes ikke - det gør nl2br() derimod.
Avatar billede akki Nybegynder
03. juni 2003 - 13:43 #10
den fejl har jeg rettet... mit scriptet ser sådan ud
kan bare ikke forstå hvorfor at når jeg vælger at rette, så for jeg fint selve beskeden med, men når jeg så vil gemme den, så for jeg slet ikke noget af selve beskeden med, kun navn og email.

den anden ting er, kan man ikke gører sådan at kun den ene form bliver vist ??

her er scriptet:

<?
$db = mysql_connect("localhost","xx","xx");
mysql_select_db("test",$db);
if ($_POST["slet"])
    {
    mysql_query("DELETE FROM bog WHERE id = '$_POST[id]'");
    }
?>
<html>
<head>
<title>Min gæstebogt</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="css-script/bund.CSS" rel="stylesheet" type="text/css">
</head>
<style>
BODY {    scrollbar-3d-light-color:#ffffff;
          scrollbar-arrow-color:#000000;
          scrollbar-base-color:#000000;
          scrollbar-dark-shadow-color:#000000;
          scrollbar-face-color:#eceae9;
          scrollbar-highlight-color:#eceae9;
          scrollbar-shadow-color:#eceae9}
</style>
<body bgcolor="#eceae9" text="#000033" link="#000033">
<font size="2" face="Verdana, Arial, Helvetica, sans-serif">
<?
$db = mysql_connect("localhost","xx","xx");
mysql_select_db("test",$db);
if(isset($_POST['skriv']))
{
    $besked = str_replace("\n","<br>",$_POST['besked']);
    $navn = str_replace("\n","<br>",$_POST['navn']);
    $email = str_replace("\n","<br>",$_POST['email']);
    $dato_array = getdate();
    $dato = $dato_array["mday"] . "/". $dato_array["mon"]."-".$dato_array["year"];
mysql_query("INSERT INTO bog (navn, email, dato, besked) VALUES ('$navn','$email','$dato','$besked')") or die (mysql_error());
}

?>

</font>
<?php

if ($_POST["ret"]) {
    if ($_POST["update"] == 1) {
        $besked = nl2br($besked);
        mysql_query("UPDATE bog SET navn='$_POST[navn]', email='$_POST[email]', besked='$POST[besked]' WHERE id='$_POST[id]'");
    }
    extract(mysql_fetch_array(mysql_query("SELECT id, navn, email, besked FROM bog WHERE id='$_POST[id]'")));
  $besked = nl2br($besked);
?>
<center>
  <form method=post action=<? echo $PHP_SELF; ?>>
    <font size="2" face="Verdana, Arial, Helvetica, sans-serif">
    <input type=hidden name=update value=1>
<input type=hidden name="id" value="<?php echo $id; ?>">
    Navn:
    <input type=text NAME=navn value="<?php echo $navn; ?>">
    <br>
    Email:
    <input type=text NAME=email value="<?php echo $email; ?>">
    <br>
    <textarea name=besked Cols=30 rows=5><?php echo $besked; ?></textarea>
    <br>
    <input type=submit value="ret">
    </font>
  </form>
</center>
<?php } ?>



<center>
  <form method=post action=<? echo $PHP_SELF; ?>>
    <font size="2" face="Verdana, Arial, Helvetica, sans-serif">
    <input type=hidden name=skriv value=1>
    Navn:
    <input type=text NAME=navn>
    <br>
    Email:
    <input type=text NAME=email>
    <br>
    <textarea name=besked Cols=30 rows=5></textarea>
    <br>
    <input type=submit value="send">
    </font>
  </form>
  <font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
  <br>
  </font>
  <table>
    <?
    if(empty($start)) {
$start = 0;
}
$limit = 5; // Antallet af rækker der skal vises per gang

$foresp = mysql_query("SELECT id, navn, email, dato, besked FROM bog ORDER BY id DESC LIMIT $start, $limit");
while($data =mysql_fetch_row($foresp)){
   
    print "<table border=0 width=500 bgcolor=#ac9d91><td>";
    print "<font size=2 color=#000033 face=Verdana, Arial, Helvetica, sans-serif>Skrevet af : <A HREF=\"mailto:$data[2]\">$data[1]</font>";
    print "<td ALIGN=right><font size=2 color=#000033 face=Verdana, Arial, Helvetica, sans-serif> d. $data[3]</font></td></tr>\n </font>";

    print "<table border=0 width=500 bgcolor=#cdd0bd><tr><td>\n";
    print "<font size=2 color=#000033 face=Verdana, Arial, Helvetica, sans-serif>$data[4]</font></td></tr>\n";
    print "<tr><td></td></tr>\n";
    print "</table><br>";
echo "<form name=form method=post action=bog2.php >";
    echo "<input type=hidden name=id value=$data[0]>";
    echo "<input type=submit name=slet value=Slet>";
        echo "<input type=submit name=ret value=ret>";
    echo "</form>";
   
        }
        $query = mysql_query("SELECT id FROM bog");

if($start >= $limit) {
if($start < mysql_num_rows($query)+$limit) {
      echo '<a href="'.basename($PHP_SELF).'?start='.($start - $limit).'"><font size=2 color=#000033 face=Verdana, Arial, Helvetica, sans-serif>&laquo;&laquo; Tilbage</font></a> &nbsp; ';
}
}

if($start <= mysql_num_rows($query)-$limit) {
      echo '<a href="'.basename($PHP_SELF).'?start='.($start + $limit).'"><font size=2 color=#000033 face=Verdana, Arial, Helvetica, sans-serif>Frem &raquo;&raquo;</font></a>';
}
?>

  </table>
</center>
</body>
Avatar billede sostack Nybegynder
03. juni 2003 - 14:13 #11
Her har i en br2nl() function:
<?php
function br2nl($teksten)
{
$teksten = eregi_replace("<br />", "\n", $teksten);
return $teksten;
}
?>

//sostack
Avatar billede tipsen Nybegynder
03. juni 2003 - 14:16 #12
sostack: Det er vigtigt at nl2br() ikke erstatter \n med <br />, men beholder \n - dvs. hvis man først har brugt nl2br() den ene vej er det kun nødvendigt at slette <br /> for at komme tilbage. Derudover vil det nok være hurtigere med:

<?php
function br2nl($teksten) {
  return str_replace('<br />', "\n", $teksten);
}
?>
Avatar billede andy Nybegynder
03. juni 2003 - 19:52 #13
hehe, anede ikke om der fandtes en br2nl. Rent gæt, åbenbart forkert LOL
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