Avatar billede saudoo Nybegynder
11. september 2003 - 21:25 Der er 48 kommentarer og
1 løsning

Slette fra en Database i mySQL

Hej Eksperter,
Jeg har et nyhedsscript, men i det er der ikke mulighed for at slette de nyheder man evt. har lavet.

Jeg ville lige spørge om i ikke kender et "script", som kan vise tilgængelige nyheder, og så fjerne dem, uden at man skal til at gå ind phpMyAdmin.

Jakob @ www.saudoo.tk
Avatar billede skovenborg Nybegynder
11. september 2003 - 21:33 #1
mysql_query("delete from nyheder where etellerandet='etellerandet'");
Avatar billede skovenborg Nybegynder
11. september 2003 - 21:33 #2
hvis hver nyhed fx har en id kan du skrive:
mysql_query("delete from nyheder where id=denidduvilslette");
Avatar billede saudoo Nybegynder
11. september 2003 - 21:34 #3
hmm... fatter ikke helt... hvad skal der står i etellerandet ?
Avatar billede saudoo Nybegynder
11. september 2003 - 21:35 #4
tjoo.. men hvordan laver jeg så sådan så den selv finder nyhederne, som jeg så kan slette ?
Avatar billede skovenborg Nybegynder
11. september 2003 - 21:36 #5
altså hvis du fx har en nyhedstabel ved navn nyheder hvor alle nyhedersoverskrifter er gemt som NyhedOverskrift, kan du fx slette en nyhed med overskriften "En overskrift" sådan:
mysql_query("delete from nyheder where NyhedOverskrift='En overskrift'");
Avatar billede saudoo Nybegynder
11. september 2003 - 21:37 #6
ok... men dette inddeler dem med ID...
Avatar billede skovenborg Nybegynder
11. september 2003 - 21:37 #7
har hver nyhed en ID??
Avatar billede saudoo Nybegynder
11. september 2003 - 21:38 #8
ja... en 1 og 2 og 3 osv.
Avatar billede skovenborg Nybegynder
11. september 2003 - 21:38 #9
okay - lidt sent på den ;)
Avatar billede saudoo Nybegynder
11. september 2003 - 21:39 #10
først... efter det ligger overskriften, som en celle eller hvad det hedder. Men de er delt op efte ID
Avatar billede saudoo Nybegynder
11. september 2003 - 21:39 #11
ja undskyld
Avatar billede skovenborg Nybegynder
11. september 2003 - 21:40 #12
Prøv at lave en ny php-fil som sletter nyheder på sådan cirka den her måde:
<?php
if (isset($_GET['id']))
{
  mysql_connect.....
  mysql_query("delete from nyheder where id=".$_GET['id']."");
  mysql_close();
}
?>
Avatar billede skovenborg Nybegynder
11. september 2003 - 21:41 #13
bagefter laver du en fil som printer alle nyheder ud og ved hver nyhed tilføjer du et link som hedder:
<a href="slet_nyhed.php?id=$ID">Slet nyhed</a>

Håber du forstår!!!
Avatar billede saudoo Nybegynder
11. september 2003 - 21:42 #14
Skal jeg bare skrive standart ved mysql_connect?.. altså med brugernavn kode osv.
Avatar billede skovenborg Nybegynder
11. september 2003 - 21:42 #15
jaja, hvad du nu plejer at gøre!!!
Avatar billede saudoo Nybegynder
11. september 2003 - 21:43 #16
hvordan ?

