Avatar billede Milla-Tigerdyr Praktikant
08. september 2011 - 17:08 Der er 67 kommentarer og
1 løsning

Problemer med add_answer.php

Hej alle.
Jeg har et problem med min add_answer. Jeg har fuldt denne tutorail meget nøje, men når jeg prøver at poste et svar i mit forum, så siger den bare "ERROR".
I kan kigge på alle filerne osv. her; http://www.phpeasystep.com/phptu/12.html

Håber virkelig der er nogen der kan hjælpe.
Avatar billede gentlebug Nybegynder
08. september 2011 - 17:14 #1
Har du en mysql database? og har du opsat den korrekt? Og indtastet brugernavn og password i filen?
Avatar billede inteeeL Nybegynder
08. september 2011 - 17:44 #2
At kalde "error" ved en fejl er ikke særligt behjælpende, hverken for dig eller for os. Prøv i stedet at at kalde mysql_error og fortæl os, hvad den siger.
Avatar billede majbom Novice
08. september 2011 - 18:55 #3
som der bliver sagt, så prøv med:

mysql_error();


i stedet for:

echo "ERROR";
Avatar billede Milla-Tigerdyr Praktikant
09. september 2011 - 14:52 #4
Jeg har opsat min database, og mine tabeller helt rigtigt. Login system, og brugersessions virker også helt fint :) Prøver lige at lave en mysql error.
Avatar billede Milla-Tigerdyr Praktikant
09. september 2011 - 14:55 #5
Okay super den siger; Column count doesn't match value count at row 1
Avatar billede majbom Novice
09. september 2011 - 18:43 #6
hvordan ser denne linje ud i din add_answer.php:

// Insert answer
$sql2="INSERT INTO $tbl_name(question_id, a_id, a_name, a_email, a_answer, a_datetime)VALUES('$id', '$Max_id', '$a_name', '$a_email', '$a_answer', '$datetime')";


?
Avatar billede Milla-Tigerdyr Praktikant
09. september 2011 - 19:33 #7
Lige den linje har jeg slet ikke ændret på, så den er præcis det samme.
Avatar billede Milla-Tigerdyr Praktikant
09. september 2011 - 19:40 #8
Nej jeg havde åbenbart slettet a_email. Det havde jeg lige overset, tusind tak :D

Det virker helt fint nu. Ville man kunne gøre sådan, at almindelige medlemmer ikke kan lave fed skrift, og sådan i 'emnet' og i 'beskeden'?
Avatar billede majbom Novice
10. september 2011 - 09:19 #9
hvis du mener at det ikke skal være muligt at indsætte html-tags i felterne kan du kigge på strip_tags: http://php.net/manual/en/function.strip-tags.php
Avatar billede majbom Novice
10. september 2011 - 09:19 #10
svar forresten :)
Avatar billede Milla-Tigerdyr Praktikant
10. september 2011 - 10:39 #11
Super, og tak :D!

- Kan det være muligt at få forummet til at vise mit navn "Admin", med rødt? Altså kun mit, ikke andres?
Avatar billede majbom Novice
10. september 2011 - 11:19 #12
if($name=='Admin')
{
  echo '<p style="color: red;">' . $name . '</p>';
}
else
{
  echo '<p>' . $name . '</p>';
}


og tak for point :)
Avatar billede Milla-Tigerdyr Praktikant
10. september 2011 - 11:28 #13
Det vil ikke virke, siden bliver bare blank.

- Jeg har også et andet problem, når man svarer så står svarende altså ikke i den rigtige rækkefølge.. den står i f.eks;
#2
#4
#5
#3
#1

Osv, altså helt hulter til bulter :S

Den burde jo bare stå

#1
#2
#3
osv.
ELLER
#3
#2
#1
osv.
Avatar billede majbom Novice
10. september 2011 - 11:49 #14
hvor bliver siden blank? hvilken fil, og hvad har du skrevet? smid evt hlee koden ind på pastebin.com og lig et link her.

hvor skriver den rækkefølgen forkert? har du ORDER BY i din SELECT-query
Avatar billede Milla-Tigerdyr Praktikant
10. september 2011 - 11:52 #15
Forstår ikke hvad du mener med det der pastebin? Men jeg smed det ind på view_topic.php, og der blev siden bare blank.
Jeg havde skrevet det præcis som du havde skrevet (selvfølgelig inden for <? og ?> tegn)

