[sql] Вопросы по БД

Discussion in 'PHP' started by FraiDex, 25 Feb 2008.

Thread Status:
Not open for further replies.
  1. VDShark

    VDShark Elder - Старейшина

    Joined:
    1 Feb 2007
    Messages:
    260
    Likes Received:
    158
    Reputations:
    62
    Вообще это неоднозначный вопрос. Например бэкапить базу каждый день\два\неделю (нужное подчеркнуть, смотря какая интенсивность заполнения и тп) - и после бэкапа с чистой совестью чистить журнал, т.к. бэкап у нас есть, и мы в случае чего сможем с чистой совестью его "накатить".
     
  2. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Разросшийся журнал транзакций можно урезать. Сначала сделать в Query Analyzer
    Code:
    BACKUP LOG dbname WITH NO_LOG
    BACKUP LOG dbname WITH TRUNCATE_ONLY
    
    Потом сделать Shrink Database, где в списке выбрать не базу (dbname_Data), а журнал транзакций (dbname_Log)
     
  3. 1SeTh

    1SeTh Elder - Старейшина

    Joined:
    17 Feb 2006
    Messages:
    164
    Likes Received:
    18
    Reputations:
    5
    как можно заюзать такую ошибку? извините если не правильно запостился

     
  4. Buffalon

    Buffalon Elder - Старейшина

    Joined:
    22 Mar 2008
    Messages:
    241
    Likes Received:
    34
    Reputations:
    8
    Здрасте... .Решил написать да/Вроде тема отсюда )
    Как вот это можно реализовать >PHP<+MySQL
    3. Управление распределённой БД
    Макс. балл: 120.
    Макс бонус балл: 54.
    Задание:
    1. Имеется распределенная БД, состоящая из 3 серверов MySQL.
    2. Требуется написать клиент к данной БД, реализующий функции SELECT / INSERT / DELETE / UPDATE / ALTER / CHANGE.
    3. Пользователь, используя, данный клиент, не должен знать о том, что БД – распределённая. Связь серверов осуществляется посредством сокетов.
    <pre>Олмпиада по интернет-программированию 2006г</pre>
     
  5. neval

    neval Elder - Старейшина

    Joined:
    13 Dec 2006
    Messages:
    457
    Likes Received:
    116
    Reputations:
    23

    с википедии содрал? тэги тоже? ))


    а как пользователь узнает (пользуясь скрипт-клиентом) к какой БД он коннектиться?
     
  6. stomp

    stomp New Member

    Joined:
    21 Jan 2007
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Т.к. здесь вопросы по бд, тут и задам. У меня есть 3 таблицы, во всех трех есть id пользователя, но в одной базе(я её сам создавал) - нету id, поле есть, но как данные перенести туда я не знаю, т.к. в этой 3 таблице есть поля в которые нужно скопировать данные из 1 и 2 таблицы. Желательно сделать привязку 3 таблицы к 1 и 2, я что-то читал про cascade, но ведь 3 таблица пустая... Пытался в доках найти, но на Mysql.ru что-то ничего нужно не вычитал(
    у меня phpmyadmin стоит, если кто может - объясните как через него сделать.
     
  7. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    stomp, если я правильно понял, то так.
    Предположим, в таблице t1 хранятся имена, в таблице t2 - адреса соответствующие именам адреса. В таблицу t3 надо запихать ид пользователя, его имя и адрес (объединенные данные из первых двух таблиц)
    Code:
    mysql> select * from t1;
    +------+-------+
    | id   | name  |
    +------+-------+
    |    1 | John  |
    |    2 | Mary  |
    |    3 | Suzen |
    |    4 | James |
    |    5 | Carry |
    +------+-------+
    5 rows in set (0.01 sec)
    
    mysql> select * from t2;
    +------+------------+
    | id   | address    |
    +------+------------+
    |    1 | Washington |
    |    2 | New York   |
    |    3 | Washington |
    |    4 | Oklahoma   |
    |    5 | Texas      |
    +------+------------+
    5 rows in set (0.01 sec)
    
    mysql> insert into t3 select t1.id, t1.name, t2.address from t1 left join t2 using (id);
    Query OK, 5 rows affected (0.00 sec)
    Records: 5  Duplicates: 0  Warnings: 0
    
    mysql> select * from t3;
    +------+-------+------------+
    | id   | name  | address    |
    +------+-------+------------+
    |    1 | John  | Washington |
    |    2 | Mary  | New York   |
    |    3 | Suzen | Washington |
    |    4 | James | Oklahoma   |
    |    5 | Carry | Texas      |
    +------+-------+------------+
    5 rows in set (0.00 sec)
    
     
  8. stomp

    stomp New Member

    Joined:
    21 Jan 2007
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Да спасибо, частично понял, как понять:
    left join t2 using (id); ??

    И что сделать, чтобы при добавлении данных в таблицы 1 и 2 - они сразу же добавлялись к 3? использовать cascade?
     
  9. Mobile

    Mobile Elder - Старейшина

    Joined:
    18 Feb 2006
    Messages:
    1,089
    Likes Received:
    822
    Reputations:
    324
    это объединение таблиц t1 и t2, юзаем поле id
    тоесть то, которое заносим в t3
     
  10. stomp

    stomp New Member

    Joined:
    21 Jan 2007
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    что сделать, чтобы при добавлении данных в таблицы 1 и 2 - они сразу же добавлялись к 3? использовать cascade?


    Вообщем после набора insert.... и т.д. мне выдало:

    ERROR 1136 (21S01): Column count doesn't match value count at row 1
    Все поля в 3 таблице null не понимаю в чем может быть проблема?
     
    #50 stomp, 15 Apr 2008
    Last edited: 15 Apr 2008
  11. MooMooM

    MooMooM New Member

    Joined:
    19 Apr 2008
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Люди подскажите веб клиент типа phpmyadmin, только на mssql
     
  12. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    EasyXQuery
     
  13. Корвин

    Корвин Elder - Старейшина

    Joined:
    26 Feb 2007
    Messages:
    256
    Likes Received:
    31
    Reputations:
    3
    PHP:
          {
            
    $dt=date('Y-m-d H:i:s');
            
    mysql_query('INSERT INTO messages VALUES(NULL,'.$_SESSION['id'].','.$lg['id'].',"'.$_POST['subject'].'","'.$_POST['msg'].'","'.$dt.'",0);');
          } 
    народ , подскажите почему не записывается инфа в БД? что не так написано?
     
  14. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Корвин, попробуй заюзать так
    PHP:

      
    $dt=date('Y-m-d H:i:s'); 
      
    $subject mysql_real_escape_string ($_POST['subject']);
      
    $msg mysql_query_escape_string ($_POST['msg']);
       
    mysql_query('INSERT INTO messages VALUES (NULL, \'' $_SESSION['id'] . '\',\'' $lg['id'] . '\',\'' $subject '\',\'' $msg '\',\'' $dt '\',0)') or die (mysql_errno() . ':' mysql_error());

     
    1 person likes this.
  15. Корвин

    Корвин Elder - Старейшина

    Joined:
    26 Feb 2007
    Messages:
    256
    Likes Received:
    31
    Reputations:
    3
    попробовал код, выводит ошибку

    Fatal error: Call to undefined function mysql_query_escape_string()

    ... сделал так :

    PHP:
            {
        
    $dt=date('Y-m-d H:i:s'); 
        
    $subject $_POST['subject'];
        
    $msg $_POST['msg'];
       
    mysql_query('INSERT INTO messages VALUES (NULL, \'' $_SESSION['id'] . '\',\'' $lg['id'] . '\',\'' $subject '\',\'' $msg '\',\'' $dt '\',0)') or die (mysql_errno() . ':' mysql_error());
            } 
    все заработало
     
    #55 Корвин, 28 Apr 2008
    Last edited: 28 Apr 2008
  16. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Я там с кодом ступил =))
    PHP:
    $msg mysql_real_escape_string ($_POST['msg']);
    Сорри

    ЗЫ. Корвин, дай линк на свой движок, я в скулях потренируюсь =))
     
  17. Корвин

    Корвин Elder - Старейшина

    Joined:
    26 Feb 2007
    Messages:
    256
    Likes Received:
    31
    Reputations:
    3
    всмысле доступ к фтп? сорь, мне за это голову открутят=)

    :cool: конфиденциально :cool:


    PS и зачем этот реал ескейп? если как йа сделал все заработало...
     
    1 person likes this.
  18. Mobile

    Mobile Elder - Старейшина

    Joined:
    18 Feb 2006
    Messages:
    1,089
    Likes Received:
    822
    Reputations:
    324
    дай адрес сайта где твой двиг лежит, я тебе фокус покажу)))
     
    1 person likes this.
  19. Корвин

    Корвин Elder - Старейшина

    Joined:
    26 Feb 2007
    Messages:
    256
    Likes Received:
    31
    Reputations:
    3
    PHP:
            $ayd $_POST['id'];
        
    $ayduser $_POST['id_user'];
        
    $taskname $_POST['name'];
        
    $taskstatus $_POST['status'];
        
    $taskpriority $_POST['priority'];
        
    $taskcomments $_POST['comments'];
        
    $tasktask $_POST['task'];
            
    mysql_query('UPDATE `tasks` SET `id_user`="'.$ayduser.'", `name`="'.$taskname.'", `status`="'.$taskstatus.'", `priority`="'.$taskpriority.'", `comments`="'.$taskcomments.'", `task`="'.$tasktask.'" WHERE `id`="'.$ayd.'" LIMIT 1;');
            
    Header('Location:index.php');
    поидее должна обновлятся инфа в елементе с айдишником - $ayd, но у меня почему то создается еще один в котором первые три параметра равны нулю а остальные из формы которую заполнял, что не так подскажите плиз...
     
  20. НTL

    НTL Elder - Старейшина

    Joined:
    26 Jan 2008
    Messages:
    715
    Likes Received:
    205
    Reputations:
    -26
    А где можно почитать что такое SQL, mySQL?
    И как делать БД
     
Thread Status:
Not open for further replies.