Forum
Zoals jullie misschien al wel door hebben ben ik nog een beginnerling in het php gebeuren. Ik ben op het moment bezig met het maken van een simpele forum.
Uiteraard heb ik dit eerst lokaal gedraaid d.m.v WAMP. Ik heb hem nu echter online staan. Toen ik hem nog lokaal had werkte alles na behoren maar nu ik hem eenmaal online heb staan werkt het niet.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
//Connect met de server en database
mysql_connect("$host", "$username", "$password")or die("Kan niet verbinden met de server");
mysql_select_db("$db_name")or die("Kan de geselecteerde database niet vinden");
//Pak de value van de id dat in de hiddenfield zit
$id=$_POST['id'];
//Vindt de hoogste antwoord nummer
$sql="SELECT MAX(a_id) AS Maxa_id FROM $tbl_name WHERE question_id='$id'";
$result=mysql_query($sql);
$rows=mysql_fetch_array($result);
// Voeg +1 aan het hoogste antwoord nummer en stop het inde variable $Max_id. Als er geen antwoord is krijgt de antwoord 1
if ($rows) {
$Max_id = $rows['Maxa_id']+1;
}
else {
$Max_id = 1;
}
//De values van het bericht dat verzonden is
$a_name=$_POST['a_name'];
$a_email=$_POST['a_email'];
$a_answer=$_POST['a_answer'];
// Datum
$datetime=date("d/m/y H:i:s");
// Voeg bericht toe.
$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')";
$result2=mysql_query($sql2);
if($result2){
echo "<center>Gelukt</center><BR>";
echo "<center><a href='view_topic.php?id=".$id."'>Bekijk je bericht</a></center>";
// Als er een nieuw antwoord komt krijgt die value +1
$tbl_name2="forum_question";
$sql3="UPDATE $tbl_name2 SET reply='$Max_id' WHERE id='$id'";
$result3=mysql_query($sql3);
}
else {
echo "ERROR";
}
mysql_close();
?>
//Connect met de server en database
mysql_connect("$host", "$username", "$password")or die("Kan niet verbinden met de server");
mysql_select_db("$db_name")or die("Kan de geselecteerde database niet vinden");
//Pak de value van de id dat in de hiddenfield zit
$id=$_POST['id'];
//Vindt de hoogste antwoord nummer
$sql="SELECT MAX(a_id) AS Maxa_id FROM $tbl_name WHERE question_id='$id'";
$result=mysql_query($sql);
$rows=mysql_fetch_array($result);
// Voeg +1 aan het hoogste antwoord nummer en stop het inde variable $Max_id. Als er geen antwoord is krijgt de antwoord 1
if ($rows) {
$Max_id = $rows['Maxa_id']+1;
}
else {
$Max_id = 1;
}
//De values van het bericht dat verzonden is
$a_name=$_POST['a_name'];
$a_email=$_POST['a_email'];
$a_answer=$_POST['a_answer'];
// Datum
$datetime=date("d/m/y H:i:s");
// Voeg bericht toe.
$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')";
$result2=mysql_query($sql2);
if($result2){
echo "<center>Gelukt</center><BR>";
echo "<center><a href='view_topic.php?id=".$id."'>Bekijk je bericht</a></center>";
// Als er een nieuw antwoord komt krijgt die value +1
$tbl_name2="forum_question";
$sql3="UPDATE $tbl_name2 SET reply='$Max_id' WHERE id='$id'";
$result3=mysql_query($sql3);
}
else {
echo "ERROR";
}
mysql_close();
?>
Ik krijg de fout code; Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource op lijn 27 dat is in dit geval de $rows=mysql_fetch_array($result); (Lijn14)
Ik heb dit forum al door gebladerd maar ik kan er echt niet achterkomen wat er nu fout is.
Bij voorbaat dank!
Gewijzigd op 15/03/2012 15:15:05 door Joey Schroder
Dit komt omdat de SELECT-query niet gelukt is.
Dit wil dus zeggen dat $sql (gemaakt op lijn 12) geen geldige string geeft.
Wat je doet:
tussen lijn 12 en 13 zet je
echo $sql;
Copy/paste die string in phpMyadmin op je server. De fout zal wel vlug duidelijk worden.
Gewijzigd op 15/03/2012 15:21:14 door Kris Peeters
Hij pakt dus id 4 maar er is nog helemaal geen id want dit is de eerste comment die ik wil posten.
Zet ik die zin in de sql dan krijg ik; Unknown column 'a_id' in 'field list'
Dat kan kloppen omdat er nog geen id in zit dus id4 ook niet.
Maar lokaal werkt het wel en online geeft die deze fout. Ligt dat dan aan de database of?
Gewijzigd op 15/03/2012 15:26:23 door Joey Schroder
$tbl_name bestaat niet.
Die bestaat wel, alleen ik heb hem niet hier in het bericht gezet.
a_id veld bestaat niet?
Echo de mysql_error() en je ziet waar de fout zit.
Ik heb dit draaiend gehad lokaal maar zo gauw het online kwam werkte het niet meer...
Toevoeging op 15/03/2012 15:37:48:
Hoe bedoel je echo de mysql_error() ?
Ik ben nog beginnend :P
Gewijzigd op 15/03/2012 15:41:49 door gerhard l
Joey Schroder op 15/03/2012 15:25:48:
Unknown column 'a_id' in 'field list'
Dat kan kloppen omdat er nog geen id in zit dus id4 ook niet.
Dat kan kloppen omdat er nog geen id in zit dus id4 ook niet.
Nee, het gaat er niet om dat het record met id = 4 niet gevonden wordt. Een record niet vinden, geeft geen warning.
Het gaat er om dat, op jouw server, het veld a_id niet bestaat in de tabel.
Zeg, je hebt dit toch getest op phpMyadmin van de server?
Ik had de een variable $tbl_name had ik verkeerd staan.
Ik had meerdere pagina's en omdat ik hem online wou zetten had ik voor het gemakt geknipt en geplakt waardoor mijn databases in de war kwamen.. -_-'
Sorry! Maar in ieder geval hartstikke bedankt!