- Når man svare på et emne, skriver den rækkefølgen forkert. Jeg har ikke nogen ORDER BY i min SELECT nej, hvorfor?
Det eneste jeg har rettet på koderne fra phpeasystep er så den loader myusername, istedet for man skal skrive det, ellers er der ikke rigtig ændret noget (-:
Avatar billede Milla-Tigerdyr Praktikant
10. september 2011 - 11:58 #16
Tror jeg fandt ud af det..
View_topic.php (dit admin-rød skrift dims er ikke sat ind)
http://pastebin.com/ihZw6Ykf

Der er 3"dele" i den fil;
* Man viser emnet
* Man viser svarene
og
* Man kan skrive et svar

Men den viser altså svarene på en underlig måde dvs. i en totalt tilfældig række følge, og den vil ikke gøre mit brugernavn rødt.

Du kan også lige få add_answer.php:
http://pastebin.com/61tLTidh

Sig hvis du skal bruge flere filer.
Avatar billede Milla-Tigerdyr Praktikant
10. september 2011 - 13:35 #17
Jeg fik ordnet det med opstillingen med en ORDER BY '$id' :)

Nu mangler jeg bare at;
Folk med admin='3' skal vises med rød.
Folk med admin='2' skal vises med grøn.
og
Folk med admin='1' skal have et skilt hvor der står 'VHT' ude foran deres brugernavn..hvordan gør jeg det?
Folk med admin='0' (dvs. standarten), der skal navnet bare være sort :)
Avatar billede majbom Novice
10. september 2011 - 15:52 #18
kan du ikke smide filen op, hvor den skal vise det med rød og grøn?
Avatar billede Milla-Tigerdyr Praktikant
10. september 2011 - 15:59 #19
Der er to filer, det er main_forum.php - hvor der er 'oversigt' over alle emnerne, også view_topic.php - hvor man ser et emne + alle svar der er kommet i emnet.

Jo, du får lige filerne her;

main_forum.php: http://pastebin.com/46UMw9f4
view_topic.php: http://pastebin.com/mjKwZehE
Avatar billede majbom Novice
10. september 2011 - 18:04 #20
jeg synes ikke rigtig jeg kan se hvor du har "admin"-feltet...?
Avatar billede Milla-Tigerdyr Praktikant
10. september 2011 - 18:07 #21
Der er jo ikke noget admin felt, det er myusername. Den finder myusername, også udskriver den ens brugernavn i forummet. I min tabel i min database, har jeg en kolonne der hedder 'admin', det står for hvilke rettigheder man har.
3 = Admin (mig)
2 = Moderator
1 = VHT (-de skulle gerne have et gult skilt hvor der står 'VHT' ude foran deres navn)
0 = almindelig bruger.
Avatar billede majbom Novice
10. september 2011 - 18:14 #22
okay, med "felt" mente jeg "kolonne" - sorry - kigger lige på det...
Avatar billede Milla-Tigerdyr Praktikant
10. september 2011 - 18:19 #23
ja okay, super :)
Avatar billede majbom Novice
10. september 2011 - 19:20 #24
jeg kan stadig ikke se hvor den kolonne kommer fra... hvad har du af tabeller og hvordan ser de ud?

hvor henter du "myusername" ?
Avatar billede Milla-Tigerdyr Praktikant
10. september 2011 - 19:29 #25
Altså den er ikke i koden nogen steder endnu, hvis det er det?

Jeg henter både admin kolonnen og myusername, i min tabel 'members', hvor alle medlemmerne bliver registeret i.
Avatar billede majbom Novice
10. september 2011 - 19:52 #26
okay, men hvis du henter admin-kolonnen med ud, skal du jo bare tjekke hvad den indeholder - og ud fra dét, sætte en style på det element der viser navnet...
Avatar billede Milla-Tigerdyr Praktikant
10. september 2011 - 19:56 #27
Jeg ved bare ikke hvor jeg skal sætte det henne. Kan du ikke prøve at komme med et eks.? Og hvordan får jeg den til at skrive 'VHT' ud for navnet, på dem der har admin = 1 ?:)
Avatar billede majbom Novice
10. september 2011 - 20:06 #28
inde du normalt skriver navnet ud i en div eller paragraf eller noget 3. kan du i en if-sætning hvad admin-feltet indeholder.

alt efter indholdet sætter du variablen $name_output til:

'<p style="color: red;">' . $name . '</p>'; //admin 3

'<p style="color: green;">' . $name . '</p>'; //admin 2

'<p style="color: black;">VHT: ' . $name . '</p>'; //admin 1

'<p style="color: black;">' . $name . '</p>'; //resten


?
Avatar billede Milla-Tigerdyr Praktikant
10. september 2011 - 20:11 #29
Men hvor henne i hvilken fil? Skal det være i view_topic, der hvor navnet normalt vises?
Avatar billede majbom Novice
10. september 2011 - 20:18 #30
bare lige inden du skriver det ud - som jeg skrev.

og så er det så $name du skal skrive ud i stedet...
Avatar billede majbom Novice
10. september 2011 - 20:19 #31
sorry $name_output skal udskrives i stedet for $name eller hvad den  hedder fra databasen...
Avatar billede Milla-Tigerdyr Praktikant
10. september 2011 - 20:21 #32
Altså nu havde jeg skrevet dette:

