login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Messages db

Offline ArcanA - 15/12/2007 16:55
Avatar van ArcanAPHP beginner Hallo!
Ik ben bezig met gegevens uit de database te halen.

Is het mogelijk , als je een nieuw bericht krijgt, dit uit de database te halen, vb:

Berichten: "1"

Als je op berichten "1" Klikt, word het weer 0.

Ik heb een tabel: Messages, en een veld met read.
Als read 0is, heb je het bericht nog niet gelezen.
Als read1 is, heb je het bericht gelezen.

Is het mogelijk, om de berichten die read0 zijn, uit de database te halen, om zo weer te geven?

  1. <?php
  2. $query=mysql_query("SELECT inbox FROM messages WHERE inbox = '".$_SESSION['login']."'");
  3. $aantal =mysql_num_rows($query);
  4. echo "<font color='#FFFFFF' size='2' face='Comic Sans MS'>Berichten:</font> ".$aantal."<br>";
  5. ?>


Kan iemand me hiermee helpen?

ArcanA

4 antwoorden

Gesponsorde links
Offline Bart - 15/12/2007 17:12
Avatar van Bart PHP expert
  1. $query=mysql_query("SELECT inbox FROM messages WHERE inbox = '".$_SESSION['login']."' AND read = 0");
Offline ranco - 15/12/2007 17:23
Avatar van ranco PHP gevorderde Precies zoals quicky het zegt. Maak in je tabel een extra kolom aan met een titel zoals: message_state. Bij waarde 0 is hij al gelezen, bij waarde 1 nog niet. Wanneer de gebruiker dan op het berichten knopje drukt, en het bericht leest wordt meteen het bericht op gelezen gezet.

Het tellen van het aantal ongelezen messages gebeurd met COUNT()
Offline ArcanA - 15/12/2007 17:26 (laatste wijziging 15/12/2007 18:35)
Avatar van ArcanA PHP beginner @Hierboven:
Zoiets heb ik toch al? Als het berichtje gelezen word, word het auto op read="1" gezet

Het wilt niet lukken..

Mss ben je hier wat mee:

  1. --
  2. -- Tabel structuur voor tabel `messages`
  3. --
  4.  
  5. CREATE TABLE `messages` (
  6. `id` int(4) NOT NULL AUTO_INCREMENT,
  7. `from` varchar(16) NOT NULL DEFAULT '',
  8. `to` varchar(16) NOT NULL DEFAULT '',
  9. `subject` varchar(50) NOT NULL DEFAULT '',
  10. `message` text NOT NULL,
  11. `time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  12. `read` int(1) NOT NULL DEFAULT '0',
  13. `inbox` int(1) NOT NULL DEFAULT '0',
  14. `save` int(1) NOT NULL DEFAULT '0',
  15. PRIMARY KEY (`id`)
  16. ) ENGINE=MyISAM AUTO_INCREMENT=40 DEFAULT CHARSET=latin1 AUTO_INCREMENT=40 ;
  17.  
  18. --
  19. -- Gegevens worden uitgevoerd voor tabel `messages`
  20. --
Offline ranco - 15/12/2007 22:20 (laatste wijziging 15/12/2007 22:58)
Avatar van ranco PHP gevorderde Script om alle niet gelezen berichten te laten zien:

  1. //Query voor tellen ongelezen berichten
  2. $countrs = mysql_query("SELECT COUNT(id) AS aantal FROM messages WHERE read=0") or die ("Error counting unread messages: " . mysql_error());
  3. while ($countarr = mysql_fetch_assoc($countrs)){
  4. $aantal = $countarr["aantal"];
  5. }
  6.  
  7. //Query voor tonen ongelezen berichten
  8. $mesrs = mysql_query("SELECT from, subject FROM messages WHERE read=0 ORDER BY id DESC") or die ("Error while retrieving unread messages: ". mysql_error());
  9. while ($mesarr = mysql_fetch_assoc($mesrs)){
  10. echo "<b>". $mesarr["from"]."</b> ";
  11. echo $messarr["subject"];
  12. }


Wanneer de tweede query een foutmelding geeft, dan moet je de veldnaam in je tabel "from" veranderen. Aangezien FROM ook in een query wordt gebruikt.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.18s