С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
4 / 4 / 1
Регистрация: 28.03.2015
Сообщений: 155
1

ошибка при добавлении

21.10.2015, 16:31. Показов 1175. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здраствуйте
есть 2 базы - users и konkur
пользеватель наживает на кнопку и добавляется в базу konkur
из нее рандомно выбирается победитель, выводится

и дальше в базу users в столбец sum добавляется +1 (количество побед)
но возникает ошибка - где-то сохраняется это его количество побед и потом записуется другим победившим(думаю обьяснил нормально)
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$result99 = mysql_query("SELECT idd,dd FROM konkur ",$db); //извлекаем, dd-логин пользевателя 
$myrow99 = mysql_fetch_array($result99);
do
{
//выводим их в цикле
echo "<br>",$myrow99['idd']," | ",$myrow99['dd'] ; 
}
while($myrow99 = mysql_fetch_array($result99));
//типо выбор с БД рандомно
$query = "select * from konkur order by rand() limit 1";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
echo '<br>id-',$row['idd'] ,' login-',$row['dd'],' win-';
 
$result8 = mysql_query("SELECT sum FROM users",$db); 
$myrow8 = mysql_fetch_array($result8); 
 
$lg = $row['dd'];
$add = $myrow8['sum'];
$add = $add + 1;
 
    $query5 = "UPDATE `users` SET `sum` = '{$add}' WHERE `login` = '$lg'";
    $sql5 = mysql_query($query5);
пеерпробовал все что можно, переставлял, но глухо
спасибо
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.10.2015, 16:31
Ответы с готовыми решениями:

