tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
175
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    MrSpoocy MrSpoocy ist offline Mitglied
    Registriert seit
    Sep 2003
    Beiträge
    17
    Hi,

    Ich habe eine Simple DB-Strucktur.

    PHP-Code:
    CREATE TABLE IF NOT EXISTS `m_msg` (
      `
    numsmallint(3unsigned NOT NULL auto_increment,
      `
    msgvarchar(255NOT NULL,
      
    PRIMARY KEY  (`num`)
    ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=;

    CREATE TABLE IF NOT EXISTS `m_msg_log` (
      `
    useridint(3unsigned NOT NULL,
      `
    msgListvarchar(255NOT NULL,
      
    PRIMARY KEY  (`userid`)
    ENGINE=MyISAM DEFAULT CHARSET=utf8;

    CREATE TABLE IF NOT EXISTS `m_user` (
      `
    idint(3unsigned NOT NULL auto_increment,
      `
    namevarchar(24NOT NULL,
      
    PRIMARY KEY  (`id`)
    ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=;

    INSERT INTO `m_msg` (`num`, `msg`) VALUES (1'Hallo, Nachricht 1'), (2'Hallo, Nachricht 2');
    INSERT INTO `m_msg_log` (`userid`, `msgList`) VALUES (1'1'),(2'2'),(3'1,2');
    INSERT INTO `m_user` (`id`, `name`) VALUES (1'Test A'), (2'Test B'), (3'Test C'), (4'Test D'), (5'Test E'),(6'Test F'); 
    Nun wollte ich eine abfrage machen welche user alles noch die nachricht X bekommen sollen.

    SELECT T1.id,T1.name,T2.msgList FROM m_user AS T1
    LEFT JOIN m_msg_log AS T2 ON T2.userid=T1.id
    WHERE IFNULL(2 NOT IN (T2.msgList),1)
    ORDER BY T1.id


    Die 2 bei IFNULL(2 NOT IN (T2.msgList),1) ist nee Variable die übergeben wird. Normaler weise soll er prüfen ob 2 in 2,1 .. 1 ... 2 ist.
    Nehme ich anstelle von 2 mal die 1 so werden die user richtiger weise weggelassen die 1 oder 1, zu stehen haben.
    Jedoch sobald ich eine zahl auschließen will die nach dem 1, kommt geht es nicht mehr.
    Irgendwie behandelt er msgList nicht als "liste". Einer nee idee was falsch sein könnte ?
     

  2. #2
    planb2000 planb2000 ist offline Mitglied Gold
    Registriert seit
    Mar 2008
    Beiträge
    133
    HI,

    könnten in Deiner Liste evtl. NULL werte drinnen stehen?

    Ach ich sehe gerade, nein da stehen ja werte drinnen...

    Also in einem Feld in der Spalte msgList , steht aber der Wert "1,2" den kann er nicht finden, glaube ich, da das ja ein String ist.
    Du möchtest also alle Felder weglassen in denen in der Spalte T2.msgList eine "2" steht, ja ?



    Grüße
    Geändert von planb2000 (19.11.08 um 22:23 Uhr)
     

  3. #3
    MrSpoocy MrSpoocy ist offline Mitglied
    Registriert seit
    Sep 2003
    Beiträge
    17
    Ja.

    Aber in dem feld soll er halt alle nummern speichern die der user schon bekommen hat.
     

Ähnliche Themen

  1. MySQL Feld A nach Feld B kopieren
    Von julia29 im Forum Relationale Datenbanksysteme
    Antworten: 9
    Letzter Beitrag: 19.01.11, 20:41
  2. Feld in MySQL DB verschlüsseln
    Von musmus im Forum Relationale Datenbanksysteme
    Antworten: 4
    Letzter Beitrag: 14.03.07, 23:31
  3. PHP/MYSQL Feld Type
    Von KICK im Forum PHP
    Antworten: 3
    Letzter Beitrag: 31.01.06, 16:55
  4. [PHP-mySQL] Feld incrementieren?
    Von Neok im Forum PHP
    Antworten: 2
    Letzter Beitrag: 29.11.05, 20:45
  5. MySQL Feld in Word
    Von kesnw im Forum PHP
    Antworten: 3
    Letzter Beitrag: 19.04.04, 15:43