Avatar billede nicocarlos Nybegynder
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??
Avatar billede detox Nybegynder
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.
Avatar billede nicocarlos Nybegynder
20. oktober 2003 - 17:17 #2
ok, detox. Men det var nu ikke det jeg gerne ville have hjælp med ;D
Avatar billede detox Nybegynder
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.
Avatar billede detox Nybegynder
20. oktober 2003 - 17:20 #4
Hvordan ser tabelstrukturen ud?
Avatar billede nicocarlos Nybegynder
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??
Avatar billede detox Nybegynder
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?
Avatar billede nicocarlos Nybegynder
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
Avatar billede detox Nybegynder
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.
Avatar billede detox Nybegynder
20. oktober 2003 - 17:53 #9
Forøvrigt kan jeg ikke se et 'date' felt i din tabelstruktur. Der må da mangle noget?
Avatar billede nicocarlos Nybegynder
20. oktober 2003 - 18:02 #10
ja jeg glemte det...:D det er der
Avatar billede nicocarlos Nybegynder
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?
Avatar billede detox Nybegynder
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!";
}
?>
Avatar billede nicocarlos Nybegynder
20. oktober 2003 - 21:35 #13
hvad er chk??
Avatar billede detox Nybegynder
20. oktober 2003 - 21:44 #14
'chk' er navnet på det array der indeholder id's fra formen.
Avatar billede nicocarlos Nybegynder
20. oktober 2003 - 21:58 #15
skal jeg ændre den?
Avatar billede detox Nybegynder
20. oktober 2003 - 22:00 #16
Nej, det skulle da virke, som det er.
Avatar billede nicocarlos Nybegynder
20. oktober 2003 - 22:07 #17
men hvordan kan jeg linke til så jeg ryger ind til at slette?
Avatar billede detox Nybegynder
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>";
Avatar billede detox Nybegynder
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.
Avatar billede nicocarlos Nybegynder
20. oktober 2003 - 22:19 #20
Det virker kan du også give et eksempel på edit?
Avatar billede nicocarlos Nybegynder
20. oktober 2003 - 22:24 #21
Jeg det skal kun være moderator og admin der kan rette i nyhederne til at starte med
Avatar billede detox Nybegynder
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;
}
?>
Avatar billede nicocarlos Nybegynder
20. oktober 2003 - 22:44 #23
kan jeg ikke bare sætte den sammen med delete scripted?
Avatar billede nicocarlos Nybegynder
20. oktober 2003 - 22:51 #24
Jeg behøver ikke visningen af nyhederne....
kun ligesom med delete scriptet..
Avatar billede nicocarlos Nybegynder
20. oktober 2003 - 22:53 #25
eller er det også sådan du har gjort det i det øveste??
Avatar billede detox Nybegynder
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'
Avatar billede nicocarlos Nybegynder
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..
Avatar billede detox Nybegynder
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'
Avatar billede nicocarlos Nybegynder
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..
Avatar billede nicocarlos Nybegynder
20. oktober 2003 - 23:17 #30
ok...
Avatar billede detox Nybegynder
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>
Avatar billede detox Nybegynder
21. oktober 2003 - 03:28 #32
Ok, du får lige et svar med på vejen. c",)
Avatar billede nicocarlos Nybegynder
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
Avatar billede nicocarlos Nybegynder
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?
Avatar billede nicocarlos Nybegynder
22. oktober 2003 - 16:18 #35
det har jeg også lige fundet ud af
Avatar billede detox Nybegynder
23. oktober 2003 - 01:11 #36
Det var godt. Du er ved at have fod på det c",)
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