Код (Text): <?php include 'lock.php'; ?> <?php //проверки полей на кол-во символов $author = mysql_real_escape_string($_POST['author']); $text = mysql_real_escape_string($_POST['text']); $text2 = mysql_real_escape_string($_POST['text2']); $name = mysql_real_escape_string($_POST['name']); $link = mysql_real_escape_string($_POST['link']); $for = mysql_real_escape_string($_POST['for']); $keywords = mysql_real_escape_string($_POST['keywords']); $keywordsmain = mysql_real_escape_string($_POST['keywordsmain']); $description = mysql_real_escape_string($_POST['description']); $db_host='127.0.0.1';// ваш адрес где находится, хостится ваша база данных $db_login='root';// логин доступ к базе данных $db_pass='';// пароль доступа к базе данных $db_name='asy';// Имя базы данных с которой вы хотите работать, так как их может быть множество $db = mysql_connect($db_host,$db_login,$db_pass); if(!$db) echo 'Ошибка подключения'; // Нужно быть уверенным, что подключение удачно mysql_select_db($db_name); $result = mysql_query("INSERT INTO `stat` (name,text,text2,author,link,status,for,keywords,keywordsmain,description) VALUES('$name','$text','$text2','$author','$link','0','$for','$keywords','$keywordsmain','$description')"); if($result) { echo '<script type="text/javascript"> window.close(); </script>'; } else { echo 'Запись не обновлена'; } ?> все данные приходят из формы. таблица верно написана(имя). все поля в правильном порядке и по написанию тоже верно. Статус должен уходить 0. вот все уже проверил но не могу найти ошибку.
Он и уходит А вот остальное не правильно... исправь Код (Text): $result = mysql_query("INSERT INTO `stat` (name,text,text2,author,link,status,for,keywords,keywordsmain,description) VALUES($name,$text,$text2,$author,$link,'0',$for,$keywords,$keywordsmain,$description)");
Берешь запрос echo $query = "INSERT INTO `stat` (name,text,text2,author,link,status,for,keywords,keywordsmain,description) VALUES('$name','$text','$text2','$author','$link','0','$for','$keywords','$keywordsmain','$description')"; открываешь свой любимый mysql client, делаешь его напрямую, отлаживаешь запрос там же.
INSERT INTO `stat` (name,text,text2,author,link,status,for,keywords,keywordsmain,description) VALUES('7','7','7','7','7','0','3','7','7','7') Notice: Undefined variable: result in I:\site\admin\newstataction.php on line 27 Запись не обновлена
ты не понял, я предлагаю воспользоваться чем-то типа Navicat, и сделать этот запрос напрямую в базу, чтобы посмотреть, что выдает mysql. на всякий случай, писать нужно echo mysql_error(); а не просто mysql_error();
ну я посмотрел как показывает пхпадмин как послать запрос на добавление. сделал...в итоге как бы ошибки то и нет но и не добавляет... Добавлено спустя 4 минуты 32 секунды: Код (Text): <?php include 'lock.php'; ?> <?php //проверки полей на кол-во символов $author = mysql_real_escape_string($_POST['author']); $text = mysql_real_escape_string($_POST['text']); $text2 = mysql_real_escape_string($_POST['text2']); $name = mysql_real_escape_string($_POST['name']); $link = mysql_real_escape_string($_POST['link']); $for = mysql_real_escape_string($_POST['for']); $keywords = mysql_real_escape_string($_POST['keywords']); $keywordsmain = mysql_real_escape_string($_POST['keywordsmain']); $description = mysql_real_escape_string($_POST['description']); $db_host='127.0.0.1';// ваш адрес где находится, хостится ваша база данных $db_login='root';// логин доступ к базе данных $db_pass='';// пароль доступа к базе данных $db_name='asy';// Имя базы данных с которой вы хотите работать, так как их может быть множество $db = mysql_connect($db_host,$db_login,$db_pass); if(!$db) echo 'Ошибка подключения'; // Нужно быть уверенным, что подключение удачно mysql_select_db($db_name); $result = ("INSERT INTO `stat`(`name`, `text`, `text2`, `author`, `link`, `status`, `for`, `keywords`, `keywordsmain`, `description`) VALUES ('$name','$text','$text2','$author','$link','0','$for','$keywords','$keywordsmain','$description',)"); if($result) { echo mysql_error(); echo '<script type="text/javascript"> window.close(); </script>'; } else { echo 'Запись не обновлена'; } ?> вот скрипт Код (Text): <?php include 'lock.php'; ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <link rel="stylesheet" type="text/css" href="..\main.css" /> <style type="text/css"> table{ margin-top:2%; } input{ -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; } </style> </head> <body> <?php $db_host="127.0.0.1"; // обычно не нужно изменять $db_user="root"; // имя пользователя БД $db_password=""; // пароль БД $db_name = "asy"; // имя БД $table_name = "stat"; // имя таблицы статистики // соединение с БД mysql_connect($db_host, $db_user, $db_password) or die (mysql_error()); mysql_select_db($db_name) or die (mysql_error()); echo '<form action="newstataction.php" method="post" > <p style="margin-top:15%;" align="center">Вводите ваши данные:</p>'; $tr = '<tr><td>'; $trc = '</td></tr>'; $td = '</td><td>'; $status = '0'; echo '<h2><p align="center" style="color:red;">Перед вставкой проверить на кол-во симолов! При ошибке окно закроется с потерей данных!</p></h2><table>' .$tr.'Название'.$td.'<input type="text" name="name" title="" >20'.$td.$trc .$tr.'Текст'.$td.'<textarea name="text" title="" ></textarea>7500</td><td>'.$trc .$tr.'Текст2'.$td.'<input type="text" name="text2" title="status" >100'.$td.$trc .$tr.'Автор'.$td.'<input type="text" name="author" title="status" >100'.$td.$trc .$tr.'Источник'.$td.'<input type="text" name="link" title="status" >100'.$td.$trc .$tr.'Ключи'.$td.'<input type="text" name="keywords" title="status" >100'.$td.$trc .$tr.'тип новости'.$td.'<select size="1" name="for"> <option selected>Тип товара</option> <option value="1">Общая</option> <option value="2">для монтажников</option> <option value="3">для предпринимателей</option> <option value="4">для клиента</option> </select>'.$td.$trc .$tr.'Ключи главные'.$td.'<input type="text" name="keywordsmain" title="status" >25'.$td.$trc .$tr.'Вторичные ключи'.$td.'<input type="text" name="description" title="status" >25'.$td.$trc .'</table><input name="submit" type="submit" value="New News" /> '; ?> </form> </body> </html> вот форма Добавлено спустя 5 минут 44 секунды: вроде ниче сложного же. я уже этот скрипт раз 5 использовал и работает. тут раз не редактирует и не добавляет...странно
Код (Text): $result = mysql_query("INSERT INTO `stat` (name,text,text2,author,link,status,for,keywords,keywordsmain,description) VALUES('$name','$text','$text2','$author','$link','0','$for','$keywords','$keywordsmain','$description')"); ==> Код (PHP): $result = mysql_query("INSERT INTO `stat` (`name`, `text`, `text2`, `author`, `link`, `status`, `for`, `keywords`, `keywordsmain`, `description`) VALUES ('$name', '$text', '$text2', '$author', '$link', '0', '$for', '$keywords', '$keywordsmain', '$description')"); Т.е. возьми названия столбцов в косые кавычки - такие же, как и те, которыми окружено название таблицы.
sobachnikб, алилуя!!! да ты прав))) как я затупил опять то? Добавлено спустя 2 минуты 47 секунд: тогда еще вопрос по редактированию..если это не будет считаться наглостью)) Код (Text): <?php include 'lock.php'; ?> <?php // данные доступа к базе данных $db_host = '127.0.0.1'; $db_login = 'root'; $db_pass = ''; $db_name = 'asy'; $table = 'stat'; $db = mysql_connect($db_host, $db_login, $db_pass) or exit(mysql_error()); mysql_select_db($db_name, $db) or exit(mysql_error()); $id = (int)$_GET["id"]; if(!$id) exit('ID не указан!'); $sql = "UPDATE `stat` SET `author` = '" . mysql_real_escape_string($_POST['author'], $db) . "', `text` = '" . mysql_real_escape_string($_POST['text'], $db) . "', `text2` = '" . mysql_real_escape_string($_POST['text2'], $db) . "', `name` = '" . mysql_real_escape_string($_POST['name'], $db) . "', `keywords` = '" . mysql_real_escape_string($_POST['keywords'], $db) . "', `keywordsmain` = '" . mysql_real_escape_string($_POST['keywordsmain'], $db) . "', `link` = '" . mysql_real_escape_string($_POST['link'], $db) . "', `for` = '" . mysql_real_escape_string($_POST['for'], $db) . "', `status` = '" . mysql_real_escape_string($_POST['status'], $db) . "', `description` = '" . mysql_real_escape_string($_POST['description'], $db) . "' WHERE `id` = {$id}"; $res = mysql_query($sql, $db) or exit(mysql_error()); if($res) { echo '<script type="text/javascript"> window.close(); </script>'; } else { echo 'Запись не обновлена'; } ?> Код (Text): <?php include 'lock.php'; ?> <html> <head> <script> function closeWindow() { if(false == popupWindow.closed) { popupWindow.close (); } else { alert("sms"); } } </script> </head> <body> <?php $db_host="127.0.0.1"; // обычно не нужно изменять $db_user="root"; // имя пользователя БД $db_password=""; // пароль БД $db_name = "asy"; // имя БД $table_name = "stat"; // имя таблицы статистики // соединение с БД mysql_connect($db_host, $db_user, $db_password) or die (mysql_error()); mysql_select_db($db_name) or die (mysql_error()); //Преобразование в безопасные символы $id = (int)$_GET["id"]; $soo = mysql_query("SELECT * FROM `stat` WHERE `id` = '$id'"); $kol = mysql_num_rows($soo); for ($i=0; $i <= 0; $i++) { $kol2 = mysql_fetch_assoc($soo); if($kol2['for'] == 1) // Статус заявки выполнен { $grey='color:black;'; $selected = '<select size="1" name="status"> <option value="1" selected>Общая</option> <option value="2">для монтажника</option> <option value="3">для предпринимателя</option> <option value="4">для клиента</option> </select>'; } elseif ($kol2['for'] == 2){ $grey='color:darkgrey;'; $selected = '<select size="1" name="status"> <option value="1" >Общая</option> <option value="2" selected>для монтажника</option> <option value="3">для предпринимателя</option> <option value="4">для клиента</option> </select>'; } elseif ($kol2['for'] == 3){ $grey='color:darkgrey;'; $selected = '<select size="1" name="status"> <option value="1">Общая</option> <option value="2">для монтажника</option> <option value="3" selected>для предпринимателя</option> <option value="4">для клиента</option> </select>'; } elseif ($kol2['for'] == 4){ $grey='color:darkgrey;'; $selected = '<select size="1" name="status"> <option value="1">Общая</option> <option value="2">для монтажника</option> <option value="3">для предпринимателя</option> <option value="4" selected>для клиента</option> </select>'; } echo '<form action="stataction.php" method="post" > <p style="margin-top:15%;" align="center">Вводите ваши данные:</p>'; $tr = '<tr><td>'; $trc = '</td></tr>'; $td = '</td><td>'; $status = '0'; echo $kol2['id'].'</br> <table><form method="post" action="stataction.php?id=' . $kol2['id'] . '"> <tr style="'.$grey.'"><td>Автор : </td><td><input type="text" style="width:40px; "name="author" value="'.$kol2['author'].'" ></input></br></br></td></tr> <tr><td style="'.$grey.'">Заголовок :</td><td><input type="text" name="name" value="'.$kol2['name'].'" ></input></br></br></br></td></tr> <tr><td style="'.$grey.'">Текст новости : </td><td><textarea maxlength="7500" wrap="soft" name="text" value="'.strip_tags($kol2['text']).'" >'.strip_tags($kol2['text']).' </textarea></br></br></br></td></tr> <tr><td style="'.$grey.'">Текст новости : </td><td><textarea maxlength="7500" wrap="soft" name="text2" value="'.strip_tags($kol2['text2']).'" >'.strip_tags($kol2['text2']).' </textarea></br></br></br></td></tr> <tr><td>link : </td><td><input type="text" name="link" value="'.$kol2['link'].'" ></input></br></br></br></td></tr> <tr><td>Ключи : </td><td><input type="text" name="keywords" value="'.$kol2['keywords'].'" ></input></br></br></br></td></tr> <tr><td>вторые ключи : </td><td><input type="text" name="description" value="'.$kol2['description'].'" ></input></br></br></br></td></tr> <tr><td>тип : </td><td></br>'.$selected.'</input></br></td></tr> <tr><td>_</td><td>_</td></tr> <tr><td></td><td><a onClick="JavaScript:closeWindow();"><input onClick="JavaScript:closeWindow();" type="submit" value="Редактировать" /></a></td></tr></form></table> </body> </html>'; } ?> выдает что нет id хотя в окне следуещее пере отправкой данных http://127.0.0.1/index/admin/prosstat.php?id=2 ошибка Notice: Undefined index: id in I:\site\admin\stataction.php on line 13 ID не указан!
Имелось в виду "перед"? Если так - то какая разница, что там в окне перед отправкой данных? Важно, куда эти данные отправляются В случае простой отправки формы - это тот адрес, который прописан в атрибуте action у тега form.
Код (Text): <form method="post" action="stataction.php?id=' . $kol2['id'] . '"> ну вот эта строка..отправляет данную.. Добавлено спустя 1 минуту 48 секунд: дамп в скрипте уже пишет что не существует ее. значит ли это что я ее не вытащил из адресной стоки?
А перед этим, на 80-й строке у тебя Код (Text): echo '<form action="stataction.php" method="post" > Попробуй убрать.
Notice: Undefined index: for in I:\site\admin\stataction.php on line 25 Incorrect integer value: '' for column 'for' at row 1 теперь такая ерунда... по моей логике когда я писал то выводятся данные со статусом например. и исходя из того какой селектед то выводить нужную форму... я дублировал просто ее для поля for и щас он говорит мне что не передано ей значение?
У тебя нету инпута с атрибутом name="for". Возможно, это должно быть здесь? И ещё. Вот это что такое? Код (PHP): for ($i=0; $i <= 0; $i++) {
вот я тупень. пока свое сообщение еще раз не прочитал не понял что в name="" не сменил статус на фор))) всем спасибо огромное! если бы не вы я бы еще долго сидел и корячился это раз а во вторых приятно осознавать что в беде не юросят. только благодаря форуму этому я стал хоть как то разбиратся в пхп! даже свой скрипт написал ))) кстати не самый легкий по логике) Добавлено спустя 1 минуту 14 секунд: Код (Text): for ($i=0; $i <= 0; $i++) { по этому поводу я тоже долго не понимал но работает)) и ладно) одна из заповедей програмиста - работает - не трожь!
Ну работать то будет, но зачем?) Вообще нет никакого смысла в этом. Ну так еще мона: Код (PHP): mysql_query("INSERT INTO `stat` SET `name`='".$name."',`text`='".$text."',,,,,,,,,");