Hallo,

Ik heb weinig ervaring met PHP en ik wil een soort van interne mailbox maken, wat zo'n beetje werkt als een private message systeem van een forum. Op dit moment hebben we een database met een stuk van 500 gebruikers erin. En die dus via die interne mailbox elkaar berichten kunnen sturen.
Ik hoop dat jullie hier genoeg info aan hebben.

gr. Jasper
niels schreef op 23.03.2006 13:50
ik heb heir wel een simpel systeem liggen maar ik ga het je niet zo direct doorsturen ik wil je wel helpen maar net zoals iedereen hier we gaan het niet voor je maken, je moet er zelf uit leren


@ Niels : heb ik jou ook ooit nog is een PM'tje gemailt...
line 12: $result = mysql_query("SELECT COUNT(`id`) FROM pm WHERE to ='".$_SESSION[naam]."'");

line 13: $berichten = mysql_result($result,0):

Peut-ĂȘtre ?
Okee. Het is geheel wat anders. Het woordje 'to' is een gereserveerd word. Niet gebruiken dus. Zie hier.
Aha... dat verklaart wel een hoop :)

Naja dat wordt dus even het 1 en ander aanpassen. Dan zal het waarschijnlijk wel werken. Bedankt voor de hulp, je hoort zo of het heeft gewerkt.
je kan to ook tussen de backticks zetten.. dus:

$result = mysql_query("SELECT COUNT(`id`) FROM pm WHERE `to` ='".$_SESSION[naam]."'");

dan moet het wel werken..
backticks = slecht, begin er niet aan
wes, waarom is het slecht? waarom moeten we er niet aan beginnen?
Ik heb nog een klein probleempje met pm systeem.


<?php
session_start();
include ("dbconnect.php");
include ("pm_head.php");
?> 
<style type="text/css">
<!--
body { background-color: #CCCCCC; font-size:9px; font-style: verdana;}
TBODY { overflow: auto; font-style: verdana; font-size: 11px;}
-->
</style>
<body text=black link=black alink=black vlink=black>
<table width="427">
<tr>
<td width="6%">
</td>
<td width="20%">
Van:
</td>
<td width="35%">
Datum
</td>
<td width="39%">
Onderwerp
</td>
</tr>
<form action="pm_inbox.php" method="post">
<?php
if (isset($_POST["what"])){
$what =  $_POST["what"];
foreach ($_POST as $mid){
if (is_numeric($mid) == true){
if (isset($mid)){
switch ($what) {
case "delete":
$check_dwd = mysql_query("SELECT * FROM pmoptions WHERE user = '$_SESSION[naam]'");
while (list($id, $user, $alert, $buddy, $block, $dwd) =
mysql_fetch_row($check_dwd)){
if ($dwd = "delete"){
$query = "DELETE FROM pm WHERE id = '$mid'";
mysql_query($query);
}
}
break;
case "unread";
$query = "UPDATE pm SET read = '0' WHERE id = '$mid'";
mysql_query($query);
break;
case "read";
$query = "UPDATE pm SET read = '1' WHERE id = '$mid'";
mysql_query($query);
break;
}
}else{}
}else{}
}
}else{}
$i = 0;
$result = mysql_query("SELECT * FROM pm WHERE ontvanger = '$_SESSION[naam]' && `read` != -1 ORDER by id DESC", $db);
while (list($id, $from, $ipsender, $to, $date, $time, $sub, $mes, $read) =
mysql_fetch_row($result)){
?> 
<tr>
<td>
<input type="checkbox" name="<?php echo $i?>" value="<?php echo $id ?>">
</td>
<td>
<a href="pm_new.php?to=<?php echo $from ?>"><?php echo $from ?></a>
</td>
<td>
<?php echo $date ?>
<?php echo $time ?>
</td>
<td>
<a href="pm_read.php?m=<?php echo $id ?>">
<?php echo $sub ?>
</a>
</td>
</tr>
<?php
$i++;
}
?>
</table>
<table width="424">
<tr>
<td width="364">
geselecteerde berichten?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<select name="what">
<option value="delete">Verwijderen</option>
<option value="unread">Markeren als ongelezen</option>
<option value="read">Markeren als gelezen</option>
</select>
<input type="submit" value="Uitvoeren">
</td>
</tr>
</table>
</form>


het deleten werkt wel, alleen het read/unread zetten werkt niet, dat zou wel handig zijn zodat ik dan kan laten zien hoeveel nieuwe berichten er zijn voor de gebruiker. Ik kom er even niet uit.
Maak een xtra veld aan "gelezen"
en die is 0 of 1

en je selecteert je nieuwe berichten:

<?php
$kwerie = "SELECT * FROM berichten WHERE ontvanger = '".$huidigenaam."' AND gelezen = 0";
mysql_Query($kwerie);
?>

is dit wat je bedoelde?
Nee niet helemaal maar toch bedankt. :) Dat werkte namelijk wel.

Alleen wat het script dus NIET doet is de waarde van 0 of 1 geven aan read in de database.

Reageren