Avatar billede plippert Nybegynder
08. maj 2005 - 13:33 Der er 13 kommentarer og
1 løsning

Kontrol over mysql-tabel

Jeg vil mægtig gerne have et script der kan slettet og redigere informationerne i min tabel.
Jeg vil gerne have det sådan så der ud for hver 'id' i tabellen (jeg har fundet ud af hvordan man viser dem), er et link der hedder slet og et der hedder redigér. 'Slet' sletter selvfølgelig og redigér henter informationer så jeg kan rette i dem.
Superfed ville det være hvis det var eksterne filer der håndterede det, så jeg bare skal indsætte linksene til funktionerne i mit nuværende script.

Kan nogen hjælpe mig?
Avatar billede Bjarne Novice
08. maj 2005 - 13:39 #1
Til at slette, kan du bruge DELETE i din query. fx mysql_query("DELETE FROM tabel WHERE id = '$et_eller_andet'");

Til at redigere, kan du bruge UPDATE. fx mysql_query("UPDATE tabel SET '$noget' = '$noget_andet' WHERE id = '$et_eller_andet'");
Avatar billede nizo Nybegynder
08. maj 2005 - 14:12 #2
Saa er det bare med at lave noget HTML der kam tackle det..
Avatar billede nizo Nybegynder
08. maj 2005 - 14:16 #3
Med HTML mener jeg en <form> eller hvis du vil paa en anden maade med links ex. laver du et link: slet.php?id=id og i php filen laver du bare mysql_query("DELETE FROM tabel WHERE id = '$_GET['id']'");
Avatar billede plippert Nybegynder
08. maj 2005 - 15:22 #4
mjaa. det er jeg umiddelbart klar over. Problemet er bare at jeg ikke er skidegod til at lave den slags!
Derfor ville jeg rigtig gerne give mine point til en der gider skrive scriptsne til mig...
Avatar billede Bjarne Novice
08. maj 2005 - 17:22 #5
Skal lige se om jeg får tid til at kode noget sammen, hvis du lige giver mig en oversigt på hvordan din mysql-tabel ser ud.
Avatar billede plippert Nybegynder
09. maj 2005 - 06:45 #6
#
# Tabelstruktur - nyheder
#

CREATE TABLE `nyheder` (
  `id` int(4) unsigned NOT NULL

auto_increment,
  `dato` varchar(20) NOT NULL

default '',
  `overskrift` varchar(50) NOT NULL

default '',
  `besked` longtext NOT NULL,
  PRIMARY KEY  (`id`,`id`)
) TYPE=MyISAM AUTO_INCREMENT=5 ;

Jeg har min config.php til connection.

Forløbig tak!
Avatar billede Bjarne Novice
09. maj 2005 - 19:08 #7
En simpel udgave, som kan slette og redigere. Hvis du fx vil slette indholdet af id 5 skal du skrive: /manage.php?id=5&action=delete

Hvis du vil redigere id 5: /manage.php?id=5&action=edit

manage.php:

<?php
$db = mysql_connect("host", "brugernavn", "adgangskode") or die(mysql_error());
mysql_select_db("database", $db) or die(mysql_error());

if($_GET['action'] AND $_GET['id']) {

if($_GET['action'] == "delete") {
$query = mysql_query("DELETE FROM nyheder WHERE id = '$_GET[id]'") or die(mysql_error());
echo 'Done!';
} elseif($_GET['action'] == "edit") {
$query = mysql_query("SELECT * FROM nyheder WHERE id = '$_GET[id]'") or die(mysql_error());
$row = mysql_fetch_row($query);
echo '<form method="post" action="'.$_SERVER[PHP_SELF].'">';
echo '<textarea name="text" rows="10" cols="30">'.$row[3].'</textarea><br />';
echo '<input type="hidden" value="'.$row[0].'" name="id">';
echo '<input type="submit" value="Go">';

echo '</form>';
}
} elseif($_POST['text']) {
$text = nl2br($_POST['text']);
$id = $_POST['id'];

mysql_query("UPDATE nyheder SET besked = '$text' WHERE id = '$id'") or die(mysql_error());
echo 'Done!';
}

?>

Håber det kan bruges:)
Avatar billede plippert Nybegynder
09. maj 2005 - 21:58 #8
Foreløbig ser det skide godt ud.
Jeg har selv kunnet finde ud af at tilføje lidt (meget lidt ;-), men jeg ville grne have det sådan så når jeg vælger redigér, så kan jeg både kan redigere dato, overskrift og selve beskeden.
Herudover kan jeg sq heller ikke selv overskue hvad jeg skal gøre for at både 'Rediger' og 'Slet' linkene vælger det id de står ud for...

Lidt kode:
Din manage.php med mine rettelser:
<? include "config.php"; ?>
<?php

