/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
slet mysql post
Fra : Peter Nicolaj


Dato : 30-10-08 23:52

Hej jeg kunne godt bruge lidt hjælp til at få lavet et link(s),
der kan slette poster i en mysql database. Jeg har nedenstående
script som printer/viser nogle indlæg fra en gæstebog. For at
kunne slette urelevante indlæg, vil jeg gerne have et "slet" link
i linie 7, så dette vises ud fra hver kolonne. Går ud fra linket
skal refere til et "slet_post.php - et eller andet i den stil"
php dokument. Men det ville være godt hvis man bliver på samme
side når man sletter og at siden samtidig opdateres.

0 echo '<tr>';
1 echo '<td style="width:200px">' . $row[name] . '</td>';
2 echo '<td style="width:300px">' . $row[email] . '</td>';
3 echo '<td style="width:40px">' . $row[comments] . '</td>';
4 echo '<td style="width:40px">' . $row[time] . '</td>';
5
6 echo '</tr>';
7
8 }
9 echo '</table>';


Når jeg nu er ved det har jeg også en brug for man kan sortere
efter indlæg. Altså nogle links i toppen( eks. navn, dato,
osv...), så hvis nogen kender et sted jeg kan blive klogere på
dette???

På forhånd tak...

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Stig Sørensen (31-10-2008)
Kommentar
Fra : Stig Sørensen


Dato : 31-10-08 11:46

On 30 Okt., 23:52, Peter Nicolaj <peternico...@hotmail.com> wrote:
> Hej jeg kunne godt bruge lidt hjælp til at få lavet et link(s),
> der kan slette poster i en mysql database. Jeg har nedenstående
> script som printer/viser nogle indlæg fra en gæstebog. For at
> kunne slette urelevante indlæg, vil jeg gerne have et "slet" link
> i linie 7, så dette vises ud fra hver kolonne. Går ud fra linket
> skal refere til et "slet_post.php - et eller andet i den stil"
> php dokument. Men det ville være godt hvis man bliver på samme
> side når man sletter og at siden samtidig opdateres.
>
> 0 echo '<tr>';
> 1 echo '<td style="width:200px">' . $row[name] . '</td>';
> 2 echo '<td style="width:300px">' . $row[email] . '</td>';
> 3 echo '<td style="width:40px">' . $row[comments] . '</td>';
> 4 echo '<td style="width:40px">' . $row[time] . '</td>';
> 5
> 6 echo '</tr>';
> 7
> 8 }
> 9 echo '</table>';


Sådan ganske kort lidt som du nemt kan brygge videre på, hvis du har
bare en smule erfaring:

Du skal hive indlæggets ID ud (går stærkt ud fra du har en 'id' row
sat som primary key i din database).

Feks:

echo 'td stye="width:40px"><a href="slet_post.php?id=' .
$row['id'] .'" title="Slet denne besked">Slet</a></td>';

Det vil så give et link som: ditdomæne.dk/slet_post.php?id=34 (hvis vi
antager vi trykker på beskeden med id 34).

slet_post.php skal jo så indeholde en funktion der tjekker om du er
logget ind, feks. med $_SESSION.
Hvis logget ind så skal den bruge id'et, feks noget a la:

if(isset($_GET['id'])) {
$id = (int)($_GET['id']);

//
// MYSQL DELTE kode hvor du bruger WHERE = `$id`
//
header("Location: index.php");
exit;

}


Det samme kan naturligvis gøres på selvsamme side (index.php), det
kræver blot et ekstra if-tjek.


Håber det kan bruges..

Mvh
Stig

Peter Nicolaj (02-11-2008)
Kommentar
Fra : Peter Nicolaj


Dato : 02-11-08 19:19

Stig Sørensen wrote in dk.edb.internet.webdesign.serverside.php:
> On 30 Okt., 23:52, Peter Nicolaj <peternico...@hotmail.com> wrote:
> > Hej jeg kunne godt bruge lidt hjælp til at få lavet et link(s),
> > der kan slette poster i en mysql database. Jeg har nedenstående
> > script som printer/viser nogle indlæg fra en gæstebog. For at
> > kunne slette urelevante indlæg, vil jeg gerne have et "slet" link
> > i linie 7, så dette vises ud fra hver kolonne. Går ud fra linket
> > skal refere til et "slet_post.php - et eller andet i den stil"
> > php dokument. Men det ville være godt hvis man bliver på samme
> > side når man sletter og at siden samtidig opdateres.
> >
> > 0 echo '<tr>';
> > 1 echo '<td style="width:200px">' . $row[name] . '</td>';
> > 2 echo '<td style="width:300px">' . $row[email] . '</td>';
> > 3 echo '<td style="width:40px">' . $row[comments] . '</td>';
> > 4 echo '<td style="width:40px">' . $row[time] . '</td>';
> > 5
> > 6 echo '</tr>';
> > 7
> > 8 }
> > 9 echo '</table>';
>
>
> Sådan ganske kort lidt som du nemt kan brygge videre på, hvis du har
> bare en smule erfaring:
>
> Du skal hive indlæggets ID ud (går stærkt ud fra du har en 'id' row
> sat som primary key i din database).
>
> Feks:
>
> echo 'td stye="width:40px"><a href="slet_post.php?id=' .
> $row['id'] .'" title="Slet denne besked">Slet</a></td>';
>
> Det vil så give et link som: ditdomæne.dk/slet_post.php?id=34 (hvis vi
> antager vi trykker på beskeden med id 34).
>
> slet_post.php skal jo så indeholde en funktion der tjekker om du er
> logget ind, feks. med $_SESSION.
> Hvis logget ind så skal den bruge id'et, feks noget a la:
>
> if(isset($_GET['id'])) {
> $id = (int)($_GET['id']);
>
> //
> // MYSQL DELTE kode hvor du bruger WHERE = `$id`
> //
> header("Location: index.php");
> exit;
>
> }
>
>
> Det samme kan naturligvis gøres på selvsamme side (index.php), det
> kræver blot et ekstra if-tjek.
>
>
> Håber det kan bruges..
>
> Mvh
> Stig