Kan du ikke skrive præcis hvad der skal stå i de forskellige filer... ?
Avatar billede skovenborg Nybegynder
11. september 2003 - 21:44 #17
det bliver lidt svært når jeg ikke ved hvad dine celler hedder, men vent lidt så laver jeg noget til dig :-)
Avatar billede saudoo Nybegynder
11. september 2003 - 21:44 #18
tak
Avatar billede skovenborg Nybegynder
11. september 2003 - 21:49 #19
Jeg ved ikke om det lige virker, men prøv det her (du skal selvfølgelig lige rette navnene til):
<html>
<head>
</head>
<body>
<?php
mysql_connect("localhost","brugernavn","password");
$result = mysql_query("select * from nyheder order by NyhedsID");
while ($row = mysql_fetch_array($result))
{
    $result_array[] = $row;
}
for ($i=0,$i<sizeof($result_array);$i++)
{
    echo $result_array[$i]['NyhedsOverskrift'].".......<a href=\"slet_nyhed?id=".$result_array[$i]['NyhedsID']."\">Slet Nyhed</a><p />";
}
mysql_close();
?>
</body>
</html>
Avatar billede saudoo Nybegynder
11. september 2003 - 21:50 #20
tak... ser lie..
Avatar billede skovenborg Nybegynder
11. september 2003 - 21:50 #21
Det skal så kombineres med det script jeg viste dig før:
<?php
if (isset($_GET['id']))
{
  mysql_connect.....
  mysql_query("delete from nyheder where NyhedsID=".$_GET['id']."");
  mysql_close();
}
?>
Avatar billede saudoo Nybegynder
11. september 2003 - 21:53 #22
Men hvordan skal man det.... ? Jeg er altså ikke super til PHP.. :D
Avatar billede saudoo Nybegynder
11. september 2003 - 21:54 #23
bare smækkes sammen de to scripts...?
Avatar billede saudoo Nybegynder
11. september 2003 - 21:55 #24
Sådan ?


<html>
<head>
</head>
<body>

<?php
if (isset($_GET['id']))
{
  mysql_connect("localhost","saudoo","jbp2809");
  mysql_query("delete from nyheder where NyhedsID=".$_GET['id']."");
  mysql_close();
}
?>


<?php
mysql_connect("localhost","saudoo","jbp2809");
$result = mysql_query("select * from nyheder order by NyhedsID");
while ($row = mysql_fetch_array($result))
{
    $result_array[] = $row;
}
for ($i=0,$i<sizeof($result_array);$i++)
{
    echo $result_array[$i]['NyhedsOverskrift'].".......<a href=\"slet_nyhed?id=".$result_array[$i]['NyhedsID']."\">Slet Nyhed</a><p />";
}
mysql_close();
?>
</body>
</html>
Avatar billede skovenborg Nybegynder
11. september 2003 - 21:55 #25
nej i det her tilfælde skal de være i hver deres fil, hvoraf den der indeholder slette-scriptet skal hedde slet_nyhed.php
Avatar billede saudoo Nybegynder
11. september 2003 - 21:55 #26
koderne er eksempler bare sådan :D
Avatar billede skovenborg Nybegynder
11. september 2003 - 21:56 #27
eller du kan kalde det hele for slet_nyhed.php - det vil måske virke
Avatar billede saudoo Nybegynder
11. september 2003 - 21:58 #28
Jeg er væk.... den kode du gav mig:


<html>
<head>
</head>
<body>
<?php
mysql_connect("localhost","brugernavn","password");
$result = mysql_query("select * from nyheder order by NyhedsID");
while ($row = mysql_fetch_array($result))
{
    $result_array[] = $row;
}
for ($i=0,$i<sizeof($result_array);$i++)
{
    echo $result_array[$i]['NyhedsOverskrift'].".......<a href=\"slet_nyhed?id=".$result_array[$i]['NyhedsID']."\">Slet Nyhed</a><p />";
}
mysql_close();
?>
</body>
</html>


Den skal i en side for sig selv. Men finder den selv ud af hvilke nyheder der er? Jeg kan ikke finde at den opretter forbindelse til nogen tabel !
Avatar billede skovenborg Nybegynder
11. september 2003 - 21:58 #29
undskyld du skal lige vælge din database også:
mysql_select_db("databasenavn");

Skal placeres lige under mysql_connect();
Avatar billede saudoo Nybegynder
11. september 2003 - 21:58 #30
ok... tak..
Avatar billede skovenborg Nybegynder
11. september 2003 - 22:00 #31
også en lille scriptfejl:
for ($i=0,$i<sizeof($result_array);$i++)
skal være:
for ($i=0;$i<sizeof($result_array);$i++)
Avatar billede saudoo Nybegynder
11. september 2003 - 22:00 #32
ok... der var også fejl ;)
Avatar billede saudoo Nybegynder
11. september 2003 - 22:05 #33
Prøv at se... det virker keine..
http://saudoo.frac.dk/slet_nyhed.php
Avatar billede skovenborg Nybegynder
11. september 2003 - 22:07 #34
hmmm, er du sikker på du har skrevet de rigtige navne til tabellerne. Kunne jeg se scriptet du bruger - havde også den fejl på et tidspunkt??
Avatar billede saudoo Nybegynder
11. september 2003 - 22:09 #35
Avatar billede skovenborg Nybegynder
11. september 2003 - 22:18 #36
prøv med det her:
<?php
if(!mysql_connect("host", "user", "pass"))
{
        print("Kunne ikke få forbindelse til mysql");
}
mysql_select_db("db");
$result = mysql_query("select title,id from news order by id");
while ($row = mysql_fetch_array($result))
{
    $result_array[] = $row;
}
  for ($i=0;$i<sizeof($result_array);$i++)
{
    echo $result_array[$i]['title'].".......<a href=\"slet_nyhed?id=".$result_array[$i]['id']."\">Slet Nyhed</a><p />";
}
mysql_close();
?>
Avatar billede saudoo Nybegynder
11. september 2003 - 22:24 #37
Så nu viser den dem... men den mangler at kunne slette!
Kan man ikke bruge denne linje til noet? :

