20. oktober 2003 - 16:56
Der er
35 kommentarer og 1 løsning
Hjælp til delete + edit i mySQL
Hejsa. Jeg har lavet så jeg kan oprette nyheder, sådan her smider jeg dem ind. $date = date("H:i - d/m"); mysql_query("INSERT INTO news (title,text,date, poster) VALUES ('".$_POST['title']."','".$_POST['text']."','$date','".$_POST['poster']."')"); header("location: news.php"); Selvfølgelig med en connect. Jeg vil meget gerne have at man kan slette og edit i nyhederne. Er der nogle som kan hjælpe med dette??
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
20. oktober 2003 - 17:16
#1
Det virker ikke hensigtsmæssigt at gemme datoen på den måde du gør der. Du skulle hellere bare bruge NOW() i et DATETIME felt og så hente det ud i det format du ønsker.
20. oktober 2003 - 17:17
#2
ok, detox. Men det var nu ikke det jeg gerne ville have hjælp med ;D
20. oktober 2003 - 17:18
#3
Nej, det var en sidebemærkning. Men ellers kan du henter posterne ud i en form. Rette dem eller slette dem og derefeter opdatere din tabel.
20. oktober 2003 - 17:20
#4
Hvordan ser tabelstrukturen ud?
20. oktober 2003 - 17:24
#5
id int(10) NOT NULL auto_increment, title varchar(100) NOT NULL, text text NOT NULL, poster varchar (50) NOT NULL PRIMARY KEY (id) Sådan hvis det er den du mener. Kan du give et eks. på at hente dem uf til en form og rette/slette i den??
20. oktober 2003 - 17:29
#6
Det kan jo laves på flere måder. Skal det være en Admin eller en Bruger ting? Har du evt. et link til siden?
20. oktober 2003 - 17:34
#7
Jeg vil lave det med admin/moderator/brugere.. Jeg har ikke et link i øjeblikket behøver du det? :D
20. oktober 2003 - 17:48
#8
Ja, det er jo ikke bare sådan lige at lave. Til en 'slette side' kunne du lave et udtræk med fx id, title og poster. Og så indsætte det i en tabel, hvor du bruger id som værdi i en checkbox. Til en 'rette side' kunne du lave det samme udtræk, men bare liste dem som links i stil med: ret_form.php?id=$id. så kunne du i ret_form.php hente data med netop den id og indsætte i en form. Så er det bare at rette og lave en update i din tabelrække med den pågældende værdi.
20. oktober 2003 - 17:53
#9
Forøvrigt kan jeg ikke se et 'date' felt i din tabelstruktur. Der må da mangle noget?
20. oktober 2003 - 18:02
#10
ja jeg glemte det...:D det er der
20. oktober 2003 - 18:16
#11
Hvordan får jeg fat i edit...... mysql_db_query($databas, "DELETE FROM nyheter WHERE id = '".$_GET['id']."'"); sådan der delete?
20. oktober 2003 - 18:25
#12
Næ, det tænkte jeg mere du skulle bruge, når du skulle rette og ikke slette. Jeg har lavet et eksempel på et script der kan slette poster: <? require 'connect.inc.php'; if (isset($_POST['submit']) && is_array($_POST['chk'])) { $arr = $_POST['chk']; foreach ($arr as $id) { mysql_query("DELETE FROM news WHERE id=$id"); } echo "Poster er slettet!"; } $res = mysql_query("SELECT id,title,poster FROM news"); if (mysql_num_rows($res)>0) { $form = "<table>\n"; $form .= "<form action='' method='post'>\n"; while ($row = mysql_fetch_assoc($res)) { $form .= "<tr><td><input name=\"chk[]\" type=\"checkbox\" value=\"".$row['id']."\" /></td>\n"; $form .= "<td>".$row['title']."</td><td>".$row['poster']."</td></tr>\n"; } $form .= "<tr><td><input name=\"submit\" type=\"submit\" value=\"Slet\" /></td></tr>"; $form .= "</form>\n"; $form .= "</table>"; echo $form; }else{ echo "Ingen poster fundet!"; } ?>
20. oktober 2003 - 21:35
#13
hvad er chk??
20. oktober 2003 - 21:44
#14
'chk' er navnet på det array der indeholder id's fra formen.
20. oktober 2003 - 21:58
#15
skal jeg ændre den?
20. oktober 2003 - 22:00
#16
Nej, det skulle da virke, som det er.
20. oktober 2003 - 22:07
#17
men hvordan kan jeg linke til så jeg ryger ind til at slette?
20. oktober 2003 - 22:12
#18
Ja, der er du jo nød til at sikre dig, hvem der er logget på, ift. hvad man skal have lov at slette. Det eksempel jeg har lavet er ment som en admin ting. Men selve linket er jo nemt at lave, hvis den fx hedder slet.php, vil linket se sådan ud: <a href='slet.php'>Slet</a> eller: echo "<a href='slet.php'>Slet</a>";
20. oktober 2003 - 22:17
#19
I første omgang er det vel nemmest, hvis det kun er admin/moderator, der får adgang til at slette og rette i nyhederne.
20. oktober 2003 - 22:19
#20
Det virker kan du også give et eksempel på edit?
20. oktober 2003 - 22:24
#21
Jeg det skal kun være moderator og admin der kan rette i nyhederne til at starte med
20. oktober 2003 - 22:37
#22
Ja, så vil jeg foreslå noget i den her stil til at liste nyhederne. Og så en side ('edit.php') til at rette i den enkelte nyhed: <? require 'connect.inc.php'; $res = mysql_query("SELECT id,title FROM news"); if (mysql_num_rows($res)>0) { $out = ""; while ($row = mysql_fetch_assoc($res)) { $out .= "<a href=\"edit.php?id=".$row['id']."\">".$row['title']."</a><br />"; } echo $out; } ?>
20. oktober 2003 - 22:44
#23
kan jeg ikke bare sætte den sammen med delete scripted?
20. oktober 2003 - 22:51
#24
Jeg behøver ikke visningen af nyhederne.... kun ligesom med delete scriptet..
20. oktober 2003 - 22:53
#25
eller er det også sådan du har gjort det i det øveste??
20. oktober 2003 - 23:06
#26
Jeg har brygget den her sammen, til at rette med: ---------- 'edit.php' ---------- <? require 'connect.inc.php'; if (isset($_POST['submit'])) { extract($_POST); mysql_query("UPDATE news SET title='$title', `text`='$text', poster='$poster' WHERE id=$id") or die(mysql_error()); header('Location: admin_edit.php'); } ?> <html> <head> <title>Edit Nyheder</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <? if (isset($_GET['id'])) { $res = mysql_query("SELECT * FROM news WHERE id=".$_GET['id']) or die(mysql_error()); if (mysql_num_rows($res)>0) { $row = mysql_fetch_assoc($res); $form = "<table border=\"1\">\n"; $form .= "<form action='' method='post'>\n"; $form .= "<tr><td><input name=\"title\" type=\"text\" value=\"".$row['title']."\" /></td></tr>\n"; $form .= "<tr><td><textarea name=\"text\" cols=\"\" rows=\"\">".$row['text']."</textarea></td></tr>\n"; $form .= "<tr><td><input name=\"poster\" type=\"text\" value=\"".$row['poster']."\" /></td></tr>\n"; $form .= "<input name=\"id\" type=\"hidden\" value=\"".$_GET['id']."\" />"; $form .= "<tr><td><input name=\"submit\" type=\"submit\" value=\"Ret\" /></td></tr>"; $form .= "</form>\n"; $form .= "</table>"; echo $form; } } ?> </body> </html> Så skal den anden bare hedde 'admin_edit.php'
20. oktober 2003 - 23:08
#27
OKay har lige testet det, jeg kan komme ind til siden edit og den henter også nyhederne, men hvis jeg trykker på sker der ikke andet end den skriver noget andet i proceslinien..
20. oktober 2003 - 23:14
#28
'admin_edit.php' ---------------- <? require 'connect.inc.php'; $res = mysql_query("SELECT id,title FROM news"); if (mysql_num_rows($res)>0) { $out = ""; while ($row = mysql_fetch_assoc($res)) { $out .= "<a href=\"edit.php?id=".$row['id']."\">".$row['title']."</a><br />"; } echo $out; } ?> Det er måske fordi du ikke har fået den navngivet rigtigt. Den skulle gerne opdatere dine rettelser i tabellen og gå tilbage til 'admin_edit.php'
20. oktober 2003 - 23:16
#29
så ikke din post før jeg postede den sidste, den anden skal hedde admin_edit, det var den som ikke virkede..
20. oktober 2003 - 23:17
#30
ok...
20. oktober 2003 - 23:38
#31
Kan du få det til at fungere? Jeg har lavet en lille update til 'edit.php': <? require 'connect.inc.php'; if (isset($_POST['submit'])) { extract($_POST); mysql_query("UPDATE news SET title='$title', `text`='$text', poster='$poster' WHERE id=$id") or die(mysql_error()); header('Location: test.php'); } ?> <html> <head> <title>Edit Nyheder</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <? if (isset($_GET['id'])) { $res = mysql_query("SELECT * FROM news WHERE id=".$_GET['id']) or die(mysql_error()); if (mysql_num_rows($res)>0) { $row = mysql_fetch_assoc($res); ?> <table border="1"> <form action='' method='post'> <tr><td><font color="#cc3300"><b>Titel:</b></font></td></tr> <tr><td><input name="title" type="text" value="<?=$row['title']?>" /></td></tr> <tr><td><font color="#cc3300"><b>Tekst:</b></font></td></tr> <tr><td><textarea name="text" cols="75" rows="20"><?=$row['text']?></textarea></td></tr> <tr><td><font color="#cc3300"><b>Poster:</b></font></td></tr> <tr><td><input name="poster" type="text" value="<?=$row['poster']?>" /></td></tr> <input name="id" type="hidden" value="<?=$_GET['id']?>" /> <tr><td><input name="submit" type="submit" value="Ret" /></td></tr> </form> </table> <? } } ?> </body> </html>
21. oktober 2003 - 03:28
#32
Ok, du får lige et svar med på vejen. c",)
22. oktober 2003 - 15:54
#33
Nu skal jeg lige have det på det rene, Jeg skal bruge 2 scripts ikke? edit_admin.php og delete.php, delete virker. edit_admin.php virker ikke, den får det hele frem men når jeg skal add det rettede siger den af siden ikke kan findes og prøver at gå til test.php
22. oktober 2003 - 16:04
#34
jeg har fundet ud af det. Men den skal også opdatere datoen den er opdateret. Hvordan får jeg det smidt ind?
22. oktober 2003 - 16:18
#35
det har jeg også lige fundet ud af
23. oktober 2003 - 01:11
#36
Det var godt. Du er ved at have fod på det c",)
Vi tilbyder markedets bedste kurser inden for webudvikling