Gå til innhold

Slette innlegg fra blogg. [LØST!]


Anbefalte innlegg

Heisann!

 

Sliter litt med bloggen min, gjelder det å slette et innlegg fra databasen..

 

Jeg har følgende kode:

if($delete)
{
 include("makedbconn.php"); //databaseoppkoblingen
 
 $result2 = mysql_query("DELETE FROM blog WHERE blogID='$blogID'") or die ("Error in query to db.");
 if ($result2 != false)
 {
 	echo '<p>Innlegget ble <strong>slettet</strong> fra databasen!</p>';
 }
}

 

Det som skal skje her, er at jeg skal ha mulighet til å slette innlegg fra bloggen min.. Når jeg trykker på submit-button med value delete, skal innlegget bli slettet, og skrive ut en melding til brukeren.

Alt kjøres helt flott, og meldingen skrives ut, men det skjer ingenting med databasen. Innlegget ligger der fremdeles, og det er jo ikke meningen... What to do? :hmm:

Endret av OShea22
Lenke til kommentar
Videoannonse
Annonse

Siden du har brukt mysql_query(...) or die(...), er den if'en bortkastet ja. Istedet kunne du hatt if'en slik:

if(mysql_affected_rows() == 1) { // er vel bare en entry som skal slettes
echo '<p>Innlegget ble <strong>slettet</strong> fra databasen!</p>';
}

 

Men hvorfor det ikke slettes kan være at $blogID ikke er som det skal.

Endret av FuLu
Lenke til kommentar
sjekk at verdien av $blogID stemmer.

 

å ha med != false er smørr på tull. det er ekvivalent med bare if($result2)

At verdien av $blogID stemmer? Med det mener du at artikkelen har samme blogID som det som er aktuelt her? Eller? :hmm:

 

Sliter med å finne feilen...

 

Så forøvrig at det var smør på flesk med !=false. Takk for påminnelsen!

Lenke til kommentar

Tja, vanskelig og si. Det ser jo ut som query ser riktig ut. Hvilen type er blogID i tabellen? Er det varchar eller integer e.l.? Bruker du register globals? Eller henter du $blogID fra $_GET eller $_POST eller $_REQUEST før kodensnutten du viser oss?

 

Sikker på at $blogID inneholder noe som helst?

 

Grei debugging du kan teste:

ob_start();
print_r($blogID);
echo htmlspecialchars(ob_get_clean());

 

Eventuelt bytte $blogID med noe annet, f.eks $_GET e.l.

Lenke til kommentar
Tja, vanskelig og si. Det ser jo ut som query ser riktig ut. Hvilen type er blogID i tabellen? Er det varchar eller integer e.l.? Bruker du register globals?  Eller henter du $blogID fra $_GET eller $_POST eller $_REQUEST før kodensnutten du viser oss?

 

Sikker på at $blogID inneholder noe som helst?

 

Grei debugging du kan teste:

ob_start();
print_r($blogID);
echo htmlspecialchars(ob_get_clean());

 

Eventuelt bytte $blogID med noe annet, f.eks $_GET e.l.

blogID i databasen er en integer (int(20))..

 

Jeg er rimelig sikker på at blogID inneholder noe ja, ettersom jeg har postet flere innlegg, og hvert innlegg får en blogID, så ja.. Slikt står også i databasen min..

 

Kan jo legge ved filen min, hvis det hjelper... Må for guds skyld ikke bry dere om kode, her er det kun snakk om funksjonalitet, design er underveis, tabellene er på vei vekk, bare så det er sagt ;)

 

blogID kommer fra en hidden-value i det ene formet mitt, noe som kommer frem av filen vel og merke..

Endret av OShea22
Lenke til kommentar

Hvis blogID er en integer, så skal du vel ikke bruke single quote i query DELETE FROM blog WHERE blogID='$blogID'. Grunn til at du får feil når single quote er borte, er sikkert fordi $blogID ikke er integer.

 

