За последние 24 часа нас посетили 17483 программиста и 1721 робот. Сейчас ищут 1582 программиста ...

как мне сделать так, чтоб при входе показывало с последнего

Тема в разделе "PHP и базы данных", создана пользователем NIKO, 7 авг 2006.

  1. NIKO

    NIKO Активный пользователь

    С нами с:
    10 фев 2006
    Сообщения:
    655
    Симпатии:
    0
    Адрес:
    Armenia
    У меня есть база с сообщениеми чата, как мне сделать так, чтоб при входе показывало с последнего сообщение?
    И еще если число сообщени привышает $x то удалить первые $y сообщение?
     
  2. Ti

    Ti Активный пользователь

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    1.
    SELECT * FROM table_name ORDER BY id DESC LIMIT 1
    или
    SELECT * FROM table_name GROUP BY id HAVING id = MAX(id) LIMIT 1
     
  3. Ti

    Ti Активный пользователь

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    2.
    $id = SELECT id FROM table_name ORDER BY id DESC LIMIT $x, 1

    DELETE FROM table_name WHERE id <= $id
     
  4. NIKO

    NIKO Активный пользователь

    С нами с:
    10 фев 2006
    Сообщения:
    655
    Симпатии:
    0
    Адрес:
    Armenia
    Как понимать id?
     
  5. Ti

    Ti Активный пользователь

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    id в бд это auto_increment поле
    $id в php - результат запроса
     
  6. Ti

    Ti Активный пользователь

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    вернее так, c $x и $y
    Код (Text):
    1.  
    2. $id = SELECT id FROM table_name ORDER BY id DESC LIMIT $x, 1
    3. if ($id) {
    4.    $id = SELECT id FROM table_name ORDER BY id DESC LIMIT $y, 1
    5.    DELETE FROM table_name WHERE id <= $id
    6. }
     
  7. NIKO

    NIKO Активный пользователь

    С нами с:
    10 фев 2006
    Сообщения:
    655
    Симпатии:
    0
    Адрес:
    Armenia
    Смотри у меня в базе так
    post|tuser|fuser|mess
    Здесь post время сообщения
    tuser получатель
    fuser отправитель
    mess само сообщение
    а код такой
    PHP:
    1.  
    2. <?
    3. if (!isset($_SESSION['db_is_logged_in']) || $_SESSION['db_is_logged_in'] !== true) {
    4.       echo "<script language='javascript'>window.open('login.php', '_parent')</script>";
    5.       exit;
    6. }
    7. include 'opendb.php';
    8. $sql = "SELECT * FROM `chat_mess`";
    9. $result = mysql_query($sql) or die(mysql_error());
    10. while($row = mysql_fetch_array($result)){
    11. if(empty($row['tuser'])){
    12. echo "<font color='#0000FF'>".$row['post']."</font><b> ".$row['fuser']." :</b> ".$row['mess'];
    13. }
    14. else {
    15. echo "<font color='#0000FF'>".$row['post']."</font> <b>[".$row['fuser']."<font color=red> to </font>".$row['tuser']."]</b>  ".$row['mess'];
    16. }
    17. }
    18. ?>
    19. <body onLoad="parent.mainFrame.scroll(0, 9999999)" bgcolor="#33CC66">
    20.  
    Как поступить в этом случии?
     
  8. Ti

    Ti Активный пользователь

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    добавить в таблицу поле id
     
  9. NIKO

    NIKO Активный пользователь

    С нами с:
    10 фев 2006
    Сообщения:
    655
    Симпатии:
    0
    Адрес:
    Armenia
    А что в нем записывать и где добавить
    $id = SELECT id FROM table_name ORDER BY id DESC LIMIT $x, 1
    if ($id) {
    $id = SELECT id FROM table_name ORDER BY id DESC LIMIT $y, 1
    DELETE FROM table_name WHERE id <= $id
    }

    ??