SQL Renew

Discussion in 'PHP' started by lomerok, 11 Jun 2008.

  1. lomerok

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

    Joined:
    23 Apr 2008
    Messages:
    141
    Likes Received:
    8
    Reputations:
    0
    Пробую изменить уже записанное значение , таким образом :
    PHP:
    if($zapros=='edit'
    {
     
    $edit_query="SELECT * FROM news WHERE id='$use_id'"$edit_select=mysql_query($edit_query); $edit_reply=mysql_fetch_row($edit_select); 
     print 
    '<br><form method="GET">
           <br><input type="hidden" name="zapros" value="edit">
           <br><input type="hidden" name="table" value="news">
           <br><input type="hidden" name="id" value="'
    .$edit_reply[0].'">
           <br>Введите заголовок:<br><input type="text" name="caption" value="'
    .$edit_reply[3].'">
           <br>Введите новось:<br><textarea name="news" cols=60 rows=7>'
    .$edit_reply[4].'</textarea>
           <br>Введите текст:<br><textarea name="text" cols=60 rows=7>'
    .$edit_reply[5].'</textarea>
           <br>Введите своё имя :<br><input type="text" name="avtor" value="'
    .$edit_reply[6].'">
           <br><input type="submit" value="Добавить новость">
           <br></form>'
    ;
     
    $edit_write="INSERT INTO news (caption,news,text,avtor) VALUES ('$caption','$news','$text','$avtor') WHERE id='$use_id'";
     
    $write_query=mysql_query($edit_write); print "Editing OK..."
    или проще сказать делаю так
    Code:
    INSERT INTO news (caption) VALUES ('1516') WHERE id='2'
    и выдаёт ошибку , почему ?(все значения верные)
     
  2. groundhog

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

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    Ломерок! Хотж инсертом меняет значения? Поэтому и получаешь конфликт по первичному ключу. Истинные одепты SQL меняют значения с помощью UPDATE. И с каких это пор в INSERT появились условия вставки? Кстати, заюзай лучше:

    REPLACE INTO news (caption,news,text,avtor) VALUES ('$caption','$news','$text','$avtor')

    Имхо, это будет не правильно, но для такого загубленного кода - самое то...
     
  3. lomerok

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

    Joined:
    23 Apr 2008
    Messages:
    141
    Likes Received:
    8
    Reputations:
    0
    что значит загубленного ? в чем тут траблы ? вродебы код нормальный ...
     
  4. groundhog

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

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    1) Регистер глобалс не тру
    2) Ошибки тоже надо обрабатывать
    3) Писать тоже нада красиво (отсутпы и пр. и др.)
     
  5. lomerok

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

    Joined:
    23 Apr 2008
    Messages:
    141
    Likes Received:
    8
    Reputations:
    0
    вот что получается :
    Code:
    SQL-запрос: 
    
    REPLACE INTO news( caption, news, text, avtor ) 
    VALUES (
    'ss', 'dd', 'ee', 'aa'
    )
    WHERE id = '2' 
    
    Ответ MySQL:  
    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE id='2'' at line 1
    
    почему теперь неработает ?
     
  6. lomerok

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

    Joined:
    23 Apr 2008
    Messages:
    141
    Likes Received:
    8
    Reputations:
    0
    вот так тоже неработает UPDATE `news` (`caption`,`news`,`text`,`avtor`) VALUES (`ss`,`dd`,`ee`,`aa`) WHERE id=`2`
     
  7. .Slip

    .Slip Elder - Старейшина

    Joined:
    16 Jan 2006
    Messages:
    1,571
    Likes Received:
    977
    Reputations:
    783
    http://www.mysql.ru/docs/man/UPDATE.html
     
    1 person likes this.
  8. groundhog

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

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    бля, я же по человечески написал - НЕТУ УСЛОВИЙ У ЗАПРОСОВ insert И replace!!! УБЕРИ Where!

    Ты вообще синтаксис операторов знаешь? Может имеет смысл почитать то, на что Слип указал?
     
    1 person likes this.
  9. lomerok

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

    Joined:
    23 Apr 2008
    Messages:
    141
    Likes Received:
    8
    Reputations:
    0
    а у Update уусловие можно ставить ?
     
  10. lomerok

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

    Joined:
    23 Apr 2008
    Messages:
    141
    Likes Received:
    8
    Reputations:
    0
    заработало спасибо
     
  11. .Slip

    .Slip Elder - Старейшина

    Joined:
    16 Jan 2006
    Messages:
    1,571
    Likes Received:
    977
    Reputations:
    783
    Правильный код:
    PHP:
    mysql_query("UPDATE news SET caption = '{$caption}', news = '{$news}', text = '{$text}', avtor = '{$avtor}' WHERE id = '{$use_id}'") or die(mysql_error());
    На будущее
     
  12. groundhog

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

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    У апдейт нужно ставить условие, если, конечно, не хочешь чтобы оно всё проапдейтило...
     
    1 person likes this.
  13. Arrest

    Arrest New Member

    Joined:
    6 Jun 2008
    Messages:
    5
    Likes Received:
    3
    Reputations:
    3
    Извините, а ; у Sql-запросов ставить не надо?
     
  14. .Slip

    .Slip Elder - Старейшина

    Joined:
    16 Jan 2006
    Messages:
    1,571
    Likes Received:
    977
    Reputations:
    783
    В mysql_query - Нет.
    В консоли, да: