Помощник
|
Выборка нужных ИД из БД |
Karamba_hb
|
Сообщение
#1
|
||
|
|
||
|
|||
DelphinPRO |
25.3.2012, 16:27;
Ответить: DelphinPRO
Сообщение
#2
|
|
[PHP]$res = mysql_query('SELECT * FROM user_anekdot ua WHERE ucase(ua.name)=ucase({$user}) AND ua.flag = 0');
while($row=mysql_fetch_array($res)){ $qwe[]=$row; } // имеем массив со сброшенными флагами // далее перемешиваем массив shuffle($qwe); // и извлекаем первый элемент $rand = array_shift($qwe); // массив при этом уменьшается на один элемент, и он больше в массиве не присутствует // остается только апдейтнуть запись в таблице mysql_query('UPDATE ua SET flag = 1 WHERE ua.id = $rand[id]'); // кавычки сам расставишь // вот собственно и все.[/PHP] |
|
|
Karamba_hb
|
Сообщение
#3
|
|
ага спасибо, но тут при нажатии кнопки некст (выборки нового ид без флага и упдате в бд флага ) происходит снова селект, тоесть каждый раз будет обновляться страница и идти запрос в бд на селект.
А мне нужно чтобы упдате и кнопка была через яваскрипт динамическая, тоесть ид где флаг=0 записывался в яваскрипте на ффлаг=1 и флаг=1 шёл в бд упдате динамически, тоесть чтобы страница не обновлялась и лишний селект не шёл в бд. |
|
|
DelphinPRO |
25.3.2012, 18:16;
Ответить: DelphinPRO
Сообщение
#4
|
|
тогда аналогичный функционал следует сделать на Javascript/
т.е. после выборки все данные отдаются на страницу, яваскриптом выдергивается случайный элемент, и аяксом отправляется запрос на обновление флага. в яваскрипт я не очень рублю, как сделать случайную выборку из массива - так сразу не подскажу. Отправка аякс запроса на jQuery [JS]$.get('handler.php?id='+rand[id]+'&flag=1', function(responce){alert('OK')});[/JS] |
|
|
alexdrob |
25.3.2012, 18:31;
Ответить: alexdrob
Сообщение
#5
|
|
если бы TC не плодил темы а продолжал одну, то было бы понятней что ему нужно.
но круче же создать 10 тем :) |
|
|
Karamba_hb
|
Сообщение
#6
|
|
DelphinPRO,чтото я непонимаю что этот Jquery делает))
alexdrob,ну тут уже яваскрипт надо подключать, поэтому и создал тему в яваскрипте)) а т тему почемуто ты забросил)) |
|
|
DelphinPRO |
25.3.2012, 19:07;
Ответить: DelphinPRO
Сообщение
#7
|
|
обычный аякс запрос методом GET на страницу handler.php в которой должен быть код обновления флагов в БД.
т.е. запрос к серверу будет выполнен в фоновом режиме, без перезагрузки страницы. |
|
|
Karamba_hb
|
Сообщение
#8
|
|
Я так понял что это далжно быть на моей странице[PHP]$res = mysql_query('SELECT * FROM user_anekdot ua WHERE ucase(ua.name)=ucase({$user}) AND ua.flag = 0');while($row=mysql_fetch_array($res)){ $qwe[]=$row;}[/PHP][JS]$.get('handler.php?id='+rand[id]+'&flag=1', function(responce){alert('OK')});[/JS]
А это уже на странице handler.php которая будет подгружаться? [PHP]$res = mysql_query('SELECT * FROM user_anekdot ua WHERE ucase(ua.name)=ucase({$user}) AND ua.flag = 0');while($row=mysql_fetch_array($res)){ $qwe[]=$row;} shuffle($qwe);$rand = array_shift($qwe);mysql_query('UPDATE ua SET flag = 1 WHERE ua.id = $rand[id]'); [/PHP] |
|
|
DelphinPRO |
25.3.2012, 19:44;
Ответить: DelphinPRO
Сообщение
#9
|
|
index.php
[PHP]<?php // выбрать записи со сброшенными флагами $res = mysql_query('SELECT * FROM user_anekdot ua WHERE ucase(ua.name)=ucase({$user}) AND ua.flag = 0'); while($row=mysql_fetch_array($res)){ // формируем яваскрипт массив $js .= 'massiv[] = ' . $row['id'] . ";\n"; } ?> <!-- выводим массив --> <sctipt> var massiv = array(); <?php echo $js; ?> </script> <button onclick="updateFlag()">NEXT</button> <sctipt> function updateFlag(){ var id = getRandItem(); $.get('handler.php?id='+id+'&flag=1', function(responce){alert('OK')}); } function getRandItem(){ // эта функция должна выбирать случайный элемент массива massiv // убирать этот элемент из массива и возвращать ID } </script>[/PHP] handler.php [PHP]$id = $_GET['id']; $flag = $_GET['flag']; mysql_query('UPDATE ua SET flag = $flag WHERE ua.id = $id'); [/PHP] данный код возможно не заработает как есть, он лишь отображает общую идею. Ну и проверки для безопасности следует тоже добваить. |
|
|
Karamba_hb
|
Сообщение
#10
|
|
а тут что писать в функции?))
function getRandItem() |
|
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Нужна выборка из базы пастухова | 2 | aleggator | 2198 | 2.3.2017, 15:19 автор: aleggator |
|
автоматическая активация нужных <input type="radio"> | 1 | FALKOR | 3673 | 19.5.2016, 17:18 автор: -Valeron- |
|
Выборка ключевых слов. База почти 2 млрд. 200р./ выборка |
19 | zhurik | 16184 | 21.10.2015, 8:29 автор: zhurik |
|
Выборка по базе ключевых слов | 3 | aleggator | 2111 | 20.8.2015, 12:29 автор: metvekot |
|
Требуется выборка из базы Пастухова | 5 | frion-seo | 4055 | 20.1.2015, 22:58 автор: Вентилятор |
Текстовая версия | Сейчас: 25.4.2024, 22:12 |