ik heb dus een forum op mijn site staan, hij werkt!
alleen wil ik graag op de index.php het zelfde forum, maar dan alleen met de topic's die 'ík' of de 'ingelogde gebruiker' heeft aangemaakt.. is dit mogenlijk??? ik persoonlijk denk van wel maar weet alleen ff niet hoe.
Dit is nu het script:
is er een database structuur nodig of andere stukjes script dan hoor ik het wel :)
Bij voorbaad dank,
Reduan Kurtaj
<?php
echo
'<table width="90%" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">
<td width="53%" align="center" bgcolor="#E6E6E6"><strong>Topic</strong></td>
<td width="5%" align="center" bgcolor="#E6E6E6"><strong>Reacties</strong></td>
<td width="13%" align="center" bgcolor="#E6E6E6"><strong>Aangemaakt op</strong></td>
</tr>';
include('conn.php');
// we maken een query die alle topics ophaalt met hun gegevens.
$sql = "SELECT topic_id, topic_titel, topic_datumtijd FROM topic ORDER BY topic_id DESC";
// die query voeren we uit.
$resultaat = mysql_query($sql)or die(mysql_error());
// hier slaan we alle resultaten op in een array genaamd rij.
while($rij = mysql_fetch_array($resultaat)){
// Per topic het aantal reactie;s ophalen.
$sql2 = mysql_query("SELECT reactie_id FROM reactie WHERE topic_id = ".$rij['topic_id'].";")or die(mysql_error());
// hier tellen we de resultaten en slaan dit op in $reacties
$reacties = mysql_num_rows($sql2);
//alles netjes weergeven in een tabel.
echo
'
<tr>
<td bgcolor="#FFFFFF"><a href="?bekijktopic='.$rij['topic_id'].'">'.stripslashes($rij['topic_titel']).'</a></td>
<td align="center" bgcolor="#FFFFFF">'.$reacties.'</td>
<td align="center" bgcolor="#FFFFFF">'.$rij['topic_datumtijd'].'</td>
</tr>
';
}
echo '<tr>
<td colspan="5" align="right" bgcolor="#E6E6E6"><a href="?maaktopic">Maak een nieuw Topic aan</a></td>
</tr>
</table>';
?>
Een "Mijn topics" overzicht?
Je kan toch iets doen zoals:
SELECT topic_id, topic_titel, topic_datumtijd FROM topic WHERE user_id = '42' ORDER BY topic_id DESC
Verder zou ik dit liever sorteren op de datum wanneer er voor het laatste gepost is.
Ook prefereer ik om het aantal reacties ook in een apart veld op te slaan, zodat je niet per topic een extra querie hoeft te draaien. Je moet dan wel goed opletten dat het aantal blijft kloppen bij verwijder/verplaats-acties enzovoort.
Ook vraag ik me af waarom er weer slechte fout-afhandeling wordt gebruikt? die() hoor je NOOIT in een script te gebruiken, omdat een script nooit moet sterven.
Los van de PHP-code kan je de tabellen natuurlijk ook prima in CSS-stylen, want nog schonere code zal opleveren.
en het zal ook niet anders dan dat die NIET in 1x werkt :(
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /mnt/webc/e2/15/53954115/htdocs/index1.php on line 64
Regel 64:
<?php
// we maken een query die alle topics ophaalt met hun gegevens.
$sql = "SELECT topic_id, topic_titel, topic_datumtijd FROM topic WHERE id = '.$_SESSION['id']' ORDER BY topic_id DESC";
?>
Kijk eens naar je string. Je start het met een " dus moet je hem ook weer onderbreken met een ", waarna je een variabele eraan kan koppelen met een punt (.) Plus dat je daarna de string weer af moet maken:
<?php
echo "Dit is een string" .$dit_is_een_variabele. "dit is een string";
?>
Probeer nu zelf eens door logisch te kijken.
Let er wel op dat alle waardes in je WHERE in ieder geval voor je SQL al tussen single-quotes horen, net zoals de '42' in mijn voorbeeld.
en het zal ook niet anders dan dat die NIET in 1x werkt :(
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /mnt/webc/e2/15/53954115/htdocs/index1.php on line 64
Regel 64:
<?php
// we maken een query die alle topics ophaalt met hun gegevens.
$sql = "SELECT topic_id, topic_titel, topic_datumtijd FROM topic WHERE id = '.$_SESSION['id']' ORDER BY topic_id DESC";
?>
Je gebruikt hier $_SESSION['id'] in een string. Dat kan, maar in dat geval moet je geen quotes om 'id' zetten, omdat die al in een string context staat. Daarnaast lijkt het me logisch dat 'id' een numerieke waarde is. In je query horen er dan geen quotes omheen (okay, MySQL kijkt niet zo nauw, maar zodra je een keer met een echt DBMS gaat werken schiet je jezelf in je voet). Je code zou dus moeten worden:
<?php
// we maken een query die alle topics ophaalt met hun gegevens.
$sql = "SELECT topic_id, topic_titel, topic_datumtijd FROM topic WHERE id = $_SESSION[id] ORDER BY topic_id DESC";
?>