<td bgcolor='#C3E4F2'><strong>Oprettet af:</strong> <?
mysql_query("SELECT admin FROM members")
or die(mysql_error()); 

if($admin=='3')
{
echo '<p style="color: red;">' . $name . '</p>'; //admin 3
}
if($admin=='2')
{

echo '<p style="color: green;">' . $name . '</p>'; //admin 2
}
if($admin=='1')
{
echo '<p style="color: black;">VHT: ' . $name . '</p>'; //admin 1
}
if($admin=='0')
{
'<p style="color: black;">' . $name . '</p>'; //resten
}
?>

- Men den lod bare være med at vise navnet :s
Avatar billede majbom Novice
10. september 2011 - 20:27 #33
der henter du admin på alle poster i tabellen.

hvor er det du gerne vil have det til at stå? på view_topic?
Avatar billede Milla-Tigerdyr Praktikant
10. september 2011 - 20:30 #34
På alle steder hvor der står ens navn. Dvs. både hvis man har oprettet et emne, og hvis man svare på et.
Avatar billede majbom Novice
10. september 2011 - 20:39 #35
okay, det smarteste vil nok være at lave en JOIN mellem tabellen med spørgsmål / svar og tabellen med brugere...

jeg går ud fra at du har et brugerid i tabellerne med spørgsmål / svar som realterer til id'et på brugeren i brugertabellen
Avatar billede Milla-Tigerdyr Praktikant
10. september 2011 - 20:47 #36
Æehm, hvad mener du?
Altså hver bruger har en bruger id, ja.
Avatar billede majbom Novice
10. september 2011 - 21:45 #37
ja, og hvordan relaterer du brugeren til vedkommendes indlæg? jeg går ud fra at du har id'et på brugeren i tabellerne med svar / spørgsmål?
Avatar billede Milla-Tigerdyr Praktikant
10. september 2011 - 22:39 #38
Ehm. Jeg ved ikke helt hvad du mener, men har du været inde og kigge på koderne på phpeasystep?
Avatar billede majbom Novice
10. september 2011 - 22:42 #39
ja det har jeg og der er ikke nogen bruger-tabel, derfor spørger jeg...
Avatar billede Milla-Tigerdyr Praktikant
11. september 2011 - 10:01 #40
Hvaad mener du med der ikke er nogen bruger-tabel? Det er der da? Altså jeg har selv rettet i scriptet så den henter 'myusername' istedet for man skal indtaste navnet.

- Jeg har ikke brugt 'admin' kolonnen nogen steder endnu, hvis det er det?
Avatar billede majbom Novice
11. september 2011 - 10:58 #41
kan du ikke linke til den side, hvor tabellen er - for jeg kan altså ikke finde den...
Avatar billede Milla-Tigerdyr Praktikant
11. september 2011 - 11:02 #42
Tabellen er jo i databasen???
Avatar billede majbom Novice
11. september 2011 - 16:14 #43
ja, det kan jeg næsten regne ud - men jeg har ingen anelse om hvordan den ser ud! der er ikke noget omkring nogen brugertabel i den guide!
Avatar billede Milla-Tigerdyr Praktikant
11. september 2011 - 16:16 #44
Nårh, det er fordi det er selv lavet, og ligger i en tabel ved navn 'members'.
Vil du vide hvad det er for en? Altså det er en kolonne der hedder admin, som er på en INT(3)
Skal du bruge mere information?
Avatar billede majbom Novice
11. september 2011 - 16:22 #45
ja det ville jeg gerne - det bad jeg faktisk om allerede i #24 (20 kommentarer siden!)

jeg vil gerne have en oversigt over dine tabeller (navne og kolonner)
Avatar billede Milla-Tigerdyr Praktikant
11. september 2011 - 16:30 #46
Du kan jo se de to tabeller fra forummet inde på phpeasystep.
I min members tabel har jeg:

id int(10)
myusername varchar 65)
mypassword varchar(65)
navn(50)
alder varchar(6)
email varchar(255)
kon varchar(5)
konto int(9)
signupdate (virker så ikke som den skal. Det er blevet til 'sidst logget ind' istedet, fordi den opdatere sig selv :S ) timestamp
profiletext text
admin int(3)
ip char(15) - Har jeg ikke fået til at virke..ved ikke hvorfor, men den gider ikke gemme ip adressen, ved oprettelse.
Avatar billede majbom Novice
11. september 2011 - 16:56 #47
og hvordan relaterer den tabel til de tabeller der er i guiden?
Avatar billede Milla-Tigerdyr Praktikant
11. september 2011 - 18:06 #48
Det gør den ikke, men det skulle den jo helst, fordi jeg skal bruge den "admin"-ting der er i.
Avatar billede majbom Novice
11. september 2011 - 19:39 #49
så vil jeg foreslå dig at smide en kolonne mere på de tabeller, som skal relatere til din members-tabel. det skal være af typen int og have værdien på det id der er hos den bruger der opretter indlægget/spørgsmålet. vi kalder den "user_id"

