Themecreator Skrevet 2. november 2010 Del Skrevet 2. november 2010 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
Thomas. Skrevet 2. november 2010 Del Skrevet 2. november 2010 (endret) 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 2. november 2010 av Thomas. Lenke til kommentar
Themecreator Skrevet 3. november 2010 Forfatter Del Skrevet 3. november 2010 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
Thomas. Skrevet 3. november 2010 Del Skrevet 3. november 2010 Endre til index.php?page=delete_article&slettid Lenke til kommentar
Themecreator Skrevet 3. november 2010 Forfatter Del Skrevet 3. november 2010 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
Thomas. Skrevet 3. november 2010 Del Skrevet 3. november 2010 Du kan ikke bruke variabler "normalt" inni enkelt fnutter. Prøv mysql_query('DELETE FROM article WHERE id = ' . $_GET['slettid'] . ' LIMIT 1'); Lenke til kommentar
Themecreator Skrevet 3. november 2010 Forfatter Del Skrevet 3. november 2010 Det funka! Takk skal du ha! Og også andre som hjalp til med andre ting! Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå