и так остоновился я на самое тежолое для меня
есть табличка юзеров
user : id | username | referer
referer - это тот кто пригласил на сайте
и в нем и проблема до сих пор он работал с username
как мне сделать что бы поменять всем изеров на сайте ячеку referer с содержание id реферера вместо логин реферера
Спустя 1 час, 4 минуты, 24 секунды (13.02.2012 - 06:13) Игорь_Vasinsky написал(а):
$getIdQuery = mysql_query("SELECT * FROM `table`");
while($row = mysql_fetch_assoc($gqtIdQuery))
{
mysql_query("UPDATE `table` SET `referer` = ".$row['id']) or die(mysql_error());
}
вроде так достаточно, без WHERE... на теории запрос проходит все строки и меняет запись referer на id строки
и я вкурсе что запросы в цикле - зло, но тут без цикла с mysql ни как.
Можно с mysqli в цикле сформировать SQL - и одним запросом отправить в БД.
Спустя 5 минут, 27 секунд (13.02.2012 - 06:18) DooMka написал(а):
Возможно я ошибаюсь, но существует такое слово - как "граббер"
Либо как вариант написать php страницу и прописать эти условия в ней
Этот код работать не будет, так-как в нём два запроса к одной и той-же таблице "users" - вам нужно либо создать вторую таблицу, либо каким-либо образом реализовать именно два запроса - я собственно говоря и зашёл на форум по этому поводу...
(D дальнейшем уже сможете переобразовать полу referer в INT)
Вопрос к знатокам, как можно сделать работоспособным второй запрос в коде
второй массив как-бы не создаётся, видимо так устроена работа php и mysql. Спросите, зачем мне это надо, а нужно это по следующей причине, смотрим ниже код
В первом запросе присутствует ORDER BY vote DESC LIMIT 3 - и его ну никак не перепрыгнуть, потому и возникает потребность во втором - целостном запросе, либо делать полноценный запрос, а уж из него делать выборку 3-х записей, но как это реализовать в коде - я не знаю =(
примерно
$rekl2 = mysql_query("SELECT * FROM tabl WHERE plm='$id'",$db);
$rekl2 - и уже из этого массива сделать такую выборку - ORDER BY vote DESC LIMIT 3
если кто знает, подскажите...
Либо как вариант написать php страницу и прописать эти условия в ней
<?
$result4436 = mysql_query ("SELECT id,username,referer FROM users",$db);
while ($myr3top4111 = mysql_fetch_assoc($result4436))
{
$resuddd6 = mysql_query ("SELECT id,username,referer FROM users",$db);
$myr3tdddop222 = mysql_fetch_assoc($resuddd6)
if ($myr3top4111['username'] == $myr3tdddop222['referer'])
{
$idusers = $myr3top4111['id'];
$id = $myr3tdddop222['id'];
$resul46663 = mysql_query ("UPDATE users SET referer='$idusers' WHERE id='$id'");
}
}
?>
Этот код работать не будет, так-как в нём два запроса к одной и той-же таблице "users" - вам нужно либо создать вторую таблицу, либо каким-либо образом реализовать именно два запроса - я собственно говоря и зашёл на форум по этому поводу...
(D дальнейшем уже сможете переобразовать полу referer в INT)
Вопрос к знатокам, как можно сделать работоспособным второй запрос в коде
$result4436 = mysql_query ("SELECT id,username,referer FROM users",$db);
$resuddd6 = mysql_query ("SELECT id,username,referer FROM users",$db);
второй массив как-бы не создаётся, видимо так устроена работа php и mysql. Спросите, зачем мне это надо, а нужно это по следующей причине, смотрим ниже код
$rekl = mysql_query("SELECT * FROM tabl WHERE pld='$id' ORDER BY vote DESC LIMIT 3",$db);
$rekl2 = mysql_query("SELECT * FROM tabl WHERE plm='$id'",$db);
В первом запросе присутствует ORDER BY vote DESC LIMIT 3 - и его ну никак не перепрыгнуть, потому и возникает потребность во втором - целостном запросе, либо делать полноценный запрос, а уж из него делать выборку 3-х записей, но как это реализовать в коде - я не знаю =(
примерно
$rekl2 = mysql_query("SELECT * FROM tabl WHERE plm='$id'",$db);
$rekl2 - и уже из этого массива сделать такую выборку - ORDER BY vote DESC LIMIT 3
если кто знает, подскажите...
Спустя 7 минут, 5 секунд (13.02.2012 - 06:26) Игорь_Vasinsky написал(а):
Цитата |
второй массив как-бы не создаётся, видимо так устроена работа php и mysql. Спросите, зачем мне это надо, а нужно это по следующей причине, смотрим ниже код |
тут вообще массивы не создаются - запрос в БД возвращает результат.
Я вообще не понял в чём у тя проблема и какого ты в этой теме на мусолил....
Цитата |
Возможно я ошибаюсь, но существует такое слово - как "граббер" |
знаем такое, но причём тут эта ситуация??
Цитата |
Либо как вариант написать php страницу и прописать эти условия в ней |

Т.е. ты уже опытным путём определил - что мой кусок кода не сработает???
и - на скока я понял работа идёт с одной таблицей.
Спустя 13 минут, 45 секунд (13.02.2012 - 06:39) DooMka написал(а):
Игорь_Vasinsky - твой код я не проверял, просто свой писал долго.
"Намусолил" дабы не создавать новой, а спросить тут, возможно-ли сделать выборку из массива, дабы не создавать повторный запрос к базе.
Как сделать так, чтобы сперва шёл 1 запрос:
Затем выборка из массива $rekl такого рода, но без запроса
тобиш сделать выборку из массива $rekl трёх записей - ORDER BY vote DESC LIMIT 3
возможно-ли это реализовать?
"Намусолил" дабы не создавать новой, а спросить тут, возможно-ли сделать выборку из массива, дабы не создавать повторный запрос к базе.
Как сделать так, чтобы сперва шёл 1 запрос:
$rekl2 = mysql_query("SELECT * FROM tabl WHERE plm='$id'",$db);
Затем выборка из массива $rekl такого рода, но без запроса
$rekl = mysql_query("SELECT * FROM tabl WHERE pld='$id' ORDER BY vote DESC LIMIT 3",$db);
тобиш сделать выборку из массива $rekl трёх записей - ORDER BY vote DESC LIMIT 3
возможно-ли это реализовать?
Спустя 3 минуты, 19 секунд (13.02.2012 - 06:43) Игорь_Vasinsky написал(а):
про запрос в запросе слышал???
http://www.google.ru/webhp?rlz=1C1CHHP_ruR...iw=1280&bih=845
или тя что то другое интересует?
http://www.google.ru/webhp?rlz=1C1CHHP_ruR...iw=1280&bih=845
или тя что то другое интересует?
Спустя 7 минут, 29 секунд (13.02.2012 - 06:50) Игорь_Vasinsky написал(а):
Цитата |
Как сделать так, чтобы сперва шёл 1 запрос: $rekl2 = mysql_query("SELECT * FROM tabl WHERE plm='$id'",$db); Затем выборка из массива $rekl такого рода, но без запроса $rekl = mysql_query("SELECT * FROM tabl WHERE pld='$id' ORDER BY vote DESC LIMIT 3",$db); тобиш сделать выборку из массива $rekl трёх записей - ORDER BY vote DESC LIMIT 3 возможно-ли это реализовать? |
ни чё не понял - скоко нужно записей стока и возвращай, не хочешь второй раз запрос делать - тогда при первом запросе формируешь массив, а потом только выдёргиваешь из массива 3 нужных те записи
или при формировании первого массива - формируй второй - с нужным кол-вом элементов.
(for, while-do)
Спустя 2 часа, 2 минуты, 57 секунд (13.02.2012 - 08:53) okapo написал(а):
сделал первым постом на этой теме, хост упал смотрел базу вроде все на месте и до конца ( пользователей больше 4000)
мой вопрос
возможны потери ?
мой вопрос
возможны потери ?