За последние 24 часа нас посетил 45551 программист и 1807 роботов. Сейчас ищут 1419 программистов ...

sql запрос

Тема в разделе "PHP для новичков", создана пользователем udodirc, 28 мар 2008.

  1. udodirc

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

    С нами с:
    14 мар 2008
    Сообщения:
    111
    Симпатии:
    0
    Есть вот такая функция
    PHP:
    1.  <?php
    2. function insert_sklad_raw()
    3. {
    4. if (isset($_REQUEST["accept"]))
    5. {    
    6. $rs=mysql_query("select * from zakaz_naryadrashod where number=".$_REQUEST["number"]);    
    7. while($data=mysql_fetch_array($rs))
    8. {
    9. $rs2=mysql_query("select * from sklad_raw where code_postavshik=".$_REQUEST["number"]." and code_raw=".$data["code_raw"]."");        
    10. if (mysql_num_rows($rs2)==0)
    11. {
    12. $sql="insert into sklad_raw (code_postavshik,code_raw,kolvo,price,summa) values(".$_REQUEST["postavshik"].",".$data["code_raw"].",".$data["kolvo"].",".$data["price"].",".$data["summa"].")";
    13. echo $sql.'</br>';
    14. }
    15. else
    16. {
    17. $sql="update sklad_raw set code_raw=".$data["code_raw"].", kolvo=".$data["kolvo"].", price=".$data["price"].", summa=".$data["summa"]." where code_postavshik=".$_REQUEST["postavshik"]." and code_raw=".$data["code_raw"]."";
    18. echo $sql.'</br>';
    19. mysql_query($sql);    
    20. echo $sql.'</br>';    
    21. }
    22. }    
    23.    
    24. }
    25.  
    26. }
    27. ?>
    28.  
    вот поля таблицы sklad_raw
    codeid, code_postavshik, code_raw, unit, kolvo, price, summa

    вот поля таблицы zakaz_naryadrashod
    codeid, number, code_raw, kolvo, price, summa
    когда я заношу данные в таблицу sklad_raw, то в sql работает только insert, ное сли такая строка есть должен сработать update, вмечто update срабатывет только insert

    если уберу условие if() else то срабатывают оба и update и insert с условием нет, пробовал ставить elseif (mysql_num_rows($rs2)<0) не получается.
    в чем дело?
     
  2. armadillo

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

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    для начала - в русском. Отсюда и все глюки.
    распиши внятнее, непонятно, инсерт срабатывает и при наличии строк или нет.

    code_raw что означает по смыслу? Проверять наличие записи надо не так.

    входные данные надо обрабатывать для безопасности
     
  3. topas

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

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    после строчки
    PHP:
    1. <?php
    2. $rs2=mysql_query("select * from sklad_raw where code_postavshik=".$_REQUEST["number"]." and code_raw=".$data["code_raw"]."");
    3.  
    отобразите SQL запрос. Выполните этот запрос в phpMyAdmin или консоли, посмотрите результат.
    там же поставьте функцию var_dump(mysql_num_rows($rs2));

    Результаты сюда :)