[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: php админка
ahanter
Доброго времени суток!
вот прочитал аннотацию на видео курсы Попова и питаюсь использовать сию анотацию у себя, но сразу же столкнулся с проблемой:(


<?php
include ('./lock.php');
include ('./blocks/db.php');

if (!empty($_POST['page'])) $page = $_POST['page'];
if (!empty($_POST['title'])) $title = $_POST['title'];
if (!empty($_POST['meta_d'])) $meta_d = $_POST['meta_d'];
if (!empty($_POST['meta_k'])) $meta_k = $_POST['meta_k'];
if (!empty($_POST['way'])) $way = $_POST['way'];
if (!empty($_POST['fg'])) $fg = $_POST['fg'];
if (!empty($_POST['text'])) $text = $_POST['text'];
?>

..........
<?php

if (isset($page, $title, $meta_d, $meta_k, $way, $fg, $text))
{
/* Здесь пишем что можно заносить информацию в базу */
$result = mysql_query ("INSERT INTO `object`
(`page`, `title`, `meta_d`, `meta_k`, `way`, `fg`, `text`)
VALUES
('"
. mysql_real_escape_string($page) ."',
'"
. mysql_real_escape_string($title) ."',
'"
. mysql_real_escape_string($meta_d) ."',
'"
. mysql_real_escape_string($meta_k) ."',
'"
. mysql_real_escape_string($way) ."',
'"
. mysql_real_escape_string($fg) ."',
'"
. mysql_real_escape_string($text) ."',

)"

);
echo $result;
if (mysql_affected_rows() > 0)
echo "<p>Ваш урок успешно добален!</p>";
else
echo "<p>Ваш урок не добален!</p>";
}
else
{
echo "<p>Вы ввели не всю информацию, поэтому урок в базу не может быть добален.</p>";
}
?>


на странице соопщение
Ваш урок не добален!



Спустя 1 минута, 13 секунд (24.03.2012 - 11:20) ADiel написал(а):

". mysql_real_escape_string($text) ."',

)"
) or die(mysql_error());

Спустя 3 минуты, 38 секунд (24.03.2012 - 11:24) Michael написал(а):
VALUES ( ... ,)
запятую перед закрывающей скобкой убери

Спустя 23 минуты, 23 секунды (24.03.2012 - 11:47) ahanter написал(а):
Сделал (вроде) как сказали

<?php
[b]если здесь поставить echo $page и т.д. то виводит переменные[/b]
if (isset($page, $title, $meta_d, $meta_k, $way, $fg, $text))
{
/* Здесь пишем что можно заносить информацию в базу */
$result = mysql_query (("INSERT INTO `object`
(`page`, `title`, `meta_d`, `meta_k`, `way`, `fg`, `text`)
VALUES
('"
. mysql_real_escape_string($page) ."',
'"
. mysql_real_escape_string($title) ."',
'"
. mysql_real_escape_string($meta_d) ."',
'"
. mysql_real_escape_string($meta_k) ."',
'"
. mysql_real_escape_string($way) ."',
'"
. mysql_real_escape_string($fg) ."',
'"
. mysql_real_escape_string($text) ."'

)"
)or die(mysql_error())
);

echo $result; [b]но тут ничего не виводит...[/b]
if (mysql_affected_rows() > 0)
echo "<p>Ваш урок успешно добален!</p>";
else
echo "<p>Ваш урок не добален!</p>";
}
else
{
echo "<p>Вы ввели не всю информацию, поэтому урок в базу не может быть добален.</p>";
}
?>

Спустя 4 минуты, 25 секунд (24.03.2012 - 11:52) ADiel написал(а):
И что дальше?

echo $result; но тут ничего не виводит... а тут ничего и не должно выводить.

http://php.net/manual/ru/function.mysql-query.php

Возвращаемые значения

Для запросов SELECT, SHOW, DESCRIBE, EXPLAIN и других запросов, возвращающих результат из нескольких рядов, mysql_query() возвращает дескриптор результата запроса (resource), или FALSE в случае ошибки.

Для других типов SQL-запросов, INSERT, UPDATE, DELETE, DROP и других, mysql_query() возвращает TRUE в случае успеха и FALSE в случае ошибки.

Полученный дескриптор результата нужно передать в функцию mysql_fetch_assoc() или любую другую функцию, работающую с результатами запросов.

Используйте mysql_num_rows() для выяснения количества рядов в результате SELECT-запроса или mysql_affected_rows() для выяснения количества обработанных рядов запросами DELETE, INSERT, REPLACE и UPDATE.

mysql_query() также завершится с ошибкой и вернет FALSE, если у пользователя нет доступа к какой-либо из таблиц, фигурирующих в запросе.

Спустя 31 минута, 18 секунд (24.03.2012 - 12:23) ahanter написал(а):
ADiel только не материте пожалуйста :rolleyes:
Цитата
Читайте документацию, а то обматерю!

RTFM сделал но попрежнему не пойму почему этот код не работает

$result = mysql_query ("INSERT INTO `object`
(`page`, `title`, `meta_d`, `meta_k`, `way`, `fg`, `text`)
VALUES
('". mysql_real_escape_string($page) ."',
'". mysql_real_escape_string($title) ."',
'". mysql_real_escape_string($meta_d) ."',
'". mysql_real_escape_string($meta_k) ."',
'". mysql_real_escape_string($way) ."',
'". mysql_real_escape_string($fg) ."',
'". mysql_real_escape_string($text) ."'

)"
);

аффтар же сказал что все правильно...

Спустя 23 минуты, 18 секунд (24.03.2012 - 12:46) twin написал(а):
or die что говорит?

Спустя 6 минут, 31 секунда (24.03.2012 - 12:53) ahanter написал(а):
ошибок невыдает...

а
echo mysql_affected_rows()

пришет -1...

Спустя 18 минут, 39 секунд (24.03.2012 - 13:11) twin написал(а):
А дамп покажи таблицы

Спустя 2 часа, 32 минуты, 47 секунд (24.03.2012 - 15:44) sebastjan написал(а):
Может не совсем в тему.
А так разве не лучше писать.

mysql_real_escape_string($page, $title, $meta_d, $meta_k, $way,$fg, $text)


Чем каждый раз запускать функцию.
Семь однотипных операций.

Спустя 16 минут, 33 секунды (24.03.2012 - 16:01) sebastjan написал(а):
По теме урока, ну так там же написанно

if ($result == 'true') {echo "<p>Ваш урок успешно добален!</p>";}
else {echo "<p>Ваш урок не добален!</p>";}


Выполняется сначало проверка if ($result == 'true')
если всё Ок, тогда выводится запись Ваш урок успешно добален!
в другом случаи Ваш урок не добален!

Цитата
echo $result;  но тут ничего не виводит...

А ты в лоб сразу хочешь вывести переменную $result;, которая содержит запрос к базе как эхо. :)
На этом месте по идеи интерпретатор и останавливается, хотя я только предпологаю, может и глупость сказал про интерпритатор.
И ещй добавлю.
Послет того как естественно ни чего не выведет $result; а покажет пустую страницу, ни какие дальше условие не имеют смысла.
Вывод пустоты ты сделал на этом и заканчивается твой скрипт.
Я делю на этапы выполнение задачи и отлавливаю ошибки.
Что и тебе советую.
Вот твой кусок кода, для наглядности коментарии читай.


)")or die(mysql_error())
);
echo
$result; но тут ничего не виводит.../* после этого действия ничего выполняться не будет, вывод сделан ! */

if (mysql_affected_rows() > 0)
echo "
<p>Ваш урок успешно добален!</p>";
else


Спустя 2 часа, 7 минут, 46 секунд (24.03.2012 - 18:08) twin написал(а):
Цитата (sebastjan @ 24.03.2012 - 12:44)
Может не совсем в тему.
А так разве не лучше писать.

mysql_real_escape_string($page, $title, $meta_d, $meta_k, $way,$fg, $text)


Чем каждый раз запускать функцию.
Семь однотипных операций.

Это как так?

Цитата
echo $result;  но тут ничего не виводит.../* после этого действия ничего выполняться не будет, вывод сделан ! */
Это почему это?

Спустя 8 минут, 57 секунд (24.03.2012 - 18:17) sebastjan написал(а):
twin
Я может не правильно сказал, потому что думаю что после вывода ЕХО, вывод в том же скрипте других данных не будет.
А про функцию
Цитата
mysql_real_escape_string($page, $title, $meta_d, $meta_k, $way,$fg, $text)


разве нельзя сразу в одной функции сделать обработку нескольким значениям?
Я не утверждаю а предпологаю
По идеи должно работать. Какая разница или одна переменая обработется или грппа.

Спустя 6 минут, 56 секунд (24.03.2012 - 18:24) twin написал(а):
А не надо предполагать. Нужно смотреть мануал. Там все написано.

Спустя 4 минуты, 17 секунд (24.03.2012 - 18:29) sebastjan написал(а):
twin
В мануале не написанно что именно одну переменну со сторой можно обработать.
Поэтому и предпологаю.
Надосуге попрбую.


Спустя 31 минута, 56 секунд (24.03.2012 - 19:00) sebastjan написал(а):
Да, был не прав, расуждения мои ложные, нельзя в качестве парапмера для mysql_real_escape_string($xxx,$bbb) всунуть группу
Работает только с уже предварительно обьедённённой строй.
Попробовал так работает
$x="fjk;lmhlytmhjltyjhytjn";
$xx = "aklmujm,u";
$xxx = $x+$xx;
mysql_real_escape_string($xxx);

Но это мёртвому припарки, сама идея обработать сразу группу переменных не катит.
Сколько можно было бы строчек сократить. <_<

Что то я совсем туплю.

Спустя 3 часа, 31 минута, 28 секунд (24.03.2012 - 22:32) ahanter написал(а):
Ну вот почему здесь у автора все просто и доступно, а на деле.... мож руки кривые huh.gif

Спустя 7 часов, 30 минут, 7 секунд (25.03.2012 - 06:02) twin написал(а):
Дамп базы данных покажи и все наладим.

Спустя 10 часов, 59 минут, 18 секунд (25.03.2012 - 17:01) ahanter написал(а):
-- Структура таблиці `object`
--

CREATE TABLE IF NOT EXISTS `object` (
`id` int(3) NOT NULL AUTO_INCREMENT,
`page` varchar(255) NOT NULL,
`title` varchar(255) NOT NULL,
`meta_d` varchar(255) NOT NULL,
`meta_k` varchar(255) NOT NULL,
`way` text NOT NULL,
`fg` text NOT NULL,
`text` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;

Спустя 7 минут, 36 секунд (25.03.2012 - 17:09) twin написал(а):
Незнаю чего ты там где понавертел, но вот этот код гарантированно работет:
    $page = $title = $meta_d = $meta_k = $way = $fg = $text = 'test';

if (isset($page, $title, $meta_d, $meta_k, $way, $fg, $text))
{
/* Здесь пишем что можно заносить информацию в базу */
$result = mysql_query ("INSERT INTO `object`
(`page`, `title`, `meta_d`, `meta_k`, `way`, `fg`, `text`)
VALUES
('"
. mysql_real_escape_string($page) ."',
'"
. mysql_real_escape_string($title) ."',
'"
. mysql_real_escape_string($meta_d) ."',
'"
. mysql_real_escape_string($meta_k) ."',
'"
. mysql_real_escape_string($way) ."',
'"
. mysql_real_escape_string($fg) ."',
'"
. mysql_real_escape_string($text) ."'
)"
)or die(mysql_error());


if (mysql_affected_rows() > 0)
echo "<p>Ваш урок успешно добален!</p>";
else
echo "<p>Ваш урок не добален!</p>";
}
else
{
echo "<p>Вы ввели не всю информацию, поэтому урок в базу не может быть добален.</p>";
}

Спустя 11 минут, 9 секунд (25.03.2012 - 17:20) ahanter написал(а):
спс)
ща попробую...

Спустя 14 минут, 53 секунды (25.03.2012 - 17:35) ahanter написал(а):
No database selected blink.gif

Спустя 2 часа, 32 секунды (25.03.2012 - 19:36) inpost написал(а):
Ну вот тебе ответ.

Спустя 13 минут, 34 секунды (25.03.2012 - 19:49) ahanter написал(а):
Цитата
Ну вот тебе ответ.


так чевож оно так... боясните пожалуйста....

Спустя 1 минута, 54 секунды (25.03.2012 - 19:51) inpost написал(а):
Надо выбрать Базу данных. Для этого есть: mysql_select_db(); используй её. Перед этим надо mysql_connect(); Если ошибка там, до не забудь дописать к этому запросу: "or die(mysql_error())"

Спустя 4 минуты, 11 секунд (25.03.2012 - 19:55) ahanter написал(а):
так у меня ж база подключается из файла
include ('./blocks/db.php');
в котором
<?php
/* Подключение к серверу MySQL */
$link = mysqli_connect(
'localhost', /* Хост, к которому мы подключаемся */
'arafat', /* Имя пользователя */
'12345', /* Используемый пароль */
'bossdb'); /* База данных для запросов по умолчанию */

if (!$link) {
printf("Невозможно подключиться к базе данных. Код ошибки: %s\n", mysqli_connect_error());
exit;
} ?>

Спустя 9 минут, 14 секунд (25.03.2012 - 20:04) ahanter написал(а):
Сделал так:
<?php 
if (isset($page, $title, $meta_d, $meta_k, $way, $fg, $text))
{
/* Соединяемся с базой данных */
$hostname = "localhost";
$username = "arafat";
$password = "12345";
$dbName = "bossdb";

$db = mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");
mysql_select_db($dbName) or die (mysql_error());
/* Здесь пишем что можно заносить информацию в базу */
$result = mysql_query ("INSERT INTO object
(page, title, meta_d, meta_k, way, fg, text)
VALUES
('"
. mysql_real_escape_string($page) ."',
'"
. mysql_real_escape_string($title) ."',
'"
. mysql_real_escape_string($meta_d) ."',
'"
. mysql_real_escape_string($meta_k) ."',
'"
. mysql_real_escape_string($way) ."',
'"
. mysql_real_escape_string($fg) ."',
'"
. mysql_real_escape_string($text) ."'
)"
)or die(mysql_error());
if (mysql_affected_rows() > 0)
echo "<p>Ваш урок успешно добален!</p>";
else
echo "<p>Ваш урок не добален!</p>";
}
else
{
echo "<p>Вы ввели не всю информацию, поэтому урок в базу не может быть добален.</p>";
}
?>



РАБОТАЕТ!!!!!!!!! РАБОТАЕТ МОЕЙ МЕЧТЫ!!!!!!!!!! ЗДАРАВЕННЫЙ...

ой :)
а почему же без
этого
/* Соединяемся с базой данных */
$hostname = "localhost";
$username = "arafat";
$password = "12345";
$dbName = "bossdb";

$db = mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");
mysql_select_db($dbName) or die (mysql_error());

не работало???

Спустя 2 минуты, 24 секунды (25.03.2012 - 20:07) ahanter написал(а):
ОГРОМНЕЙШЕЕ СПАСИБО inpost ну и всем остальным обсуждавшим...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.