[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблемы с ввоом данных в БД
shtopor10
Здравствуйте, помогите пожалуйсто скрипт вводящий и выводящий данные из БД выводит ошибку, что я неправильно написал? Вот код:
<?
$id = "8";
$db = mysql_connect("localhost", "admin", "******");
mysql_select_db("mysait",$db);
$ip = $_SERVER['REMOTE_ADDR'];
$result = mysql_query("SELECT * FROM ipban WHERE ip='$ip'",$db);
$myrow = mysql_fetch_array($result);
$qwe = $myrow["id"];
if (empty($qwe))
{
$result = mysql_query ("INSERT INTO ipban (ip, id) VALUES ($ip,$id)");
if ($result == 'true')
{
echo "Ваш IP внесен в базу данных.";
}else{
echo "Ошибка";
}
}
else{
echo "Ваш IP уже имеется в базе.";
}

?>




Спустя 18 минут, 50 секунд (2.08.2010 - 21:23) inpost написал(а):
Передавай привет Попову!
Укажи, что за ошибка, скорее всего проблемы в данных! Их неплохо было бы проверять, перед тем, как вносить! А вот теперь вносим в базу данных:
$result = mysql_query ("INSERT INTO `ipban` SET
`ip`='"
.$ip."',
`id`='"
.$id."'
"
,$db);
// В свою очередь, id надо делать автоинкремент, чтоб сам проставлялся! + проверь, правильно ли приходят данные: echo $ip.id;

Спустя 33 секунды (2.08.2010 - 21:24) Lenarfate написал(а):
что выводит?

пару советов:
1. вместо mysql_fetch_array лучше mysql_fetch_assoc
2.
Цитата
if ($result == 'true')

в корне не верно. true без кавычек
3.
Цитата
$id = "8";

id как правило - это число, а у вас строка.правильно так $id = 8;

Спустя 4 минуты, 50 секунд (2.08.2010 - 21:29) shtopor10 написал(а):
Я проверил скрипт есче раз, проблема в том что когда я указываю в переменную ip любое число все работает а когда подстовляю $_SERVER['REMOTE_ADDR']; в переменную ip функция server вносит все нормально я проверял а в бд вноситься нехочет что делать? Выводится надпись ошибка из скрипта (echo "Ошибка";)

Спустя 15 минут, 50 секунд (2.08.2010 - 21:45) Ice написал(а):
Здравствуйте! Попову пламенный привет. Всё делается рациональнее и проще

$db = mysql_connect("localhost", "root", "*****");
mysql_select_db('mysite');

$ip = $_SERVER['REMOTE_ADDR'];

$sql = "SELECT COUNT(*) FROM ipban WHERE ip='". ip2long($ip) ."'";
$query = mysql_query( $sql ) or die( mysql_error() );

if( mysql_result( $query, 0 ) > 0 ) {
print 'Ваш IP уже имеется в базе.';
} else {
$sql = "INSERT INTO ipban (ip) VALUES ('". ip2long($ip) ."')";
mysql_query( $sql );
print 'IP успешно добавлен в базу';
}

Сорри, привожу дамп таблицы, чтобы не возникло возможных дополнительных вопросов

CREATE TABLE `ipban` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`ip` INT(10) NOT NULL,
PRIMARY KEY (`id`)
)

COLLATE='utf8_general_ci'
ENGINE=MyISAM
ROW_FORMAT=DEFAULT

Спустя 4 минуты, 45 секунд (2.08.2010 - 21:49) shtopor10 написал(а):
А откуда про то что все знания от попова знаете?
И почему print-ом а не echo выводится надпись, это же из perl ?

Спустя 2 минуты, 42 секунды (2.08.2010 - 21:52) Ice написал(а):
Так криво моет только он. Даже новис так не напишет. Ну и есть конкретные зацепки в коде, по которому можно точно понять, кто мог так мыслить. Да и отвечаем одно и тоже по десять раз на дню. Шаблонно.

Цитата
И почему print-ом а не echo выводится надпись, это же из perl ?

Это дело вкуса. Я так привык просто

Спустя 9 минут, 58 секунд (2.08.2010 - 22:02) Lenarfate написал(а):
Цитата
А откуда про то что все знания от попова знаете?

звучит как приговор)

Спустя 5 минут, 4 секунды (2.08.2010 - 22:07) Basili4 написал(а):
shtopor10
Дык апосля Попова с нераобчими скриптами каждый день кто нибудь да заходит я не смотрел его видео уроки но у же знаю про что он рассказывает

Спустя 4 минуты, 32 секунды (2.08.2010 - 22:12) shtopor10 написал(а):
Цитата (Ice @ 2.08.2010 - 18:45)

$db = mysql_connect("localhost", "root", "*****");
mysql_select_db('mysite');

$ip = $_SERVER['REMOTE_ADDR'];

$sql = "SELECT COUNT(*) FROM ipban WHERE ip='". ip2long($ip) ."'";
$query = mysql_query( $sql ) or die( mysql_error() );

if( mysql_result( $query, 0 ) > 0 ) {
print 'Ваш IP уже имеется в базе.';
} else {
$sql = "INSERT INTO ipban (ip) VALUES ('". ip2long($ip) ."')";
mysql_query( $sql );
print 'IP успешно добавлен в базу';
}

Код неработает выводится ошибка "You have an error in your SQL syntax near '8' at line 1"

Спустя 1 минута, 18 секунд (2.08.2010 - 22:13) Ice написал(а):
код проверен на локальной машине. Ищите ошибку у себя.
Хотя,можно даже не брать в кавычки вводимые в базу значения.

 $db = mysql_connect("localhost", "root", "*****");
mysql_select_db('test');

$ip = ip2long( $_SERVER['REMOTE_ADDR'] );

$sql = "SELECT COUNT(*) FROM ipban WHERE ip=$ip";
$query = mysql_query( $sql ) or die( mysql_error() );

if( mysql_result( $query, 0 ) > 0 ) {
print 'Ваш IP уже имеется в базе.';
} else {
$sql = "INSERT INTO ipban (ip) VALUES ($ip)";
mysql_query( $sql );
print 'IP успешно добавлен в базу';
}

Спустя 1 минута, 41 секунда (2.08.2010 - 22:15) Basili4 написал(а):
измените строчку будет понятнее
$query = mysql_query( $sql ) or die($sql. mysql_error() );

Спустя 15 минут, 8 секунд (2.08.2010 - 22:30) shtopor10 написал(а):
Ладно всем спасибо за помощь я уже удолил все от попова и скачал пару книг буду смотреть почему не работает, хорошо что я попову не рубля не отдал и все уроки на халяву скачал biggrin.gif

Спустя 1 минута, 29 секунд (2.08.2010 - 22:31) Ice написал(а):
Удачи!

Спустя 14 часов, 18 минут, 29 секунд (3.08.2010 - 12:50) shtopor10 написал(а):
Кому интересно я нашел ошибку код написан неправильно но ip нельзя так просто заносить в бд его сначало надо пропустить через функцию ip2long() а когда выводить через long2ip()
Быстрый ответ:

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