DELETE FROM 'news' WHERE 'id' = '2' LIMIT 1
Avatar billede skovenborg Nybegynder
11. september 2003 - 22:26 #38
ja det ser sådan ud.
Avatar billede saudoo Nybegynder
11. september 2003 - 22:31 #39
Og så vel med en

$sql = DELETE FROM 'news'
$sql = WHERE 'id' = '2' LIMIT 1

ike? eller er jeg helt galt på den?
Avatar billede skovenborg Nybegynder
11. september 2003 - 22:32 #40
tjaa, den sletter nyheden med id'en 2. Du skal nok skrive noget som:
mysql_query("delete from news where id=".$_GET['id']."");
Avatar billede saudoo Nybegynder
11. september 2003 - 22:33 #41
nååå ja... tak
Avatar billede skovenborg Nybegynder
11. september 2003 - 22:35 #42
hov du skal ikke lave linkene sådan at der står:
href="

= DELETE FROM 'news'
= WHERE 'id' = '2' LIMIT 1

Hvis du har lavet den der slet_nyhed.php fil som jeg viste skal det blive:
href="slet_nyhed.php?id=2"
Avatar billede saudoo Nybegynder
11. september 2003 - 22:35 #43
<html>
<head>
</head>
<body>


<?php
if(!mysql_connect("xxxxxx", "xxxxxx", "xxxxxx"))
{
        print("Kunne ikke få forbindelse til mysql");
}
mysql_select_db("saudoo");
$result = mysql_query("select title,id from news order by id");
while ($row = mysql_fetch_array($result))
{
    $result_array[] = $row;
}
  for ($i=0;$i<sizeof($result_array);$i++)
{
    echo $result_array[$i]['title'].".......<a href=\"



mysql_query("delete from news where id=".$_GET['id']."");



".$result_array[$i]['id']."\">Slet Nyhed</a><p />";
}
mysql_close();
?>


</body>
</html>


Skal jeg skrive sådan? Jeg er altså helt væk...
Avatar billede skovenborg Nybegynder
11. september 2003 - 22:35 #44
og LIMIT behøver du ikke.
Avatar billede saudoo Nybegynder
11. september 2003 - 22:37 #45
men der er sq fejl. Den sletter ikke nyhederne når man trykker, der sker intet!

http://saudoo.frac.dk/slet_nyhed.php
Avatar billede skovenborg Nybegynder
11. september 2003 - 22:40 #46
Jeg havde nu også tænkt mig at det skulle se sådan ud:
<?php
if (isset($_GET['id']))
{
  mysql_connect("host", "user", "pass");
  mysql_select_db("db");
  mysql_query("delete from news where id=".$_GET['id']."");
  mysql_close();
}
if(!mysql_connect("host", "user", "pass"))
{
        print("Kunne ikke få forbindelse til mysql");
}
mysql_select_db("db");
$result = mysql_query("select title,id from news order by id");
while ($row = mysql_fetch_array($result))
{
    $result_array[] = $row;
}
  for ($i=0;$i<sizeof($result_array);$i++)
{
    echo $result_array[$i]['title'].".......<a href=\"slet_nyhed?id=".$result_array[$i]['id']."\">Slet Nyhed</a><p />";
}
mysql_close();
?>
Avatar billede saudoo Nybegynder
11. september 2003 - 22:44 #47
UUUUHHHH NU VIRKER DET... TAK.. skriv lige et spørgsmål så du kan få dine points.
Avatar billede skovenborg Nybegynder
11. september 2003 - 22:45 #48
pyha, glad for det virker nu :-)
Avatar billede saudoo Nybegynder
11. september 2003 - 22:56 #49
Det samme her!...  :D
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