В чём ошибка?
|
|
Feraset | Дата: Суббота, 03 Мая 2014, 10:49 | Сообщение # 1 |
Издание игр
Сейчас нет на сайте
| Здравствуйте, я новичок в php, так что прошу не бить палками за корявый код. Суть вот в чём: В базе MYSQL есть таблица "ip" с полем "ip-users" Нужно сделать так, чтобы при переходе на страницу, ip-шник заходящего определялся и сравнивался со всеми значениями в ip-users таблицы, а после сравнения, ip заходящего добавлялся в таблицу. Попробовал наметать код - не получилось, помогите пожалуйста: Вот код: Код <?php #настройки подключения include 'db_connect.php'; #вытаскиваем ип заходящего пользователя $ip = $_SERVER['REMOTE_ADDR']; #выбираем из базы строку с равным $ip значением $query = mysql_query("SELECT * FROM `ip` WHERE `ip-users`='$ip'"); $row = mysql_num_rows($query); # если не пусто, то обновляем базу if($row <= 0) echo ("$result = mysql_query("UPDATE `games` SET `download`= `download` + 1, `price`= `price` + 0.5 WHERE game='Fall of Bear'"); if ($result== 'true') {echo "<a href=\"\">Загрузить игру FallofBear<a>";} else {echo "Ссылка не найдена";} "); # иначе просто даём ссылку без добавления else echo "<a href=\"\">Загрузить игру FallofBear<a>"; #здесь ip должен добавляться в базу $addip = mysql_query("INSERT INTO `ip` (ip-users) VALUES ($ip)"); ?>
Добавлено (03.05.2014, 10:49) --------------------------------------------- СДЕЛАНО, ЕСЛИ КОМУ ИНТЕРЕСНО Код
<?php include 'db_connect.php'; # Находим ip пользователя $ip = $_SERVER['REMOTE_ADDR'];
#делаем запрос на количество строк поля ip-users mysql базы равных $ip $query = mysql_query("SELECT COUNT(*) AS cnt FROM `ip` WHERE `ip-users`='$ip'"); $row = mysql_fetch_assoc($query); #Если таких строк - 0 тогда if($row['cnt'] == 0) { # Выполняем нужное действие и добавляем ip в базу mysql_query("INSERT INTO`ip` (`ip-users`) VALUES ('$ip')"); mysql_query("UPDATE `games` SET `download`= `download` + 1, `price`= `price` + 0.5 WHERE game='Fall of Bear'"); echo "<a href=\"\">Загрузить игру FallofBear<a>"; } # Иначе если таких строк больше чем 0, выполняем другое действие else { echo "<a href=\"\">Загрузить игру FallofBear<a>"; } ?>
Спасибо пользователю TimCruz, за то что научил меня спокойствию, терпимости и вере в цели.
Сообщение отредактировал Feraset - Суббота, 03 Мая 2014, 12:28 |
|
| |
lvovand | Дата: Суббота, 03 Мая 2014, 11:00 | Сообщение # 2 |
старожил
Сейчас нет на сайте
| а что за ошибку то пишет? если тебе нужно кол-во строк, то лучше COUNT использовать
$query = mysql_query("SELECT COUNT(*) AS cnt FROM `ip` WHERE `ip-users`='$ip'"); $row = mysql_fetch_assoc($query); # если ip в базе еще нет if($row['cnt'] == 0){ ................................. }
Разработка и продвижение сайтов. Дизайн
|
|
| |
Feraset | Дата: Суббота, 03 Мая 2014, 11:05 | Сообщение # 3 |
Издание игр
Сейчас нет на сайте
| Цитата lvovand ( ) а что за ошибку то пишет? если тебе нужно кол-во строк, то лучше COUNT использовать
$query = mysql_query("SELECT COUNT(*) AS cnt FROM `ip` WHERE `ip-users`='$ip'"); $row = mysql_fetch_assoc($query); # если ip в базе еще нет if($row['cnt'] == 0){ ................................. } Не пишет ничего - белый лист. Мне кажется проблема где-то в синтаксисе. Сейчас попробую по твоему - отпишусь. Проверил - изменений не обнаружено
Спасибо пользователю TimCruz, за то что научил меня спокойствию, терпимости и вере в цели.
Сообщение отредактировал Feraset - Суббота, 03 Мая 2014, 11:09 |
|
| |
Folleah | Дата: Суббота, 03 Мая 2014, 11:25 | Сообщение # 4 |
Архитектор
Сейчас нет на сайте
| Что это вообще за бред? В чем смысл кода?
|
|
| |
Feraset | Дата: Суббота, 03 Мая 2014, 11:30 | Сообщение # 5 |
Издание игр
Сейчас нет на сайте
| Цитата Feraset ( ) В базе MYSQL есть таблица "ip" с полем "ip-users" Нужно сделать так, чтобы при переходе на страницу, ip-шник заходящего определялся и сравнивался со всеми значениями в ip-users таблицы, а после сравнения, ip заходящего добавлялся в таблицу.
Пока получилась вот такая шняга: Код <?php include 'db_connect.php'; $ip = $_SERVER['REMOTE_ADDR'];
$query = mysql_query("SELECT COUNT(*) AS cnt FROM `ip` WHERE `ip-users`='$ip'"); $row = mysql_fetch_assoc($query);
if($row['cnt'] == 0){ echo ("$result = mysql_query("UPDATE `games` SET `download`= `download` + 1, `price`= `price` + 0.5 WHERE game='Fall of Bear'");
if ($result== 'true') {echo "<a href=\"\">Загрузить игру FallofBear<a>";} else {echo "Ссылка не найдена";}
"); } else { echo "<a href=\"\">Загрузить игру FallofBear<a>"; $addip = mysql_query("INSERT INTO `ip` (ip-users) VALUES ($ip)"); } ?> Вопрос в том почему код не работает?
Спасибо пользователю TimCruz, за то что научил меня спокойствию, терпимости и вере в цели.
|
|
| |
Folleah | Дата: Суббота, 03 Мая 2014, 11:34 | Сообщение # 6 |
Архитектор
Сейчас нет на сайте
| Это ужас, какие то кривые запросы + кривой код =) Без обид. Сейчас попробую написать
|
|
| |
Feraset | Дата: Суббота, 03 Мая 2014, 11:35 | Сообщение # 7 |
Издание игр
Сейчас нет на сайте
| Цитата Folleah ( ) Это ужас, какие то кривые запросы + кривой код =) Без обид. Сейчас попробую написать Ну, тэк сказать первый раз в бою - буду благодарен
Спасибо пользователю TimCruz, за то что научил меня спокойствию, терпимости и вере в цели.
|
|
| |
Folleah | Дата: Суббота, 03 Мая 2014, 11:38 | Сообщение # 8 |
Архитектор
Сейчас нет на сайте
| При каком условии выводится "Ссылка не найдена"?
|
|
| |
Feraset | Дата: Суббота, 03 Мая 2014, 11:41 | Сообщение # 9 |
Издание игр
Сейчас нет на сайте
| Можно без этой штуки - я проверял ею работоспособность кода - не это здесь важно а проверка ip и апдейт
Спасибо пользователю TimCruz, за то что научил меня спокойствию, терпимости и вере в цели.
|
|
| |
Folleah | Дата: Суббота, 03 Мая 2014, 11:41 | Сообщение # 10 |
Архитектор
Сейчас нет на сайте
| Код <?php include 'db_connect.php'; $ip = $_SERVER['REMOTE_ADDR'];
$query = mysql_query("SELECT * FROM `ip` WHERE `ip-users`='$ip'");
if($query != FALSE) { mysql_query("UPDATE `games` SET `download`= `download` + 1, `price`= `price` + 0.5 WHERE game='Fall of Bear'"); echo "<a href=\"\">Загрузить игру FallofBear<a>"; } else { echo "Ссылка не найдена"; mysql_query("INSERT INTO `ip` (ip-users) VALUES ($ip)"); } ?> Оно?
|
|
| |
Feraset | Дата: Суббота, 03 Мая 2014, 11:53 | Сообщение # 11 |
Издание игр
Сейчас нет на сайте
| Кароче это можно вырезать: else {echo "Ссылка не найдена";}
Добавлено (03.05.2014, 11:43) --------------------------------------------- Цитата Folleah ( ) Оно? Сейчас заценим
Добавлено (03.05.2014, 11:53) --------------------------------------------- Нет не то Код <?php include 'db_connect.php'; $ip = $_SERVER['REMOTE_ADDR'];
$query = mysql_query("SELECT * FROM `ip` WHERE `ip-users`='$ip'"); # в if должно быть если количество(я так понимаю count) ip-users=$ip не равно 0 тогда выполняется, иначе "ссылка не найдена". Твоё же условие добавляет данные если запрос $query выполнен(и вместо != FALSE я так понимаю должно быть $query = TRUE) if($query != FALSE) { mysql_query("UPDATE `games` SET `download`= `download` + 1, `price`= `price` + 0.5 WHERE game='Fall of Bear'"); echo "<a href=\"\">Загрузить игру FallofBear<a>"; } else { echo "Ссылка не найдена"; mysql_query("INSERT INTO `ip` (ip-users) VALUES ($ip)"); } ?>
Спасибо пользователю TimCruz, за то что научил меня спокойствию, терпимости и вере в цели.
Сообщение отредактировал Feraset - Суббота, 03 Мая 2014, 11:54 |
|
| |
Folleah | Дата: Суббота, 03 Мая 2014, 12:21 | Сообщение # 12 |
Архитектор
Сейчас нет на сайте
| Feraset, могу сделать сайт, дешево... Что бы ты не мучился.
|
|
| |
Feraset | Дата: Суббота, 03 Мая 2014, 12:30 | Сообщение # 13 |
Издание игр
Сейчас нет на сайте
| СДЕЛАНО, ЕСЛИ КОМУ ИНТЕРЕСНО Код <?php include 'db_connect.php'; # Находим ip пользователя $ip = $_SERVER['REMOTE_ADDR'];
#делаем запрос на количество строк поля ip-users mysql базы равных $ip $query = mysql_query("SELECT COUNT(*) AS cnt FROM `ip` WHERE `ip-users`='$ip'"); $row = mysql_fetch_assoc($query); #Если таких строк - 0 тогда if($row['cnt'] == 0) { # Выполняем нужное действие и добавляем ip в базу mysql_query("INSERT INTO`ip` (`ip-users`) VALUES ('$ip')"); mysql_query("UPDATE `games` SET `download`= `download` + 1, `price`= `price` + 0.5 WHERE game='Fall of Bear'"); echo "<a href=\"\">Загрузить игру FallofBear<a>"; } # Иначе если таких строк больше чем 0, выполняем другое действие else { echo "<a href=\"\">Загрузить игру FallofBear<a>"; } ?>
Спасибо за помощь!Добавлено (03.05.2014, 12:30) ---------------------------------------------
Цитата Folleah ( ) Feraset, могу сделать сайт, дешево... Что бы ты не мучился. Не, спасиб - опыт мне нужен и практика Folleah, lvovand, поставил бы вам плюсы да система даст поставить только через 2 дня, так что ссори
Спасибо пользователю TimCruz, за то что научил меня спокойствию, терпимости и вере в цели.
Сообщение отредактировал Feraset - Суббота, 03 Мая 2014, 12:27 |
|
| |
Folleah | Дата: Суббота, 03 Мая 2014, 13:45 | Сообщение # 14 |
Архитектор
Сейчас нет на сайте
| Feraset, я просто задание не понял. Ну а так, не за что
|
|
| |