Maar, probleem is dat ik al die gebruikers nu handmatig moet invoeren. Dat betekent dat zodra er een nieuwe vrijwilliger bijkomt, ik een tabel voor hem moet aanmaken en de code moet aanpassen om hem toe te voegen onder een bericht.
Wat ik wil bereiken is dat nieuwe leden automatisch worden toegevoegd. Ik heb een tabel waar alle leden in staan, deze kan bewerkt en opgeroepen worden door een pagina. Ik wil dat, als ik op deze ledenpagina een gebruiker toevoeg, deze nieuwe persoon ook automatisch onder alle berichten wordt geplaatst. En zodra een vrijwilliger weggaat, hij niet meer gedisplayd wordt onder een bericht.
Als ik nu de gegevens van alle leden inlaad via een `mysql_fetch_array` functie direct onder ieder bericht, dan creëer ik geen unieke. Dat wil zeggen dat als persoon A bericht 1 wil afvinken, hij op alle geplaatste berichten afgevinkt wordt en niet alleen voor bericht 1. Ik wil dus dat ieder bericht een unieke table krijgt met alle leden erin (welke dus uit de database gehaald wordt), waarbij alleen dat bericht de gebruiker afgevinkt wordt.
Hoe doe ik dit?
Wat ik tot nu toe heb:
<b>De tabel db_users</b>
id (AI), primary
naam (varchar), 255
adres (varchar), 255
email (varchar), 255
isActief (varchar), 5 //als deze `value` op ja staat, dan wordt zijn foto wel zichtbaar onder ieder bericht. Als deze `value` op nee staat dan wordt hij niet meer getoond.
<b>De tabel db_messages</b>
id (AI), primary
naam (varchar), 255 //de naam van de persoon die het bericht plaatst
bericht (varchar), 999 //het bericht zelf
urlUserA // De url van de foto van vrijwilliger A
urlUserB // De url van de foto van vrijwilliger B
urlUserC // De url van de foto van vrijwilliger C
<b>mark_read.php</b>
$sql2 = "SELECT * FROM $tbl_name WHERE id = ".$_GET['id']; //om het specifieke bericht te krijgen
$result2 = mysql_query($sql2);
$url = $_GET['url']; // De url van de MARKEER-GELEZEN foto
$recover = $_GET['recover']; // De url van de MARKEER-ONGELEZEN foto
$tabel = $_GET['tabel'];
$id = $_GET['id'];
$date = $_GET['date'];
$row = mysql_fetch_assoc($result2);
$tabel_content = $row[$tabel];
if ($tabel_content == $url){
$sql = "UPDATE " . mysql_real_escape_string($tbl_name) .
" SET ".$_GET['tabel']." = '".$_GET['recover'].
"' WHERE id = ".$_GET['id'];
$result = mysql_query($sql);
}
elseif ($tabel_content == $recover) {
$sql = "UPDATE " . mysql_real_escape_string($tbl_name) .
" SET ".$_GET['tabel']." = '".$_GET['url'].
"' WHERE id = ".$_GET['id'];
$result = mysql_query($sql);
}
Bovenstaande code is er om te kijken of een gebruiker het bericht al gelezen heeft of niet. Als hij gemarkeerd is wordt dit ongedaan gemaakt na klikken. Als dit bericht ongelezen is wordt hij gemarkeerd na klikken.
Zoals je kunt zien moet ik dus iedere keer een gebruiker toevoegen aan de code en aan de tabel, een hoop omslachtig werk. Ik wil dus dat als ik in `db_user` een gebruiker toevoeg, hij ook meteen zichtbaar is onder de berichten, zonder een nieuwe table `urlUserD` aan te hoeven maken.
Het bericht wordt geplaatst via deze pagina:
<b>addMSG.php</b>
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$onderwerp = $_POST['onderwerp'];
$datum = $_POST['datum'];
$bericht = $_POST['bericht'];
$naam = $_POST['naam']; // de naam van de persoon die het bericht plaatst
$sql="INSERT INTO $tbl_name(
datum,
archief,
jaar,
bericht,
naam,
onderwerp
)
VALUES(
'$datum',
'nee',
'2014',
'$bericht',
'$naam',
'$onderwerp'
)";
$result = mysql_query($sql);
Hoe (en waar) maak ik een code om alles aan elkaar te koppelen?