login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Berichten systeem doet het niet..

Offline Scythen - 31/01/2007 18:25 (laatste wijziging 31/01/2007 21:46)
Avatar van ScythenPHP gevorderde Edit: Ik heb nu deze code:

  1. <?
  2.  
  3. $login =$_SESSION['login'];
  4. $memberid= $_SESSION['id'];
  5.  
  6. $res = mysql_query("SELECT * FROM priveberichten WHERE id ='$memberid'");
  7. while ($object = mysql_fetch_object($res)) {
  8. $van = $object->van;
  9. $bericht = $object->bericht;
  10. $date =$object->datum;
  11. ?>
  12.  
  13. Van: <? echo $van;?><br>
  14. Bericht: <? echo $bericht;?><br>
  15. Date: <? echo $date;?><br>
  16.  
  17. <?}
  18. }?>


Maar hij laat alleen het aller eerste message zien die hij heeft ontvangen, en niet allemaal.. iemand enig idee? BVD.

14 antwoorden

Gesponsorde links
Offline letscode - 31/01/2007 18:32
Avatar van letscode HTML beginner Je moet de echo's in tussen de {} van de while loop zetten.
Nu zet je namelijk telkens de data in de de vars, zonder er iets mee te doen, en bij de volgende x worden ze weer overschreven zonder dat ze ge echoot zijn.

logisch dat je alleen het laatste bericht krijgt 
Offline Scythen - 31/01/2007 18:48
Avatar van Scythen PHP gevorderde Hmm, heb het verandert.. maar lukt alsnog niet..
Offline jeroentjuh - 31/01/2007 19:03
Avatar van jeroentjuh PHP ver gevorderde Zo zou het ongeveer eruit moeten zien:
http://plaatscode.be/4023/
Offline Scythen - 31/01/2007 21:48 (laatste wijziging 31/01/2007 21:51)
Avatar van Scythen PHP gevorderde Iemand? Kan het ook aan mijn messageadd.php liggen?
Offline Mad_Mike - 01/02/2007 00:01
Avatar van Mad_Mike PHP beginner Weet niet welke velden je in de database hebt staan. Maar lijkt me niet logisch dat je `member_id` gelijk is aan het `id` van een bericht.

Een voor mij logischere query lijkt me:
"SELECT * FROM priveberichten WHERE ontvanger_id ='".$memberid."'"

En je kunt altijd controleren op het aantal results door:
echo mysql_num_rows($res);
Offline Cozze - 01/02/2007 00:08
Avatar van Cozze HTML interesse <?}
}?>
zo eindig je, terwijl er maar 1 while is, en geen ifs.
is dat je error niet?
Offline Ultimatum - 01/02/2007 00:10
Avatar van Ultimatum PHP expert Heb je die van jeroentjuh al doorgekeken dan? Want volgens mij moet die het gewoon doe. Ook is daar die dubbele } aan het eind eruit wat volgens mij het probleem is
Offline Abbas - 01/02/2007 12:33
Avatar van Abbas Gouden medaille

Crew .NET
Volgens mij is dat van jeroentjuh goed, behalve het feit dat hij rond $memberid alleen dubbele quotes gebruikt:
  1. <? //kleur
  2. $query = mysql_query("SELECT * FROM priveberichten WHERE id = ".$memberid." ORDER BY id DESC LIMIT 10");


Moet het dan niet zijn:
  1. <? //kleur
  2. $query = mysql_query("SELECT * FROM priveberichten WHERE id = '".$memberid."' ORDER BY id DESC LIMIT 10");

??

Zoizo is er inderdaad een dikke fout in Scythen z'n code, de dubbele '}' op het einde, er staat er maar 1 open...
Offline nielsvdwal - 01/02/2007 13:12
Avatar van nielsvdwal PHP gevorderde titjes.. memberid is een getal.. daar ga ik in ieder geval vanuit.. dus die hoeft niet tussen enkele quotes.. getallen hoeven nooit tussen quotes 
Offline Thomas - 01/02/2007 14:09
Avatar van Thomas Moderator Ik zou verwachten dat "id" de naam van de kolom is die berichten uniek identificeert (key, auto_increment).

Wellicht moet de query veranderen van:
WHERE id = ...
naar
WHERE ontvanger = ...

Of iets dergelijks.

Wat Mad_Mike zegt dus.

En als dit niet de oorzaak is, zou ik toch eens over een wat logischere naamgeving gaan nadenken dan .
Offline slabbetje - 01/02/2007 15:12
Avatar van slabbetje Nieuw lid ik heb zelf ook een tijdje lope klooie met een private message systeem,
is het mischien een idee om de berichten in je inbox een getfunctie met het id , t enige jammere is dat je dan de boel van andere kunt lezen daar zou je het dan dus op moeten beveiligen door bijv..

if (isset($_GET['id'] AND $login = $sessionlogin)) {

}
kheb maar ff snel een voorbeeld gemaakt maar dat zou dus kunnen werken
Offline Ibrahim - 01/02/2007 15:27
Avatar van Ibrahim PHP expert wat jij doet is $login de waarde $sessionlogin geven, voor controleren moet je natuurlijk == gebruiken, om ook nog eens de type te controleren doe je ===
Offline Thomas - 01/02/2007 15:54 (laatste wijziging 01/02/2007 15:54)
Avatar van Thomas Moderator
Citaat:
t enige jammere is dat je dan de boel van andere kunt lezen
Hm? Via de URL geef je alleen door wat je wilt tonen, maar dit zegt niets over of je het daadwerkelijk te zien krijgt.
Je kan daarna gaan controleren of het bericht bestaat, en zoja, of het voor die persoon die het probeert te bekijken bedoeld is.
Offline Scythen - 01/02/2007 16:01
Avatar van Scythen PHP gevorderde Ik heb het geprobeerd, nu lukt het wel .. maar dan nu heb ik een probleem met de verstuurder..

want je krijgt te zien: van:

maar nu laat ie zien: 0, of 1.. getallen laat ie zien, in plaats van de username waarvan je hem hebt ontvangen..
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.236s