Har prøvet mig lidt frem med dit eksempel, men desværre uden den store
succces.

Jeg har ikke login, kommer måske på senere.

Er det muligt at få dig til at skrive scriptet her, som det vil se ud,
hvis det hele er skrevet i index.php? Ja jeg har ID som primary key i din
databasen.

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Stig Sørensen (03-11-2008)
Kommentar
Fra : Stig Sørensen


Dato : 03-11-08 04:26

On Nov 2, 7:19 pm, Peter Nicolaj <peternico...@hotmail.com> wrote:

> Har prøvet mig lidt frem med dit eksempel, men desværre uden den store
> succces.
>
> Jeg har ikke login, kommer måske på senere.
>
> Er det muligt at få dig til at skrive scriptet her, som det vil se ud,
> hvis det hele er skrevet i index.php? Ja jeg har ID som primary key i din
> databasen.


Ok, har hurtigt lige sat det samme sådan som jeg ville bruge det,
bemærk jeg ikke er prof. PHP programmør, så alt med forbehold:

------------------------------------------------
http://pastebin.com/f51f9174a
------------------------------------------------
------------------------------------------------
<?php

function del_post($id) {
   if($id == 0) {
      die("Ikke gyldigt ID..");
   }
   echo "Sletter besked {$id}"; // Udskift her med MYSQL DELETE
funktion, WHERE = $id
//    header("Location: index.php"); // Redirecter til din gæstebog igen
efter sletning. Fjern kommentar når alt virker.
}


if((isset($_GET['action'])) && (isset($_GET['id']))) {
   switch($_GET['action']) {
      case "del":
         $id = $_GET['id'];
         $id = (int)$id;
         del_post($id);
         break;
      default:
         die("Du har ikke angivet en korrekt handling (action=X)");
   }

}
?>
----------------------------------
----------------------------------

Så skal dine links være: .php?action=del&id=24 - feks.

Jeg har valgt at bruge en switch, hvis nu du skulle udbygge din
gæstebog til at kunne tage backup eller ligende, kunne det hurtigt
implemteres feks. ?action=backup&id=24 - og en funktion der tager sig
af at lave en backup.

Men om det er den bedste måde, ved jeg ikke, blot sådanne som jeg
ville lave det, men den ringe viden jeg nu har inden for PHP.

Håber det kan bruges..

Stig Johansen (03-11-2008)
Kommentar
Fra : Stig Johansen


Dato : 03-11-08 16:03

Stig Sørensen wrote:

> Men om det er den bedste måde, ved jeg ikke, blot sådanne som jeg
> ville lave det, men den ringe viden jeg nu har inden for PHP.

Jeg har heller ikke den voldsomme interesse i PHP.
Har det noget med vores navn at gøre ?;)

Men den funktionalitet Peter efterspørger ville jeg, hvis det var min
opgave, lave med lidt Javascript (XMLHTTPRequest aka Ajax), krydret med
lidt eventhandlers/DOM handling m.v., der kan ordne delete/sort osv. i en
<table>.

Det er nok mere ovre i clientside gruppen.

--
Med venlig hilsen
Stig Johansen

Peter Nicolaj (05-11-2008)
Kommentar
Fra : Peter Nicolaj


Dato : 05-11-08 20:03

Stig Johansen wrote in dk.edb.internet.webdesign.serverside.php:
> Stig Sørensen wrote:
>
> > Men om det er den bedste måde, ved jeg ikke, blot sådanne som jeg
> > ville lave det, men den ringe viden jeg nu har inden for PHP.
>
> Jeg har heller ikke den voldsomme interesse i PHP.
> Har det noget med vores navn at gøre ?;)
>
> Men den funktionalitet Peter efterspørger ville jeg, hvis det var min
> opgave, lave med lidt Javascript (XMLHTTPRequest aka Ajax), krydret med
> lidt eventhandlers/DOM handling m.v., der kan ordne delete/sort osv. i
en
> <table>.
>
> Det er nok mere ovre i clientside gruppen.
>
> --
> Med venlig hilsen
> Stig Johansen


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Peter Nicolaj (05-11-2008)
Kommentar
Fra : Peter Nicolaj


