Posts van lid ophalen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bounty

Bounty

11/01/2010 18:35:00
Quote Anchor link
Oké, ik dacht dat het simpel was xD, maar na lang gepruts werkt het dus nog niet hoe ik had gewild.

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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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.
      }  

                                
    }
    
?>
    
Gewijzigd op 01/01/1970 01:00:00 door Bounty
 
PHP hulp

PHP hulp

28/11/2024 20:49:00
 
Timen kut

Timen kut

11/01/2010 20:06:00
Quote Anchor link
Ik snap er geen drol van met je lap tekst zonder enters etc.


Wil je nou de forum posts van een gebruiker ophalen als je op het profiel van een gebruiker aankomt?
 
Bounty

Bounty

11/01/2010 22:04:00
Quote Anchor link
Heb wat enters in de drol gestoken ;) Zou wat overzichtelijker moeten zijn nu =]

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)
 
Wouter De Schuyter

Wouter De Schuyter

11/01/2010 22:10:00
Quote Anchor link
Heb nog niet echt naar je script gekeken maar afgaand op de titel van deze post..

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)
PHP script in nieuw venster Selecteer het PHP script
1
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;
?>
 
Gerben Jacobs

Gerben Jacobs

11/01/2010 22:43:00
Quote Anchor link
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.
 
Bounty

Bounty

11/01/2010 22:45:00
Quote Anchor link
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...
 
PH-MJS

PH-MJS

12/01/2010 08:01:00
Quote Anchor link
Waar komt de variabele $posts['auteur'] vandaan?
Je gebruikt de variabele zonder eerst er een waarde aan toe te kennen. Moet dit geen $_POST['auteur'] zijn?

Gr,
PH-MJS
 
Bounty

Bounty

12/01/2010 10:20:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
while ($posts= mysql_fetch_array($berichten)) {  //loop maken van berichten


Hiervan
 
Mr.Ark

Mr.Ark

12/01/2010 11:00:00
Quote Anchor link
Je moet sowieso niet de naam gaan gebruiken in je WHERE, wat nou als iemand zijn naam veranderd? (als dat tenminste kan) Dan begint de teller dus weer bij 0. Gebruik gewoon het id van de gebruiker.

Verder met die query van paradox moet werken.
Gewijzigd op 01/01/1970 01:00:00 door Mr.Ark
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.