Ошибка при добавлении в базу
сделал регистрацию, все норм работало, пытался добавить функцию котороя перебирала массив(меняла...

Ошибка при добавлении картинки
При добавлении картинки, ошибки: Notice: Undefined index: Photo in *\add.php on line 19 ...

Ошибка при добавлении записи в БД
Подскажите, что означает эта ошибка при добавление записи в БД: Warning: mysql_query(): 2 is not a...

Ошибка при добавлении в друзья!
Написал код который будет отправлять пользователю предложение дружбы, непойму где ошибка, с базами...

16
471 / 399 / 169
Регистрация: 04.01.2013
Сообщений: 1,675
21.10.2015, 17:05 2
Если честно ни фига не понял, кому что записывается...но как минимум
PHP
1
2
3
4
5
6
$result8 = mysql_query("SELECT sum FROM users",$db); 
$myrow8 = mysql_fetch_array($result8); 
 
$lg = $row['dd'];
$add = $myrow8['sum'];
$add = $add + 1;
можете пошагово объяснить что вы здесь делаете?
0
4 / 4 / 1
Регистрация: 28.03.2015
Сообщений: 155
21.10.2015, 17:18  [ТС] 3
да, конечно, минуту

Добавлено через 3 минуты
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$result99 = mysql_query("SELECT idd,dd FROM konkur ",$db); //извлекаем ид и логин с базы konkur
$myrow99 = mysql_fetch_array($result99);
do
{
echo "<br>",$myrow99['idd']," | ",$myrow99['dd'] ; //вывод всех учасников
}
while($myrow99 = mysql_fetch_array($result99));
$query = "select * from konkur order by rand() limit 1"; //выбор с БД рандомно
$result = mysql_query($query);
$row = mysql_fetch_array($result);
echo '<br>id-',$row['idd'] ,' login-',$row['dd'],' win-'; //вывод текущего победителя
 
$lg = $row['dd'];   //lg - ник текущего победителя
 
$result8 = mysql_query("SELECT sum FROM users",$db);  // беру значение sum с базы users
$myrow8 = mysql_fetch_array($result8); 
 
$add = $myrow8['sum']; // сколько раз уже победил, с базы
$add = $add + 1; //добавляю + 1
 
    $query5 = "UPDATE `users` SET `sum` = '{$add}' WHERE `login` = '$lg'"; //запись в базу +1 по логину победившего
    $sql5 = mysql_query($query5);
0
471 / 399 / 169
Регистрация: 04.01.2013
Сообщений: 1,675
21.10.2015, 17:19 4
PHP
1
2
3
4
5
$result8 = mysql_query("SELECT sum FROM users",$db);  // беру значение sum с базы users
$myrow8 = mysql_fetch_array($result8); 
 
$add = $myrow8['sum']; // сколько раз уже победил, с базы
$add = $add + 1; //добавляю + 1
кто по вашему тут победил?
0
4 / 4 / 1
Регистрация: 28.03.2015
Сообщений: 155
21.10.2015, 17:25  [ТС] 5
выбор победителя чуть выше

писал сам, культуры и знания правильности нет

П.С.
у меня 2 таблици (в скобках - поля)
-заносится юзер когда нажимает участвовать и с нее же берем рандом konkur(idd,dd)
-в другой есть ид, логин и сумма выграшей зареганого пользеватиеля users(id,login,password,sum)
0
471 / 399 / 169
Регистрация: 04.01.2013
Сообщений: 1,675
21.10.2015, 17:34 6
Примерная логика выполнения вашего скрипта
1. берем всех пользователей из таблицы
2. Выводим циклом их инфу
3. Выбираем одного рандомного
4. Выводим инфо "победителя"
5. Пихаем его ник в переменную
6. Берем значение колонки sum всех строк в таблице
7. Отхреначиваем только первую строку
8. Из нее берем значение sum
9. Увличиваем на единицу
10. Обновляем стату "победителя"... че то как то нелогично все
0
4 / 4 / 1
Регистрация: 28.03.2015
Сообщений: 155
21.10.2015, 17:42  [ТС] 7
6. Берем значение колонки sum всех строк в таблице
7. Отхреначиваем только первую строку
8. Из нее берем значение sum

както запутанно

должно быть так думаю:
1. берем всех пользователей из таблицы
2. Выводим циклом их инфу
3. Выбираем одного рандомного
4. Выводим инфо "победителя"
9. Увличиваем на единицу стату "победителя"
10. Обновляем стату "победителя"

Добавлено через 2 минуты
странно что все работало когда поле sum было в konkur
после того ка оно стало в другой таблице sum начало одинаковые всем давать
0
471 / 399 / 169
Регистрация: 04.01.2013
Сообщений: 1,675
21.10.2015, 17:44 8
PHP
1
$result8 = mysql_query("SELECT sum FROM users",$db);
еще раз спрошу чей сум тут выводится?
0
4 / 4 / 1
Регистрация: 28.03.2015
Сообщений: 155
21.10.2015, 18:00  [ТС] 9
по моей идее - получить текущее значение количества побед

Добавлено через 1 минуту
наверное можно просто сделать апдейт с +1, вы к этому вели?
0
471 / 399 / 169
Регистрация: 04.01.2013
Сообщений: 1,675
21.10.2015, 18:00 10
КОГО? вот у Вас в таблице users к примеру 20 пользователей, у кого вы выбираете sum?
0
4 / 4 / 1
Регистрация: 28.03.2015
Сообщений: 155
21.10.2015, 18:09  [ТС] 11
у того кто победил

в users все пользеватели, а участвуют не все, поэтому и добавляются они в новую таблицу из которой идет рандом
0
471 / 399 / 169
Регистрация: 04.01.2013
Сообщений: 1,675
21.10.2015, 18:12 12
Лучший ответ Сообщение было отмечено 228 как решение

Решение

а где в запросе написано, что надо отфильтровать того, кто победил?
PHP
1
$result8 = mysql_query("SELECT sum FROM users",$db);
Вы этим запросом выбираете ячейку sum у всех пользователей, а так, как потом, получившийся массив не перебираете циклом, то в
PHP
1
$add = $myrow8['sum'];
оказывается значение sum первого пользователя в таблице users
1
4 / 4 / 1
Регистрация: 28.03.2015
Сообщений: 155
21.10.2015, 18:21  [ТС] 13
понял, спасибо за наводку, буду думать
PHP
1
2
3
4
5
6
7
$lg = $row['dd']; 
...
...
...
...
$query5 = "UPDATE `users` SET `sum` = '{$add}' WHERE `login` = '$lg'"; //запись в базу +1 по логину победившего
    $sql5 = mysql_query($query5);
думал что это помогает/работает
PHP
1
писал с условием WHERE `login` = '$lg' , в $lg заносится логин победителя
Добавлено через 2 минуты
вставил не туда

PHP
1
WHERE `login` = '$lg'
надо и выше его
PHP
1
2
$result8 = mysql_query("SELECT sum FROM users WHERE `login` = '$lg'",$db);  // беру значение sum с базы users
$myrow8 = mysql_fetch_array($result8);
0
471 / 399 / 169
Регистрация: 04.01.2013
Сообщений: 1,675
21.10.2015, 18:22 14
Ну вот уже логичнее)))
0
4 / 4 / 1
Регистрация: 28.03.2015
Сообщений: 155
21.10.2015, 18:27  [ТС] 15
не подскажете можно ли/ как добавить визуализацию победы(например крутит крутит)
или в текущем варианте это невозможно, сама идея с бд плохая может, нужны js
воопще если не затруднит прошу заглянуть в меин тему Лотерея: розыгрыш, выбор победителя
0
471 / 399 / 169
Регистрация: 04.01.2013
Сообщений: 1,675
21.10.2015, 18:30 16
Что касается анимации, то смотрите в сторону js либо css-анимации. А вообще советую почитать, что и для чего используется)
0
4 / 4 / 1
Регистрация: 28.03.2015
Сообщений: 155
21.10.2015, 20:08  [ТС] 17
ну в js не особо разбираюсь всегда подключал какието библиотеки по инструкциям и вставлял код в нужное место
+ нужно крон приклеить както, а то сейчас скриптом обновляется
отсчет еще бы хотелось, пробую это:
PHP
1
2
3
4
5
6
7
8
9
10
11
$start_from = 120;//число, с которого начинается отсчет
print '<script language="javascript">
        (function () {
        var writeTo = document.getElementById("container");
        var sec = '.$start_from.';
        var a=setInterval(function() {
        sec--;
    if (sec==0) { writeTo.innerHTML = "<a href=#>Click me</a>";// здесь можно прописать ссылку, текст и т.п.
    clearInterval(a);}
        else writeTo.innerHTML = sec;},1000)})();</script>';
?>
Добавлено через 1 час 33 минуты
впринципе пример есть
http://postovoy.net/19.html
правда непонятно как работает, кучу скриптов подключается и тд
0
21.10.2015, 20:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.10.2015, 20:08
Помогаю со студенческими работами здесь

Ошибка при добавлении изображения
Уважаемые форумчане, прошу подсказать, верен ли код: $this-&gt;templates-&gt;blocks-&gt;input = $_POST; ...

Ошибка 500 при добавлении файла
Здравствуйте. Есть код добавления изображения на сервер. Вот: &lt;?php...

Ошибка при добавлении данных в бд через форму
вот action: &lt;? require_once '../config.php'; $name_post = $_POST; $cat = $_POST; ...

При добавлении сессии в файл выходит ошибка
Что в этом коде не так ? Доблаяю сессию чтобы пользователь долго был активен на сайте, но выходит...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru