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>«« Tilbage</font></a> '; } } 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 »»</font></a>'; } ?> </table> </center> </body> </html>
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
Prøv med: mysql_query("DELETE FROM bog WHERE id = '$_POST[sletknap]'");
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...
<?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 } ?>
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
<? $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>«« Tilbage</font></a> '; } } 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 »»</font></a>'; } ?> </table> </center> </body>
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...
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]'")));
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....
br2nl() findes ikke - det gør nl2br() derimod.
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>«« Tilbage</font></a> '; } } 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 »»</font></a>'; } ?> </table> </center> </body>
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
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); } ?>
03. juni 2003 - 19:52
#13
hehe, anede ikke om der fandtes en br2nl. Rent gæt, åbenbart forkert LOL
Vi tilbyder markedets bedste kurser inden for webudvikling