За последние 24 часа нас посетили 16490 программистов и 1549 роботов. Сейчас ищут 2013 программистов ...

запись в БД

Тема в разделе "PHP и базы данных", создана пользователем Bender, 15 июл 2008.

  1. Bender

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

    С нами с:
    15 июл 2008
    Сообщения:
    14
    Симпатии:
    0
    PHP:
    1. <?php
    2. if($_POST['add']=="Submit"){
    3. $link = mysql_connect("localhost", "root", "")
    4. or die("Could not connect");
    5. mysql_select_db("1", $link) or die("Could not select database");
    6. $query="insert into lgsl (adr, q_port, c_port)
    7. VALUES ('".$_POST['adr']."','".$_POST['q_port']."','".$_POST['c_port']."')";
    8. $result = mysql_query($query) or die(mysql_error());
    9. echo "";
    10. echo "!!!";
    11. mysql_close($link);
    12.  

    Все работает.

    Только как сделать, что-бы при вводе q_port, записывалось тоже значение в c_port.

    Заранее благодарен :p
     
  2. Dagdamor

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

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    *режим телепатии включен*
    PHP:
    1. <?php
    2. if(!$_POST['c_port']) $_POST['c_port']=$_POST['q_port'];
    добавить перед формированием $query.
     
  3. Dagdamor

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

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    UPD: лежал :D
    PHP:
    1. <?php
    2. echo "";
    3. echo "!!!";
    прямо живая иллюстрация к фразе "слов нет, одни эмоции" :lol:
     
  4. Bender

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

    С нами с:
    15 июл 2008
    Сообщения:
    14
    Симпатии:
    0
    Спс большое, помогло.
    Еще один вопросик возник. :(

    сделать проверку.
    Например:
    Чтобы можно было добавлять адреса с разными q_port, а с одинаковыми q_port нельзя.
     
  5. dAllonE

    dAllonE Guest

    Bender, сделать поле q_port уникальным, и делать INSERT IGNORE
     
  6. Bender

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

    С нами с:
    15 июл 2008
    Сообщения:
    14
    Симпатии:
    0
    Не. Например у меня таблица:
    adr q_port c_port
    qwe 2212 2212

    И я буду добавлять:
    adr q_port c_port
    asd 2212 2212

    Если q_port сделать уникальным, то не добавится.
     
  7. dAllonE

    dAllonE Guest

    Вы же сами только что Выше писали:
     
  8. Bender

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

    С нами с:
    15 июл 2008
    Сообщения:
    14
    Симпатии:
    0
    Извиняюсь, неправильно объяснил

    Тоесть у меня есть таблица и вней возможны такие записи:
    adr q_port c_port
    qwe 1234 1234
    qwe 5678 5678
    asd 1234 1234

    Нужно сделать так, что если я, буду добавлять(например) еще раз:
    adr q_port c_port
    qwe 1234 1234

    Она уже есть, что-бы она второй раз не добавилась.
     
  9. dAllonE

    dAllonE Guest

    Ну 2 варианта: либо уникальный индекс по adr+q_port
    и потом
    PHP:
    1. <?php
    2. $adr      =  mysql_escape_string($_POST['adr']);
    3. $q_port  =  mysql_escape_string($_POST['q_port']);
    4. $c_port  =  mysql_escape_string($_POST['c_port']);
    5. $query   =  "INSERT IGNORE INTO lgsl (adr, q_port, c_port) VALUES('$adr', '$q_port', '$c_port')";
    6.  
    7. if(mysql_affected_rows(mysql_query($query)) == 0){
    8.     echo 'Не не не Дэвид Блейн уже было';
    9. }
    10.  
    11.  
    12. ?>
    Либо просто перед этим
    PHP:
    1. <?php
    2. $adr      =  mysql_escape_string($_POST['adr']);
    3. $q_port  =  mysql_escape_string($_POST['q_port']);
    4. $c_port  =  mysql_escape_string($_POST['c_port']);
    5. $result  =  mysql_query(SELECT adr WHERE adr='$adr' AND '$q_port');
    6.  
    7. if(mysql_fetch_row($result)){
    8.     // Записываем
    9. }
    10. ?>
    Но при втором варианте если посещаемость большая может пройти таки запись на INSERT одна после селекта так что лучше все равно лучше, ИМХО повесить праймари/уникальный индекс на эти два поля.....

    P.S. код чисто так примерный ;)
     
  10. Bender

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

    С нами с:
    15 июл 2008
    Сообщения:
    14
    Симпатии:
    0
    спс. буду разбираться.
     
  11. Bender

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

    С нами с:
    15 июл 2008
    Сообщения:
    14
    Симпатии:
    0
    Все равно добавляет. Поля adr и q_port праймари
    Вот код. Подскажите пожалуйста, где ошибка.
    PHP:
    1.  
    2. ?php
    3. if($_POST['add']=="Submit"){
    4. $link = mysql_connect("localhost", "root", "")
    5. or die("Could not connect");
    6. mysql_select_db("1", $link) or die("Could not select database");
    7. if(!$_POST['c_port']) $_POST['c_port']=$_POST['q_port'];
    8. $adr      =  mysql_escape_string($_POST['adr']);
    9. $q_port  =  mysql_escape_string($_POST['q_port']);
    10. $c_port  =  mysql_escape_string($_POST['c_port']);
    11. $type  =  mysql_escape_string($_POST['type']);
    12. $query  =  "INSERT IGNORE INTO lgsl (adr, q_port, c_port, type) VALUES('$adr', '$q_port', '$c_port', '$type')";
    13. if(mysql_affected_rows(mysql_query($query)) == 0){
    14. echo 'Мужик, уже было';
    15. }
    16. echo "Спасибо ваша инфа добавлена";
    17. }
    18.  mysql_close($link);
    19. ?>
    20.  
     
  12. dAllonE

    dAllonE Guest

    Поля adr и q_port праймари и все равно добавляет? В рот мне ноги!
    Кинь мне плиз структуру таблицы своей
     
  13. Bender

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

    С нами с:
    15 июл 2008
    Сообщения:
    14
    Симпатии:
    0
    `id` int (11) NOT NULL auto_increment,
    `status` tinyint (1) NOT NULL default '0',
    `adr` varchar (255) NOT NULL default '',
    `q_port` varchar (5) NOT NULL default '0',
    `c_port` varchar (5) NOT NULL default '0',
    `s_port` varchar (5) NOT NULL default '0',
    `type` varchar (50) NOT NULL default '',
    `cache` text NOT NULL,
    `cache_time` text NOT NULL,
    `zone` tinyint (1) NOT NULL default '0',
    `disabled` tinyint (1) NOT NULL default '0',

    PRIMARY KEY (`id`)
    PRIMARY KEY (`adr`)
    PRIMARY KEY (`q_port`)
     
  14. Bender

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

    С нами с:
    15 июл 2008
    Сообщения:
    14
    Симпатии:
    0
    Еще ошибка -
    Warning: mysql_affected_rows(): supplied argument is not a valid MySQL-Link resource in c:\.....
     
  15. dAllonE

    dAllonE Guest

    А блин, что-то я торможу... Кажется вот почему: у тебя же id тут в праймари индекс включен и меняется каждый раз по идее.

    Оставь в праймари только id, а по adr+q_port сделай уникальный
     
  16. Anonymous

    Anonymous Guest

    А как ты сумел больше одного PRIMARY для таблицы создать?
     
  17. dAllonE

    dAllonE Guest

    *dAllonE зарекся давать советы на работе. Он нефига не многозадачный оказывается :( Даже стыдно за столько ошибок в примерах :)

    PHP:
    1. <?php  
    2.  
    3.     mysql_query($query);
    4.  
    5.     if(mysql_affected_rows($link) == 0){
    6.     echo 'Мужик, уже было';
    7.   }
    8. ?>
     
  18. dAllonE

    dAllonE Guest

    Горбунов Олег, он наверное имел в виду ALTER TABLE lgsl ADD PRIMARY KEY (id, q_port, c_port)
     
  19. Anonymous

    Anonymous Guest

    «наверное» «имел ввиду», или как? Может у него сработал
     
  20. Bender

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

    С нами с:
    15 июл 2008
    Сообщения:
    14
    Симпатии:
    0
    adr и q_port - unique

    PHP:
    1. ?php
    2. if($_POST['add']=="Submit"){
    3. $link = mysql_connect("localhost", "root", "")
    4. or die("Could not connect");
    5. mysql_select_db("1", $link) or die("Could not select database");
    6. if(!$_POST['c_port']) $_POST['c_port']=$_POST['q_port'];
    7. $adr      =  mysql_escape_string($_POST['adr']);
    8. $q_port  =  mysql_escape_string($_POST['q_port']);
    9. $c_port  =  mysql_escape_string($_POST['c_port']);
    10. $type  =  mysql_escape_string($_POST['type']);
    11. $query  =  "INSERT IGNORE INTO lgsl (adr, q_port, c_port) VALUES('$adr', '$q_port', '$c_port', '$type')";
    12. if(mysql_affected_rows($link) == 0){
    13. echo 'Мужик, уже было';
    14. }
    15. echo "Спасибо ваша инфа добавлена";
    16. }
    17. mysql_close($link);
    18. ?>
    Сейчас вообще ни чего не добавляет.
     
  21. Bender

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

    С нами с:
    15 июл 2008
    Сообщения:
    14
    Симпатии:
    0
    не не, добавляет все, кроме
    Код (Text):
    1. type
    И все равно добавляет, одно и туже инфу :(
     
  22. Bender

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

    С нами с:
    15 июл 2008
    Сообщения:
    14
    Симпатии:
    0
  23. M9$NIK

    M9$NIK Активный пользователь

    С нами с:
    7 ноя 2008
    Сообщения:
    2
    Симпатии:
    0
    щ

    :( Помогите зделать мониторинг серверов и хочу чтобы у меня через мониторинг можно было добовлять сервера , а нечерез админку чтобы народ сам добовлял
     
  24. karakh

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

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    Re: щ

    Э... ну ладно, делай.
     
  25. M9$NIK

    M9$NIK Активный пользователь

    С нами с:
    7 ноя 2008
    Сообщения:
    2
    Симпатии:
    0
    з

    Помогите! :lol: