Gå til innhold

Php/Mysql - Slette artikkel som er oppramset (while)


Anbefalte innlegg

Heisann! Jeg var litt usikker på hvor denne topicen skulle, den inneholder jo litt av hvert, så føl fri til å flytt den (om du er moderator)

 

Så til problemet mitt. Jeg driver nemlig og pusler med et lite "cms" system, og i den forbindelse med publisering av artikler (på veldig enkelt nivå vel og merke), osv. Nå har jeg da kommet til det punktet hvor jeg vil gjøre det mulig å slette artikler.

 

Det jeg da gjorde, var at jeg hentet tittelene på alle artiklene, og i "while" loopen innkluderte jeg en link tag, med en variabel. Greit vanskelig å forklare, men hovedgreia var at du skulle kunne trykke på en tittel (som var loopa), og dermed slette artikkelen fra databasen.

 

Her er koden min: (blir nok litt lettere å forstå mer ut i fra den)

 

<h3>Slett en eller flere artikler</h3><hr/>

<?php

$connect = mysql_connect('localhost', 'root', '');

if(!$connect){
       die('Klarte ikke å koble til: '. mysql_error());
}

mysql_select_db('minicms', $connect);
$result = mysql_query('SELECT * FROM article');
$delete_one = DELETE FROM article WHERE title=$row['title'];

while($row = mysql_fetch_assoc($result)){
echo '<a href=\"'.$delete_one.'">'.$row['title'].'</a><br/>';
echo $row['date'].' '.$row['time'].'<br/><br/>';
}

?>

 

Hva er gærent (noe burde være gærent, for det fungerer ikke), og burde det gjøres? Ha også i tankene at dette skal bare fungere, uten alt for mange andre ekstra ting og tang, som egentlig ikke er nødvendig for at det så vidt skal fungere ;)

 

Takk på forhånd!

- Themecreator

Lenke til kommentar
Videoannonse
Annonse

1) Du har slett-spørringen utenfor whileloopen. Som vil resultere i at $row ikke finnes, derfor fungerer det ikke.

2) Hvis du flytter spørringen inn i whileloopen blir alle titteler slettet når du laster siden pånytt. For å hindre det, lag en slette link.

3) Bruk heller id til å slette artikkeler, slik at du ikke sletter fler om dem har samme tittel.

 

Lite eksempel:

<?php

if(@$_GET['slettid']) {
/** spørring **/
/** F.eks: DELETE FROM artikkeler WHERE id = $_GET['slettid'] LIMIT 1 **/	
}

while() {
/** ... **/
echo '<a href="./?slettid=' . $row['id'] . '">slett</a>';
/** ... **/
}

?>

Endret av Thomas.
Lenke til kommentar

Ok. Takk for svar... Har nå gjort det du poengterte, men problemet er ikke fikset helt enda. (enda alle errorene er borte).. Når jeg trykker, så blir jeg dirigert til en side (ikkefinnes.php siden, som jeg har laget)... og når jeg går tilbake har ingenting skjedd.. Det ligger helt sikkert en eller annen greie i koden, som jeg ikke helt forstår selv..

 

Her er den oppdaterte koden:

 

<h3>Slett en eller flere artikler</h3><hr/>

<?php

$connect = mysql_connect('localhost', 'root', '');

if(!$connect){
die('Klarte ikke å koble til: '. mysql_error());
}

mysql_select_db('minicms', $connect);
$result = mysql_query('SELECT * FROM article ORDER BY id DESC');

if(@$_GET['slettid']){
$delete_one = mysql_query('DELETE FROM article WHERE id = $_GET["slettid"] LIMIT 1');
echo 'Teksten ble slettet!';
}

while($row = mysql_fetch_assoc($result)){
echo '<a href="index.php?page=delete_article?slettid=' . $row['ID'] . '">';
echo $row['ID'].', ';
echo $row['title'].', ';
echo $row['date'].'  '.$row['time'].'<br/><br/>';
echo '</a>';
}

?>

Lenke til kommentar

Det løste problemet med at jeg kom til finnesikke.php siden.. Og til og med echo 'artikkelen er slettet'; blir vist når jeg trykker på en av linkene. Men når jeg sjekker om den virkelig er slettet, så er den ikke det!

 

Hva er det jeg gjør som er galt? ^^, Ser ingen spesifikke feil som jeg kunne ha gjort...

 

Some help, please? :)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...