if($_GET['action'] AND $_GET['id']) {

if($_GET['action'] == "delete") {
$query = mysql_query("DELETE FROM nyheder WHERE id = '$_GET[id]'") or die(mysql_error());
echo '<a href="tilfoej.php">Done!</a>';
} elseif($_GET['action'] == "edit") {
$query = mysql_query("SELECT * FROM nyheder WHERE id = '$_GET[id]'") or die(mysql_error());
$row = mysql_fetch_row($query);
echo '<form method="post" action="'.$_SERVER[PHP_SELF].'">';
echo '<textarea name="text" rows="10" cols="30">'.$row[3].'</textarea><br />';
echo '<input type="hidden" value="'.$row[0].'" name="id">';
echo '<input type="submit" value="Go">';

echo '</form>';
}
} elseif($_POST['text']) {
$text = nl2br($_POST['text']);
$id = $_POST['id'];

mysql_query("UPDATE nyheder SET besked = '$text' WHERE id = '$id'") or die(mysql_error());
echo '<a href="tilfoej.php">Done!</a>';
}

?>



Min adminside hvorfra der skal kunne redigeres og slettes.
<p class="format_news_dato" name="id"><b>ID:
            <?=$row_nyheder[id]?>
      </b>
            <i>            </i>
        </td>
      <td width="51" align="right" valign="top">


        <a href="manage.php?id=10&action=edit"><p>Redig&eacute;r
        </a></td>
    </tr>
    <tr>
      <td height="1"><span class="format_news_dato"><i>
        <?=$row_nyheder[dato]?>
      </i></span></td>
      <td width="51" align="right" valign="top"><a href="manage.php?id=10&action=delete">Slet</a></td>
    </tr>
    <tr>
      <td height="1" colspan="2"><p class="format_news"><b><?=$row_nyheder[overskrift]?></b></p></td>
    </tr>
    <tr>
      <td height="4" colspan="2"><p class="format_news"><?=$row_nyheder[besked]?></p></td>
    </tr>
  </table>
Avatar billede Bjarne Novice
09. maj 2005 - 22:21 #9
Kikker lige på det en gang i morgen
Avatar billede plippert Nybegynder
09. maj 2005 - 22:27 #10
Det er bare super. Tak.
Avatar billede Bjarne Novice
10. maj 2005 - 20:59 #11
manage.php:

if($_GET['action'] AND $_GET['id']) {

if($_GET['action'] == "delete") {
$query = mysql_query("DELETE FROM nyheder_help WHERE id = '$_GET[id]'") or die(mysql_error());
echo '<a href="tilfoej.php">Done!</a>';
} elseif($_GET['action'] == "edit") {
$query = mysql_query("SELECT * FROM nyheder_help WHERE id = '$_GET[id]'") or die(mysql_error());
$row = mysql_fetch_row($query);
echo '<form method="post" action="'.$_SERVER[PHP_SELF].'">';
echo '<input type="hidden" value="'.$row[0].'" name="id"><b>Dato:</b><br />';
echo '<input type="text" value="'.$row[1].'" name="date" size="40"><br /><b>Overskrift:</b><br />';
echo '<input type="text" value="'.$row[2].'" name="headline" size="40"><br /><b>Indhold:</b><br />';
echo '<textarea name="text" rows="10" cols="30">'.$row[3].'</textarea><br />';

echo '<input type="submit" value="Go">';

echo '</form>';
}
} elseif($_POST['text']) {
$text = nl2br($_POST['text']);
$date = $_POST['date'];
$headline = $_POST['headline'];
$id = $_POST['id'];

mysql_query("UPDATE nyheder_help SET dato = '$date', overskrift = '$headline', besked = '$text'  WHERE id = '$id'") or die(mysql_error());
echo '<a href="tilfoej.php">Done!</a>';
}

Til at vise de forskellige posts.

viewer.php:
//husk databaseforbindelse
$query = mysql_query("SELECT * FROM nyheder");

echo '<table border="1">';
while($row = mysql_fetch_array($query)) {
echo '<tr><td>'.$row['id'].'</td>';
echo '<td><a href="/editor.php?id='.$row['id'].'&action=delete">Slet</a></td>';
echo '<td><a href="/editor.php?id='.$row['id'].'&action=edit">Rediger</a></td></tr>';
}
echo '</table>';

Noget i den stil?
Avatar billede plippert Nybegynder
10. maj 2005 - 22:21 #12
Jeg tror ikke der i Ekspertens historie har været givet point ud der har været mere fortjente!
DET ER PERFEKT!!!

Send svar og du skal få points.
Avatar billede Bjarne Novice
11. maj 2005 - 08:34 #13
Du skal lige huske at ændre tabellen fra nyheder_help til nyheder:) Men det har du nok husket...
Avatar billede plippert Nybegynder
11. maj 2005 - 11:37 #14
det er rettet og det virker ganske som jeg ønskede det.
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