Men det jeg stusser på er at $blogID ikke blir hentet fra noe $_POST['blogID'] e.l. Men du bruker kanskje register globals?

Lenke til kommentar

Så det jeg skal gjøre da, er å fjerne quotene fra queryen?

 

Slik?

(DELETE FROM blog WHERE blogID=$blogID");

 

Eller er jeg helt på bertur da?

 

Mener å ha testet dette, men at jeg da får feilmeldingen om at det er noe feil med spørringen... (Error in query to db.)

Endret av OShea22
Lenke til kommentar

han mener vel det han sa...

 

hvis du setter inn et tall for $blogID, så går det bra, for tall kan stå uten '' i sql queries for mysql

 

hvis $blogID nå er tom (fordi du har kodet for dårlig og latt ugyldige verdier havne i din sql), får du ingen match for din sjekk, blogID=etellerannet, det er ugyldig SQL syntax å ikke fullføre = operatoren

 

sjekk i din phpkode at du har gyldig verdi i $blogID.

 

f.eks slik:

 

if(!is_numeric($blogID)){

die "dritt!";

}

Lenke til kommentar

Mulig jeg misforstår deg. Men koden til Torbjørn, den if(!is_numeric...) betyr at den skal feile når $blogID ikke er et tall. Det virker som et tydelig bevis på at $blogID ikke inneholder tall. Kanskje den ikke inneholder noe som helst.

 

Uansett, har du sjekket at blogID blir skrevet i form'en (HTML koden) ? Ta en view source når du har siden i nettleseren din. Så sjekker du input feltet i formen som skal inneholde blodID verdien. Hvis value="" eller ikke har et tall i seg, så er dette sikkert et greit sted å begynne feilsøkingen på ;)

Lenke til kommentar
Mulig jeg misforstår deg. Men koden til Torbjørn, den if(!is_numeric...) betyr at den skal feile når $blogID ikke er et tall. Det virker som et tydelig bevis på at $blogID ikke inneholder tall. Kanskje den ikke inneholder noe som helst.

 

Hehe ;) Nei, var nok jeg som ikke sjekket koden nøye nok her, så ikke !-tegnet nemlig... Dette tyder jo da på at blogID ikke er et tall, noe jeg fortsatt ikke skjønner.

 

]Uansett, har du sjekket at blogID blir skrevet i form'en (HTML koden) ? Ta en view source når du har siden i nettleseren din. Så sjekker du input feltet i formen som skal inneholde blodID verdien. Hvis value="" eller ikke har et tall i seg, så er dette sikkert et greit sted å begynne feilsøkingen på ;)

 

Formet mitt ser jo slik ut:

<form action='<? echo $PHP_SELF ?>' method='post'>
<input type='hidden' name='blogID' value='$blogID'>
<input type='submit' name='delete' value='Slett innlegg.'>
</form>

 

hvor blogID er en hidden-type...

Endret av OShea22
Lenke til kommentar

Jeg ser feilen :D

 

<form action='<? echo $PHP_SELF ?>' method='post'>
<input type='hidden' name='blogID' value='$blogID'>
<input type='submit' name='delete' value='Slett innlegg.'>
</form>

 

Tenk lenge, leeeenge :D Så kommer du til og le :p

 

Ok, jeg skal utheve den for deg (erter deg litt nå hehe):

<input type='hidden' name='blogID' value='$blogID'>

 

Du mangler en <?php echo her :D

Lenke til kommentar
Jeg ser feilen :D

 

Ok, jeg skal utheve den for deg (erter deg litt nå hehe):

<input type='hidden' name='blogID' value='$blogID'>

 

Du mangler en <?php echo her :D

Hehe, erre mulig egentlig? :blush: Lett å se seg blind på slike små detaljer hvertfall!

 

Nå funker det hvertfall som gull :dribble:

 

Takk så meget for hjelpen! Litt lettere å få sove nå gitt :p

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...