Posts van lid ophalen
Ik heb dus voor alle leden op m'n ledensysteem een profielpagina, waar het aantal reacties/posts op het forum ook staat als 'Posts: #aantal'
Daar werkt het correct, maar als ik het aantal posts bij de posts op het forum zelf ook wil weergeven werkt het niet.
De reacties haal ik dus op uit de tabel 'reacties', waarin dus de naam van de poster, id van de poster, id van het topic ook allemaal in staan.
Heb al geprobeerd om een array te maken van alle leden en bij elke reactie dan het aantal posts opvragen door 'WHERE' gebruikersnaam' gelijk te stellen aan de auteur van de reactie.
Met Count(*) dus, maar het werkt niet -_-'
Nu zijn mijn reacties wel geinclude op de pagina forum.php waar de lijst topics opstaan als nog nergens op geklikt is, of een specifiek topic als er wel (op dat topic dan) is geklikt.
Als er dus geklikt is, krijg je het topic, dus de beginpost of vraag zoals sommigen het noemen, en daaronder include ik de reacties.
Maar goed, lange uitleg, even een stukje code.
Dit is dus het geinclude bestand in het bestand forum.php:
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?php
//////////////////////////////////////////////////VARIABELEN DEFINIËREN ///////////////////////////////////////////////////////
date_default_timezone_set('Europe/Brussels');
$datum = date('d-m-Y H:i' ); // Datum om in de database te stoppen bij post.
$id= $_GET['id']; // Id van het topic verktijgen
$bericht = mysql_real_escape_string($_POST['bericht']); // Toevoegen van slashes bij bericht
$auteur = $_SESSION['naam']; // Naam om in te voeren in database
$linkid = $_SESSION['id']; // Id van de gebruiker ophalen, om links naar profielen te doen werken.
// Reacties ophalen (gaan we gebruiken in het tonen van de posts)
$berichten= mysql_query("SELECT * FROM reacties WHERE topic_id= '".$_GET['id']."' ORDER BY id ASC") or die(mysql_error());
//Query bij toevoegen reactie
$code= "INSERT INTO reacties (auteur, datum, topic_id, bericht, auteur_id) VALUES ('".$_SESSION['naam']."', '".$datum."', '".$id."', '".$_POST['bericht']."', '".$linkid."')";
//Aantal posts
$reacties = mysql_query("SELECT COUNT(*) AS berichten FROM reacties WHERE auteur = '".$posts['auteur']."' LIMIT 1") or die(mysql_error());
$aantalposts = mysql_fetch_assoc($reacties);
//////////////////////////////////////////////////VARIABELEN DEFINIËREN ///////////////////////////////////////////////////////
/*
Vanaf hier begint het eigenlijke
script
*/
if (!isset($_POST['submit'])) {
while ($posts= mysql_fetch_array($berichten)) { //loop maken van berichten
echo "<table border='1' width='100%' bordercolor='f3ee95'><tr bgcolor='f3ee95'><td colspan='2'><b><center>".$posts['datum'] ."</center></b></td></tr><tr><td width='30%'><b> <a href=profiel.php?id=".$posts['auteur_id'].">".$posts['auteur']."</a> </b><p><center><img src=""></center><p>Posts: ".$aantalposts['berichten']."</td><td width='70%'>".stripslashes(ubb_code($posts['bericht']))."</td></tr></table><p>"; // Tabel van elke reactie/bericht
} //Begin van het formulier om nieuw bericht te plaatsen
?>
<form method="post" action="" name="form1">
<center />
<table bordercolor='f3ee95'><tr bgcolor='f3ee95'>
<td colspan=2>Bericht</td></tr>
<tr><td colspan=2><textarea name="bericht"></textarea></td></tr>
<tr><td>
<input type="submit" name="submit" value="Toevoegen">
</td><td>
<input style="width: 20px; font-weight: bold;" type="button" size="5" value="B" onclick="javascript: form1.bericht.value += '[b][/b]';">
<input style="width: 20px; text-decoration: underline;" type="button" size="5" value="U" onclick="javascript: form1.bericht.value += '[u][/u]';">
<input style="width: 20px; font-style: italic;" type="button" size="5" value="I" onclick="javascript: form1.bericht.value += '[i][/i]';">
<input style="width: 20px; text-decoration: strike;" type="button" size="5" value="S" onclick="javascript: form1.bericht.value += '[s][/s]';"></td></tr>
</table>
</form>
<?php } //Einde van formulier
else {
if ($_POST['bericht']==""){
echo "<table border='1' width='100%' bordercolor='f3ee95'><tr bgcolor='f3ee95'><td><center>Melding</center></td></tr><td><center>Je hebt niets ingevuld.</center></td></tr></table>";
}
else {
$result= mysql_query($code);
$result;
echo "<table border='1' width='100%' bordercolor='f3ee95'><tr bgcolor='f3ee95'><td><center>Melding</center></td></tr><td><center>Je bericht is succesvol toegevoegd.</center></td></tr></table>"; // Melding geven van toegevoegd bericht.
}
}
?>
//////////////////////////////////////////////////VARIABELEN DEFINIËREN ///////////////////////////////////////////////////////
date_default_timezone_set('Europe/Brussels');
$datum = date('d-m-Y H:i' ); // Datum om in de database te stoppen bij post.
$id= $_GET['id']; // Id van het topic verktijgen
$bericht = mysql_real_escape_string($_POST['bericht']); // Toevoegen van slashes bij bericht
$auteur = $_SESSION['naam']; // Naam om in te voeren in database
$linkid = $_SESSION['id']; // Id van de gebruiker ophalen, om links naar profielen te doen werken.
// Reacties ophalen (gaan we gebruiken in het tonen van de posts)
$berichten= mysql_query("SELECT * FROM reacties WHERE topic_id= '".$_GET['id']."' ORDER BY id ASC") or die(mysql_error());
//Query bij toevoegen reactie
$code= "INSERT INTO reacties (auteur, datum, topic_id, bericht, auteur_id) VALUES ('".$_SESSION['naam']."', '".$datum."', '".$id."', '".$_POST['bericht']."', '".$linkid."')";
//Aantal posts
$reacties = mysql_query("SELECT COUNT(*) AS berichten FROM reacties WHERE auteur = '".$posts['auteur']."' LIMIT 1") or die(mysql_error());
$aantalposts = mysql_fetch_assoc($reacties);
//////////////////////////////////////////////////VARIABELEN DEFINIËREN ///////////////////////////////////////////////////////
/*
Vanaf hier begint het eigenlijke
script
*/
if (!isset($_POST['submit'])) {
while ($posts= mysql_fetch_array($berichten)) { //loop maken van berichten
echo "<table border='1' width='100%' bordercolor='f3ee95'><tr bgcolor='f3ee95'><td colspan='2'><b><center>".$posts['datum'] ."</center></b></td></tr><tr><td width='30%'><b> <a href=profiel.php?id=".$posts['auteur_id'].">".$posts['auteur']."</a> </b><p><center><img src=""></center><p>Posts: ".$aantalposts['berichten']."</td><td width='70%'>".stripslashes(ubb_code($posts['bericht']))."</td></tr></table><p>"; // Tabel van elke reactie/bericht
} //Begin van het formulier om nieuw bericht te plaatsen
?>
<form method="post" action="" name="form1">
<center />
<table bordercolor='f3ee95'><tr bgcolor='f3ee95'>
<td colspan=2>Bericht</td></tr>
<tr><td colspan=2><textarea name="bericht"></textarea></td></tr>
<tr><td>
<input type="submit" name="submit" value="Toevoegen">
</td><td>
<input style="width: 20px; font-weight: bold;" type="button" size="5" value="B" onclick="javascript: form1.bericht.value += '[b][/b]';">
<input style="width: 20px; text-decoration: underline;" type="button" size="5" value="U" onclick="javascript: form1.bericht.value += '[u][/u]';">
<input style="width: 20px; font-style: italic;" type="button" size="5" value="I" onclick="javascript: form1.bericht.value += '[i][/i]';">
<input style="width: 20px; text-decoration: strike;" type="button" size="5" value="S" onclick="javascript: form1.bericht.value += '[s][/s]';"></td></tr>
</table>
</form>
<?php } //Einde van formulier
else {
if ($_POST['bericht']==""){
echo "<table border='1' width='100%' bordercolor='f3ee95'><tr bgcolor='f3ee95'><td><center>Melding</center></td></tr><td><center>Je hebt niets ingevuld.</center></td></tr></table>";
}
else {
$result= mysql_query($code);
$result;
echo "<table border='1' width='100%' bordercolor='f3ee95'><tr bgcolor='f3ee95'><td><center>Melding</center></td></tr><td><center>Je bericht is succesvol toegevoegd.</center></td></tr></table>"; // Melding geven van toegevoegd bericht.
}
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Bounty
Wil je nou de forum posts van een gebruiker ophalen als je op het profiel van een gebruiker aankomt?
Nee, dat werkt dus, maar zou willen dat bij elke post van een lid ook het aantal posts komen te staan. Zoals hier dus eigenlijk (en bijna alle andere fora)
Zou ik dus gewoon met een simpele query alle posts selecteren van die gebruiker en dan met mysql_num_rows het aantal resultaten tellen?
>
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$sql = mysql_query("SELECT id FROM forum_posts WHERE username = '" . $username . "'");
if($sql) { $aantalposts = mysql_num_rows($sql); } else { echo mysql_error(); }
// aantal posts
echo "Aantal posts: " . $aantalposts;
?>
$sql = mysql_query("SELECT id FROM forum_posts WHERE username = '" . $username . "'");
if($sql) { $aantalposts = mysql_num_rows($sql); } else { echo mysql_error(); }
// aantal posts
echo "Aantal posts: " . $aantalposts;
?>
Ook niet echt in de code gekeken; maar meestal als ik zo'n soort probleem heb, dan haal ik de posts op van de ingelogde gebruiker in plaats van de gebruiker die het bericht gepost heeft. Daar zou je naar kunnen kijken.
Wel, dat is nu net wat niet wilt lukken :S Ik probeer die te selecteren met 'n simpele query, maar bij de 'WHERE' gaat ie volgens mij mis :P En ik weet niet meteen waarom...
Je gebruikt de variabele zonder eerst er een waarde aan toe te kennen. Moet dit geen $_POST['auteur'] zijn?
Gr,
PH-MJS