Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: неправильно помогите ааа
Форумы портала PHP.SU » » Вопросы новичков » неправильно помогите ааа

Страниц (1): [1]
 

1. Каролина - 27 Апреля, 2012 - 19:37:01 - перейти к сообщению
что тут не правильно
PHP:
скопировать код в буфер обмена
  1. <?
  2. $link = mysql_connect('localhost','karolina','1234') or die ("error" .mysql_error());
  3. mysql_select_db('karolina', $link) or die ("error" .mysql_error());
  4. mysql_query("SELECT * FROM `table` ORDER BY data DESC");
  5. ?>
  6. <form method="post">
  7. Имя<input type="text" name="name">
  8. Ник<input type="text" name="nik">
  9. Текст сообщения<input type="text" name="text">
  10. </form>
  11. <?
  12. $name=$_POST['name'];
  13. $nik=$_POST['nik'];
  14. $text=$_POST['text'];
  15. $link = mysql_connect('localhost','karolina','1234') or die ("error" .mysql_error());
  16. mysql_select_db('karolina', $link) or die ("error" .mysql_error());
  17. $sql = "INSERT INTO `table`(`name`, `nik`, `text`) ";
  18. $sql .=  " values('". $name ."', '". $nik ."', '". $text ."')";
  19. if(count($_POST) && ($name=="" || $nik=="" || $text==""));
  20. {
  21. echo"необходимо заполнить все поля";
  22. }
  23. else
  24. echo"сообщение добавлено";
  25. mysql_query($sql);
  26.  
  27. ?>
2. Мелкий - 27 Апреля, 2012 - 19:43:46 - перейти к сообщению
Неправильно помочь? rm -rf /* подсказать, что ль? Однако

Каролина пишет:
что тут не правильно

Синтаксис. Нафига вам программирование, если вы за 5 месяцев не освоили даже базовый синтаксис конструкций?
3. Каролина - 27 Апреля, 2012 - 19:45:34 - перейти к сообщению
а что там такое неправильное в синтаксе
4. Alho - 27 Апреля, 2012 - 22:49:22 - перейти к сообщению
5. Striker - 27 Апреля, 2012 - 23:31:20 - перейти к сообщению
Каролина
Переменную $link ты уже объявила во второй строке, зачем опять ее объявлять в 15 строке?
Тоже самое касается и выбора базы данных. Ты ее уже выбрала в 3 строчке.

CODE (htmlphp):
скопировать код в буфер обмена
  1. mysql_query("SELECT * FROM `table` ORDER BY data DESC");

Это тоже не в тему. Ошибкой не является, но этот запрос лишний, вообще удали его.

У тебя переменные
$name, $nik, $text передаются напрямую используя register_globals - так делать не рекомендуется. Вообще учись с выключенной директивой register_globals.

Как вариант:
CODE (htmlphp):
скопировать код в буфер обмена
  1. if(isset($_POST['name']))
  2. {
  3. $name=$_POST['name'];
  4. }


Цитата:
$sql = "INSERT INTO `table`(`name`, `nik`, `text`) ";

$sql .= " values('". $name ."', '". $nik ."', '". $text ."')";

Правильно будет:
CODE (htmlphp):
скопировать код в буфер обмена
  1. $sql = mysql_query("INSERT INTO table (name, nik, text) VALUES ('$name',' $nik','$text')");


Цитата:
if(count($_POST) && ($name=="" || $nik=="" || $text==""));

Причем тут count - не понял. Хочешь проверить не пустые ли переменные, напиши просто:
CODE (htmlphp):
скопировать код в буфер обмена
  1. if(empty($name) || empty($nik) || empty($text))
  2. {
  3. echo "<p>Заполните все поля!</p>";
  4. }
  5. else
  6. {
  7. //что там надо сделать...
  8. }
  9.  
  10.  


Цитата:
<form method="post">

А да, и в форме файл-обработчик укажи. Атрибут action. Например

CODE (htmlphp):
скопировать код в буфер обмена
  1. <form method="post" action="<?php $_SERVER['PHP_SELF'] ?>">
или
CODE (htmlphp):
скопировать код в буфер обмена
  1. <form method="post" action="file_name.php">



Цитата:
or die ("error" .mysql_error());

Здесь слово "error" можешь убрать. Оно не к чему. Если возникнет ошибка, тебе и так выведет error и т.д. Пишешь просто
CODE (htmlphp):
скопировать код в буфер обмена
6. avtor.fox - 28 Апреля, 2012 - 08:10:22 - перейти к сообщению

Данила О.о

 

Powered by ExBB FM 1.0 RC1