_Paulsen_ Skrevet 29. mars 2005 Del Skrevet 29. mars 2005 (endret) 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? Endret 29. mars 2005 av OShea22 Lenke til kommentar
o2mlab Skrevet 29. mars 2005 Del Skrevet 29. mars 2005 Jeg ville prøvd å fjerne enkeltfnuttene fra $blogID i sql-spørringen din?! Mulig det kan bedre utslaget... Lenke til kommentar
_Paulsen_ Skrevet 29. mars 2005 Forfatter Del Skrevet 29. mars 2005 Nope, hvis jeg fjerner enkelt-fnuttene, så får jeg feil i spørringen min... Men på en annen side, spørringen fungerer jo ikke helt som den skal uansett, så... Lenke til kommentar
Torbjørn Skrevet 29. mars 2005 Del Skrevet 29. mars 2005 sjekk at verdien av $blogID stemmer. å ha med != false er smørr på tull. det er ekvivalent med bare if($result2) Lenke til kommentar
FuLu Skrevet 29. mars 2005 Del Skrevet 29. mars 2005 (endret) 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 29. mars 2005 av FuLu Lenke til kommentar
_Paulsen_ Skrevet 29. mars 2005 Forfatter Del Skrevet 29. mars 2005 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? Sliter med å finne feilen... Så forøvrig at det var smør på flesk med !=false. Takk for påminnelsen! Lenke til kommentar
FuLu Skrevet 29. mars 2005 Del Skrevet 29. mars 2005 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
Torbjørn Skrevet 29. mars 2005 Del Skrevet 29. mars 2005 At verdien av $blogID stemmer? Med det mener du at artikkelen har samme blogID som det som er aktuelt her? Eller? Sjekk at php-variabelen $blogID faktisk inneholder det du tror den gjør. det sjekkes (selvsagt) enkelt med echo; echo "blogID=$blogID<br/>\n"; # f.eks Lenke til kommentar
_Paulsen_ Skrevet 29. mars 2005 Forfatter Del Skrevet 29. mars 2005 (endret) 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 29. mars 2005 av OShea22 Lenke til kommentar
Torbjørn Skrevet 29. mars 2005 Del Skrevet 29. mars 2005 sjekk at den har verdi når du prøver å slette. at du kan poste innlegg ellers er irrelevant. Lenke til kommentar
_Paulsen_ Skrevet 29. mars 2005 Forfatter Del Skrevet 29. mars 2005 Jeg brukte kodeeksemplet ditt; echo 'blogID='.$blogID.'<br/>\n'; for å sjekke om det kom ut noe fornuftig, men det gjorde det ikke... Det skrev bare ut det som står der, $blogID, ikke noe tall... Merkelig.. Lenke til kommentar
FuLu Skrevet 29. mars 2005 Del Skrevet 29. mars 2005 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
Torbjørn Skrevet 29. mars 2005 Del Skrevet 29. mars 2005 vel der har du svaret på hvorfor din query ikke virker. venn deg gjerne til den måten å debuge feil på (sjekke variabelverdier, være idiotsikker) Lenke til kommentar
_Paulsen_ Skrevet 29. mars 2005 Forfatter Del Skrevet 29. mars 2005 (endret) 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 29. mars 2005 av OShea22 Lenke til kommentar
Torbjørn Skrevet 29. mars 2005 Del Skrevet 29. mars 2005 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
_Paulsen_ Skrevet 29. mars 2005 Forfatter Del Skrevet 29. mars 2005 f.eks slik: if(!is_numeric($blogID)){ die "dritt!"; } Testet koden min med denne snutten, og den skrev ut "dritt", slik at den inneholder tall ja.. Klarer ikke helt å skjønne hva som er feil.... Lenke til kommentar
FuLu Skrevet 29. mars 2005 Del Skrevet 29. mars 2005 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
_Paulsen_ Skrevet 29. mars 2005 Forfatter Del Skrevet 29. mars 2005 (endret) 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 29. mars 2005 av OShea22 Lenke til kommentar
FuLu Skrevet 29. mars 2005 Del Skrevet 29. mars 2005 Jeg ser feilen <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 Så kommer du til og le 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 Lenke til kommentar
_Paulsen_ Skrevet 29. mars 2005 Forfatter Del Skrevet 29. mars 2005 Jeg ser feilen 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 Hehe, erre mulig egentlig? Lett å se seg blind på slike små detaljer hvertfall! Nå funker det hvertfall som gull Takk så meget for hjelpen! Litt lettere å få sove nå gitt 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å