jeg går ud fra at du har noget login-system, der skal du så også gemme brugerens id i sessionen

når du så henter dine svar (pt har du denne sql-streng):

$sql2="SELECT * FROM $tbl_name2 WHERE question_id='$id'";


den retter du til:

$sql2="SELECT $table_name.*, m.myusername, m.admin FROM $tbl_name2 JOIN members AS m ON $tbl_name.useri_id = m.id WHERE question_id='$id'";


så har du myusername og admin felterne med ud på den bruger der har oprettet indlægget...

det samme gør du så de andre steder også...
Avatar billede Milla-Tigerdyr Praktikant
11. september 2011 - 19:43 #50
Og hvor skulle jeg så sætte det med farverne ind henne??

Så jeg skal oprette
admin int(3)

i forum_question & forum_answer ?

Hvad mener du med at det skal have en værdi på id hvad??
Avatar billede majbom Novice
11. september 2011 - 19:52 #51
nej du skal oprette user_id i forum_question og forum_answer

og i det felt ligger du værdien fra id'er på brugeren som du ligger i session'en ved login.

det med farverne skal ind i dit while-loop hvor du udskriver alle svarene (inden du udskriver navnet selvfølgelig)
Avatar billede Milla-Tigerdyr Praktikant
12. september 2011 - 13:22 #52
Okay er med på de to første, altså jeg skal bare oprette user_id i de to databaser.

Men skal jeg så bare indsætte det kode stykke du har skrevet i #28 ?
Avatar billede majbom Novice
12. september 2011 - 14:10 #53
i de to tabeller ja

ja, koden fra #28 skulle virke - du skal dog lige rette variabelnavnene til, så de passer...
Avatar billede Milla-Tigerdyr Praktikant
12. september 2011 - 14:17 #54
Så istedet for $name så skal jeg vel skrive $myusername ikke?

- Jeg tester det lige :)
Avatar billede Milla-Tigerdyr Praktikant
12. september 2011 - 14:30 #55
Nu lavede jeg lige den der sql linje om,(har tilføjet user_id til begge tabeller), og nu viser den bare ikke svarene. (Satte den ind i view_topic.php)
Avatar billede majbom Novice
12. september 2011 - 16:05 #56
har du opdateret tabellerne, så der også står det tilhørende bruger-id i user_id?
Avatar billede Milla-Tigerdyr Praktikant
12. september 2011 - 16:11 #57
ehm, hvad mener du?? Skal jeg skrive det manuelt ind, eller hvad??:S
Avatar billede majbom Novice
12. september 2011 - 16:21 #58
ja, på de poster ud zllerede har liggende i de 2 tabeller er du jo næøst til at gøre det manuelt - fremover, skal du (som jeg skrev tidligere) gemme id'et ved oprettelse af spørgsmål / svar
Avatar billede Milla-Tigerdyr Praktikant
12. september 2011 - 16:25 #59
Jeg er slet ikke med nu :/
Avatar billede majbom Novice
12. september 2011 - 16:32 #60
- ved login skal ens bruger-id gemmes i sessionen
- ved oprettelse af spørgsmål / svar skal id'et gemmes i tabellen forum_question / forum_answer
Avatar billede Milla-Tigerdyr Praktikant
12. september 2011 - 17:05 #61
Ja..men den bliver jo allerede gemt i en session, som userid :S

- Og hvordan gør jeg det ved forummet??
Avatar billede majbom Novice
12. september 2011 - 18:37 #62
du henter $_SESSION['userid'] og smider i feltet user_id
Avatar billede Milla-Tigerdyr Praktikant
12. september 2011 - 18:40 #63
Kan du ikke lige lave et kodestykke med det jeg skal erstatte, og skrive?:s
Avatar billede majbom Novice
12. september 2011 - 19:01 #64
har du prøvet lidt selv? du lærer jo ikke noget ved at få det hele serveret..
Avatar billede Milla-Tigerdyr Praktikant
13. september 2011 - 15:44 #65
Det ved jeg godt, men er ret sikker på jeg gør det forkert, fordi siden bliver altså bare blank, så har slettet det igen..
Avatar billede majbom Novice
13. september 2011 - 16:52 #66
hvad har du prøvet?
Avatar billede Milla-Tigerdyr Praktikant
13. september 2011 - 16:54 #67
Har siddet og rettet lidt på koderne nu, og nu har jeg fået det til at virke! :D

Tusind tak! :)
Avatar billede majbom Novice
13. september 2011 - 16:55 #68
selv tak...
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester