• 15-06-2013, 01:15:03
    #1
    ticket_info tablom= (id, userid, subject, case, category, date, usernick)

    ticket_messages tablom= (id, senderid, message, sendernick, ticketid, date)

    Bir ticket sistemi yapmaya çalışıyorum mesela başlığı, cevap bekliyor vs durumları ticket_info'da , mesajlarda ticket_messages 'da olacak şekilde.

    Yeni ticket eklerken ticket_info'da ki id'yi alıp ticket_messages 'deki ticketid kısmına yazdırmam lazım. Ama bi kaç yerde okuduğuma göre mysql_insert_id(); çoklu girişlerde sorun yaratabiliyormuş. Bir alternatifi varmıdır? Tablolarıma göre örnek verebilirmisiniz?

    Teşekkürler,
    İyi forumlar.
  • 15-06-2013, 01:56:03
    #2
    $sql = "SELECT LAST_INSERT_ID()";

    bu şekilde alabilirsiniz
  • 15-06-2013, 02:01:49
    #3
    mysql_insert_id asla sıkıntı çıkartmaz.
  • 15-06-2013, 16:57:18
    #4
    $info_query = mysql_query("insert into ticket_info (userid, subject, case, category, date, usernick)values('$user_id', '$subject', '1', '$category', '$datetime', '$user_nick')");
    		$info_id = mysql_insert_id();
    		$messages_query = mysql_query("insert into ticket_messages (senderid, message, sendernick, ticketid, date)values('$user_id', '$message', '$user_nick', '$info_id', '$datetime')");
    Böyle yapıyorum ancak $info_id'i idyi almıyor bi yanlışlıkmı var acaba?
  • 15-06-2013, 17:46:27
    #5
    Reveloper
    alması lazım info_id'yi bi yanlışlık var

    echo $info_id; yaptığında basıyomu ekrana?
  • 15-06-2013, 18:04:16
    #6
    Üyeliği durduruldu
    php olarak değil de mysql trigger deneyebilirsin ?
  • 15-06-2013, 18:49:20
    #7
    Burti adlı üyeden alıntı: mesajı görüntüle
    alması lazım info_id'yi bi yanlışlık var

    echo $info_id; yaptığında basıyomu ekrana?
    0 olarak basıyor ekrana :/

    Hyperion örnek verebilirmisin?
  • 15-06-2013, 19:27:36
    #8
    Üyeliği durduruldu
    Alıntı
    $info_query = mysql_query("insert into ticket_info (userid, subject, case, category, date, usernick)values('$user_id', '$subject', '1', '$category', '$datetime', '$user_nick')");
    $info_id = mysql_insert_id();
    $messages_query = mysql_query("insert into ticket_messages (senderid, message, sendernick, ticketid, date)values('$user_id', '$message', '$user_nick', '$info_id', '$datetime')");
    için

    Alıntı
    DELIMITER $$
    CREATE TRIGGER asdf AFTER INSERT ON ticket_info FOR EACH ROW
    BEGIN
    INSERT INTO ticket_messages (senderid, message, sendernick, ticketid, date) VALUES (NEW.userid, '$message', '$user_nick', '$info_id', NOW())
    END
    $$

    DELIMITER ;
    gibi, ama message, usernick, infoid yi nasıl alırsın bilemiyorum
  • 17-06-2013, 18:05:07
    #9
    ilk mesajda

    ticket_info tablom= (id, userid, subject, case, category, date, usernick)

    ticket_messages tablom= (id, senderid, message, sendernick, ticketid, date)

    demişsiniz sonra verilen kod ise


    quaick adlı üyeden alıntı: mesajı görüntüle
    $info_query = mysql_query("insert into ticket_info (userid, subject, case, category, date, usernick)values('$user_id', '$subject', '1', '$category', '$datetime', '$user_nick')");
    		$info_id = mysql_insert_id();
    		$messages_query = mysql_query("insert into ticket_messages (senderid, message, sendernick, ticketid, date)values('$user_id', '$message', '$user_nick', '$info_id', '$datetime')");
    Böyle yapıyorum ancak $info_id'i idyi almıyor bi yanlışlıkmı var acaba?
    demekki ilk koda göre düzenlediğimizde doğru kod şu olmalı:

    $info_query = mysql_query("insert into ticket_info (id, userid, subject, case, category, date, usernick)values(null, '$user_id', '$subject', '1', '$category', '$datetime', '$user_nick')");
    		$info_id = mysql_insert_id();
    		$messages_query = mysql_query("insert into ticket_messages (id, senderid, message, sendernick, ticketid, date)values(null, '$user_id', '$message', '$user_nick', '$info_id', '$datetime')");
    böyle olunca
    $info_id = mysql_insert_id();
    çalışır öncekinde mysql_insert_id(); fonksiyonunun alacağı id yok ortada