Gå til innhold

Hvordan få minus-operatoren til å fungere?


Anbefalte innlegg

Hei!

 

Driver med en side og der kan man legge igjen kommentarer, og der kan de som eier sida gå inn i et adminpanel for å administrere kommentarer og sånn, men når de trykker på "Slett denne kommentaren", så blir det ikke en kommentar mindre på forsida..

 

Altså noe sånt:

if (isset($_POST['submit'])) {

$id = $_GET['id'];

mysql_query("DELETE FROM kommentarer WHERE id = '$id'");

mysql_query("UPDATE nyheter SET kommentarer = kommentarer-1 WHERE id = '$id'");

echo 'Vellykket';

}

 

 

Slettinga funker flott, men ikke oppdateringa...hadde jeg satt et plusstegn (+) i stedet for minus (-) så ville det ha fungert bare at omvendt...noen måter å få dette til å fungere på?

Lenke til kommentar
Videoannonse
Annonse

mysql command line interface.

eventuelt phpmyadmin.

 

da kan du sjekke om det er en gyldig sql setning.

 

dersom den er det betyr det at noe skjer i overføringen fra scriptet. da kan det hende det hjelper å slashe ut minustegnet.

 

mysql_query("UPDATE nyheter SET kommentarer = kommentarer\-1 WHERE id = '$id'");

 

slik at dersom minus betyr noe spesielt innenfor "..." vil det nå oppføre seg som tekst.

Endret av grimjoey
Lenke til kommentar
Edit:

Tok bort post siden jeg skjønte hva du mente etter en liten stund nå...

 

Men åssen skal jeg få det til der det er 5 nyheter per side da? Der det bare er SELECT * FROM nyheter ORDER BY id DESC ?

8499092[/snapback]

 

Sjekk ut hvordan du bruker LIMIT, feks

SELECT * FROM nyheter ORDER BY id DESC LIMIT 5

vil plukke ut de fem første postene

 

SELECT * FROM nyheter ORDER BY id DESC LIMIT 5,5

vil plukke ut post nr 6-10

 

Så er det bare å styre LIMIT verdiene med variabler. Vil også anbefale http://phpbuilder.com/board/ hvor det er en haug med nyttig info.

Lenke til kommentar
Crowly, tror ikke du skjønte hva jeg mente der...

 

Åssen skal jeg få til den her koden:

SELECT COUNT( id ) as antall_kommentarer FROM kommentarer WHERE nyhets_id = $id

på hver artikkel når jeg bruker et pagination script når den ikke henter en id (?id=et_tall)?

8499574[/snapback]

 

Missforsto nok litt ja :innocent:

 

Du må kjøre den select'en for hver gang du henter frem en ny artikkel o.l som det kommenteres til. Da gjør noe noe som dette

$sql=sprintf("SELECT COUNT(*) antall FROM kommentarer WHERE id = %d",$id);
$antall=mysql_fetch_row(mysql_query($sql));
echo $antall[0]." kommentarer";

Hadde vært litt enklere hvis jeg hadde sett litt mer av koden, litt vanskelig å komme med spesifike kode forslag med det jeg har sett hittil. Få sett tabell definisjonene kunne også være kjekt.

 

mysql_query("UPDATE nyheter SET kommentarer = kommentarer-1 WHERE id = '$id'");

Slettinga funker flott, men ikke oppdateringa...hadde jeg satt et plusstegn (+) i stedet for minus (-) så ville det ha fungert bare at omvendt...noen måter å få dette til å fungere på?

Det skal ikke være noe galt med den sql settningen, så lenge kommentarer er ett tall felt. Du kan prøve en litt annen vri

$sql=sprintf("SELECT kommentarer FROM nyheter WHERE id = %d",$id);
$x=mysql_fetch_row(mysql_query($sql));
$x[0]--;
$sql=sprintf("UPDATE nyheter SET kommentarer = %d WHERE id = %d",$x,$id);
mysql_query($sql);

Dette er tungvindt, men en annen måte å gjøre det på.

 

Får håpe jeg har forstått litt mere nå, og at dette er til noe hjelp :whistle:

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