Dato : 05-11-08 20:05

Tak for hjælpen Stig,

jeg har prøvet mig med dit eksempel, men desværre er det staige ikke
lykkedes.

Fandt i øvrigt dette eks:
http://www.phpsimple.net/mysql_delete_record.html

Så kan det vist ikke være mere enket at stille op, så det nok bare mig
der ser mig blind, siden jeg ikke får det til at virke.

Venligst Peter

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Stig Sørensen (06-11-2008)
Kommentar
Fra : Stig Sørensen


Dato : 06-11-08 10:26

On Nov 5, 8:05 pm, Peter Nicolaj <peternico...@hotmail.com> wrote:
> Tak for hjælpen Stig,
>
> jeg har prøvet mig med dit eksempel, men desværre er det staige ikke
> lykkedes.
>
> Fandt i øvrigt dette eks:http://www.phpsimple.net/mysql_delete_record.html
>
> Så kan det vist ikke være mere enket at stille op, så det nok bare mig
> der ser mig blind, siden jeg ikke får det til at virke.
>
> Venligst Peter

Så prøver vi da bare igen


--------------------------------------------
--------------------------------------------
<?php

function del_post($id) {
if($id == 0) {
         die("Ikke gyldigt ID..");
}
$sql = mysql_query("DELETE FROM `DATABASE`.`TABEL` WHERE `id`
= {$id} LIMIT 1");
      if(!$sql) {
         die("Kunne ikke slette fra databasen: " . mysql_error());
      } else {
         header("Location: index.php");
         exit();
      }

}

if((isset($_GET['action'])) && (isset($_GET['id']))) {
switch($_GET['action']) {
case "del":
$id = $_GET['id'];
$id = (int)$id;
del_post($id);
break;
default:
die("Du har ikke angivet en korrekt handling
(action=X)");
}

}

?>
--------------------------------------------
--------------------------------------------

I MYSQL DELETE sætningen skal DATABASE udskiftes med databasens navn,
TABEL med databasetabellens navn, samt ved "header("Location:
index.php")" - kan du naturligvis selv angive hvilken side der skal
redirectes til.

Det burde virke.

Ellers kom med fejlmeddelelse - så er det nemmere at hjælpe.

Peter Nicolaj (08-11-2008)
Kommentar
Fra : Peter Nicolaj


Dato : 08-11-08 13:33

Stig Sørensen wrote in dk.edb.internet.webdesign.serverside.php:
> On Nov 5, 8:05 pm, Peter Nicolaj <peternico...@hotmail.com> wrote:
> > Tak for hjælpen Stig,
> >
> > jeg har prøvet mig med dit eksempel, men desværre er det staige ikke
> > lykkedes.
> >
> > Fandt i øvrigt dette eks:http://www.phpsimple.net/mysql_delete_record.html
> >
> > Så kan det vist ikke være mere enket at stille op, så det nok bare mig
> > der ser mig blind, siden jeg ikke får det til at virke.
> >
> > Venligst Peter
>
> Så prøver vi da bare igen
>
>
> --------------------------------------------
> --------------------------------------------
> <?php
>
> function del_post($id) {
> if($id == 0) {
>          die("Ikke gyldigt ID..");
> }
> $sql = mysql_query("DELETE FROM `DATABASE`.`TABEL` WHERE `id`
> = {$id} LIMIT 1");
>       if(!$sql) {
>          die("Kunne ikke slette fra databasen: " . mysql_error());
>       } else {
>          header("Location: index.php");
>          exit();
>       }
>
> }
>
> if((isset($_GET['action'])) && (isset($_GET['id']))) {
> switch($_GET['action']) {
> case "del":
> $id = $_GET['id'];
> $id = (int)$id;
> del_post($id);
> break;
> default:
> die("Du har ikke angivet en korrekt handling
> (action=X)");
> }
>
> }
>
> ?>
> --------------------------------------------
> --------------------------------------------
>
> I MYSQL DELETE sætningen skal DATABASE udskiftes med databasens navn,
> TABEL med databasetabellens navn, samt ved "header("Location:
> index.php")" - kan du naturligvis selv angive hvilken side der skal
> redirectes til.
>
> Det burde virke.
>
> Ellers kom med fejlmeddelelse - så er det nemmere at hjælpe.


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Peter Nicolaj (08-11-2008)
Kommentar
Fra : Peter Nicolaj


Dato : 08-11-08 13:34

Jamen jamen så lykkedes det jo alligevel.

Det var dejligt, tusind tak for hjælpen...

Peter

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Søg
Reklame
Statistik
Spørgsmål : 177580
Tips : 31968
Nyheder : 719565
Indlæg : 6409081
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste