За последние 24 часа нас посетили 17186 программистов и 1651 робот. Сейчас ищут 866 программистов ...

я в тупеке 2*2=5 О_о

Тема в разделе "Прочие вопросы по PHP", создана пользователем epocalips, 2 июн 2011.

  1. epocalips

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

    С нами с:
    26 мар 2011
    Сообщения:
    31
    Симпатии:
    0
    Адрес:
    UA/Lviv
    Сайт расположен на хосте http://www.nic.ru/
    Код

    Код (Text):
    1. <?
    2.  
    3.   $result = mysql_query ("INSERT INTO news (title, date, meta_d, meta_k, description, description_main, text)
    4.                  VALUES ('$title', '$date', '$meta_d', '$meta_k', '$description', '$description_main', '$text')");
    5.  
    6.   if($result) {echo "<p>Новость добавлено!</p>";}
    7.  
    8. ?>
    работает как надо. Данные заносим методом пост.

    а вот упдейт почему то не работает!
    Код (Text):
    1. <?
    2.    $result=mysql_query("UPDATE news SET title='$title', date='$date', meta_d='$meta_d', meta_k='$meta_k', description='$description',
    3.    description_main='$description_main', text='$text' WHERE id='$id'",$db);
    4.    if($result) echo "<p>Новость обновлено.</p>";
    5. ?>
    данные в базе просто удаляются и мы имеем пустое поле!!!

    Почему??? Что не так? Так как на лок. сервере все работает и на других хостах! Я в ТУПИКЕ!
     
  2. Апельсин

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

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    mysql_real_escape_string() не?
    из одного запроса мало что понятно
     
  3. epocalips

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

    С нами с:
    26 мар 2011
    Сообщения:
    31
    Симпатии:
    0
    Адрес:
    UA/Lviv
    нет, зачем больше? он должен работать, но работает. на лок. работает!
     
  4. Апельсин

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

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    сделай print("UPDATE news SET title='$title', date='$date', meta_d='$meta_d', meta_k='$meta_k', description='$description',
    description_main='$description_main', text='$text' WHERE id='$id'");
    глянь все ли там будет так, как ожидаешь. если да - то вручную в phpmyadmin вбей запрос. если выполнится - тогда можно дальше думать.
     
  5. epocalips

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

    С нами с:
    26 мар 2011
    Сообщения:
    31
    Симпатии:
    0
    Адрес:
    UA/Lviv
    UPDATE news SET title='32', date='', meta_d='325', meta_k='235', description='

    235
    ', description_main='

    235
    ', text='

    235
    ' WHERE id='6'

    вручную работает, также кажет, що упдейт - тру.
     
  6. Апельсин

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

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    какие данные удаляются и где это пустое поле?
     
  7. epocalips

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

    С нами с:
    26 мар 2011
    Сообщения:
    31
    Симпатии:
    0
    Адрес:
    UA/Lviv
    поле где id="id"
     
  8. Апельсин

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

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    так запись есть с ИД 6 или тупо все удаляется? Или часть записи (некоторые поля) становится пустой?
     
  9. epocalips

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

    С нами с:
    26 мар 2011
    Сообщения:
    31
    Симпатии:
    0
    Адрес:
    UA/Lviv
    6 - есть, но пустые поля, которые надо было обновить
     
  10. Апельсин

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

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    епта, я ж говорю - юзай mysql_real_escape_string и будет тебе счастье. и не мешало бы также trim.
     
  11. Джон Самилин

    Джон Самилин Активный пользователь

    С нами с:
    30 май 2011
    Сообщения:
    8
    Симпатии:
    0
    а поле id – строковое? если целое, то можно убрать кавычки
     
  12. Апельсин

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

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    это в данном случае не влияет. mysql умный, он поймет)
     
  13. Джон Самилин

    Джон Самилин Активный пользователь

    С нами с:
    30 май 2011
    Сообщения:
    8
    Симпатии:
    0
    ну он избирательно умный. в утверждении where вполне может не сработать
     
  14. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    Джон Самилин

    Сработает ;)
     
  15. Gromo

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

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    гыгыгы :))

    1. попробуй $result=mysql_query(тут запрос) or die(mysql_error());
    2. попробуй заключать названия полей в апострофы `
    3. перед mysql_query выведи текст запроса

    как проверяешь?
     
  16. epocalips

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

    С нами с:
    26 мар 2011
    Сообщения:
    31
    Симпатии:
    0
    Адрес:
    UA/Lviv
    создал простую форму
    Код (Text):
    1. <form action="up.php?id=1" method="POST">
    2. <input name="test" type="text">
    3. <input type="submit">
    4. </form>
    5.  
    6. =========up.php========================================
    7. <? include("admin/blocks/db.php");
    8.    mysql_query("UPDATE settings SET title='$_POST[test]' WHERE id='$_GET[id]'");
    9. ?>
    тоже не работает, НО если вводит - "rrrrrrr" - обновляет, если другие символы, то НЕТ... жесть, что делать не знаю... менять ХОСТ?))))
     
  17. Апельсин

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

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    ипать. скажите ему в третий раз что нужно сделать. меня заипало
     
  18. epocalips

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

    С нами с:
    26 мар 2011
    Сообщения:
    31
    Симпатии:
    0
    Адрес:
    UA/Lviv
    и главное если в up.php перед запросом сделать $title="гуд" то все хорошо.
     
  19. Gromo

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

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    epocalips
    как же тебе помочь, если ты не следуешь тому, что тебе советуют?
     
  20. epocalips

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

    С нами с:
    26 мар 2011
    Сообщения:
    31
    Симпатии:
    0
    Адрес:
    UA/Lviv
    так сделав, не работает!
     
  21. Gromo

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

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    что-то я не вижу тут
    того, что тебе советовали:
     
  22. epocalips

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

    С нами с:
    26 мар 2011
    Сообщения:
    31
    Симпатии:
    0
    Адрес:
    UA/Lviv
    Код (Text):
    1. <? session_start(); ?>
    2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    3. <html xmlns="http://www.w3.org/1999/xhtml">
    4. <head>
    5. <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
    6. <title>Админ: Обработка</title>
    7. <link href="style.css" rel="stylesheet" type="text/css">
    8. </head>
    9.  
    10. <body>
    11. <? include("blocks/left.php");?>
    12. <? include("blocks/db.php");
    13.    if(isset ($_POST['title'])) {$title=$_POST['title']; if ($title=='') {unset($title);}}
    14.    if(isset ($_POST['meta_d'])) {echo $meta_d=$_POST['meta_d'];  if ($meta_d=='') {unset($meta_d);}}
    15.    if(isset ($_POST['meta_k'])) {echo $meta_k=$_POST['meta_k'];  if ($meta_k=='') {unset($met_k);}}
    16.    if(isset ($_POST['text'])) {$text=$_POST['text'];  if ($text=='') {unset($text);}}
    17.    $title=mysql_real_escape_string($title);
    18.    mysql_query("UPDATE settings SET `title`='$title'  WHERE id='$_GET[id]'") or die(mysql_error());
    19.    echo "<p>Текст страницы обновлено.</p>";
    20.    include("blocks/main.php");?>
    21. </body>
    22. </html>
    ничего!
     
  23. epocalips

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

    С нами с:
    26 мар 2011
    Сообщения:
    31
    Симпатии:
    0
    Адрес:
    UA/Lviv
    опа, в хроме все работает! почему в моззиле 4 может не работать?
     
  24. Gromo

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

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    ты действительно айди передаёшь через GET ?

    я бы написал так:

    PHP:
    1. <?php mysql_query("UPDATE settings SET `title`='$title'  WHERE id='{$_GET['id']}'") or die(mysql_error()); ?>
    и для айди я бы тоже применял mysql_real_escape_string