11. marts 2010 - 09:15Der er
15 kommentarer og 1 løsning
Godkendelse via database
Jeg har lavet en kommentar side hvor kommentarene skal godkendes for at komme vidre men men jeg kan godt lægge kommentaren op i databasen og hente den igen, hvor den har "godkend = 1" (dvs ikke godkend) så skal den godkendes "godkend=2" men den vil ikke smide det op i database så den bliver godkend "godkend = 2" så jeg kan hente den ned igen og få det lagt på den rigtige side??? Nogen god ideer det haster lidt da opgaven skal afleveres i morgen :O)
Jamen saa maa du hellere haste med at forklare det lidt bedre. Hvordan bliver en kommentar godkendt? Er det saaledes at brugerne kan lave kommentarer og naar en kommentar bliver submitted bliver den bevaret i en databasetabel sammen med en godkendelsesstatus = 1 (ikke godkendt?) Hvordan bliver en kommentar saa godkendt? Sidder der en administrator der gennemlaeser kommentaren og beslutter at andre status til 2? Og hvis en kommentar er godkendt skal den saa vaere til at laese paa en side? Hvordan regnede du med at det skulle ske? Hvordan ser databasetabellen ud (hvilke kolonner/felter?) Kommentar og godkendelsesstatus naturligvis, men er der andet saasom dato og bruger? Hvad sker der med kommentarer som administratoren ikke kan godkende?
så se jeg iler :-) brugeren kan indsætte en kommentar til fx en bil og kommentaren bliver gemt i databasen indtil admin har læst og godkent den ved at ændre "godkend=1" som er sat som default til "godkend=2" derefter skal videre til siden hvor bilen er og kunne læses af andre der...
Database tabellen indeholder: Id , navn(på brugeren), text, godkend, bilnr
Du fortaeller: "jeg kan godt lægge kommentaren op i databasen og hente den igen, hvor den har "godkend = 1" (dvs ikke godkend)". Saa du har sandsynligvis en virkende html formular hvor brugeren indfoerer kommentarer og en virkende mysql saetning der indfanger kommentarern fra formularen og gemmer den i databasen og saetter godkendelse til 1. Videre har du saa, sandsynligvis, en side hvor admin kan trykke paa en knap eller lignende og det fyrer en mysql saetning af der selekter de raekker i tabellen der har godkendelsesstatus 1 og viser dem.
Er problemet saa at du ved hvordan man indsaetter en ny raekke i tabellen men ikke hvordan man aendrer en bestaaende raekke?
Hvis tabellen hedder "tabel1" og du skal opdatere raekken med id=257 saa er sql saetningen denne: UPDATE tabel1 SET godkendt = 2 WHERE id = 257.
Du har, siger du, et felt i database tabellen der hedder "godkend" men din mysql string proever at opdatere "godkendt".
$sql = mysql_query("UPDATE bilbixen_kommentar SET godkendt = 2 WHERE id = $id");
skal vaere
$sql = mysql_query("UPDATE bilbixen_kommentar SET godkend = 2 WHERE id = $id");
Proev det. Jeg haaber det virker
Du havde gemt det godt. Jeg maatte lave en tabel og en hjemmeside med din kode og saa sige: "$sql = mysql_query("UPDATE piaskriver SET godkend = 2 WHERE id = $id") or die(mysql_error()); Saa fik jeg fejlbeskedden at den ikke kunne finde kolonnen godkendt. Da jeg rettede det lykkedes det mig at opdatere database tabellen fra godkend=1 til godkend=2.
Jeg har vaeret vaek i nogle timer. Jeg er nu tilbage og har proevet at studere den kode du sendte.
Du sagde at problemet ligger i at opdatere bilbixen_kommentar saa godkendt bliver 2. Saa jeg koncentrerer mig om den paagaeldende kode, den sidste del af din email som du ogsaa sendte i dit indlaeg # 5.
Den kritiske linie kode er denne: "$sql = mysql_query("UPDATE bilbixen_kommentar SET godkend = 2 WHERE id = $id"); "
Men saa vidt jeg kan se har du ikke givet $id nogen vaerdi! Derfor er det logisk at ingen raekke i tabellen bliver updateret.
Da jeg testede koden-stykket i #5 og ikke fandt nogen vaerdi for $id gik jeg ud fra at du definerede $id et eller andet sted udenfor det viste kodestykke. Derfor indsatte jeg selv en $id og det virkede perfekt, vaerdien for godkendt blev sat til 2 for den $id jeg valgte.
Et par linier laengere nede i koden har du denne linie: //$id = $_GET["id"];
Hvis det var der $id skulle modtage sin vaerdi saa virker det ikke paa grund af //. Proev at rette //$id = $_GET["id"] til $id = $_GET["id"] og se om det hjaelper.
I saa fald kan jeg bede dig lukke dette spoergsmaal. At rydde op i spoergsmaal der ikke laengere er aktuelle giver god orden, og saa staar det ikke laengere som aabent i min liste af indlaeg. I fald du ikke er klar over det, man lukker et spoergsmaal ved at acceptere et svar. Man accepterer et svar ved at klikke i den lille firkant i hjoernet af svaret man vil acceptere. Derefter klikker man i "accepter svar og afgiv point" der opstaar forneden i spoergsmaalet, efter alle indlaeggene.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.