Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Закрытая темаСоздание новой темыСоздание опроса

> подскажите по правильности написания, правильность кодинга
OLDBOY  
 ۩  [x]    Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 9
Пользователь №: 31219
На форуме: 5 лет, 6 месяцев, 5 дней
Карма:




1й скрипт - человек регистрируется и вписывает ник друга который его привел,после играет в игру на сайте,после того как он набирает 1000 денег,тому человеку который его привел в игру дается + 100 денег
<?php 
$my = &JFactory :: getUser();
$datab = &JFactory :: getDBO();
$quer = 'select имя друга from таблица where user_id='. $my -> id;
$datab -> setQuery($quer);
$idgroup = $datab -> loadResult();
$database12 = &JFactory :: getDBO();
$query12 = 'select кол-во очков from таблица where user_id='. $my -> id;
$database12 -> setQuery($query12);
$summa = $database12 -> loadResult();
$deneg = '100';

if($summa > = 1000)
{
$query = 'UPDATE таблица SET деньги+'$deneg' WHERE имя друга';
$database -> setQuery($query);
echo 'Ваш друг получил <b>«100 монет»</b>.';

if(!$database -> query())
{
JError :: raiseError(500, $database -> stderr());
}
}

?>


2й скрипт - Человек который приводит людей в игру зашол к себе в профиль и нажал кнопку - мои рефералы(те кого он привел) и вот тут их может и 5ть быть и 25ть.... ведь не только 1го игрока он привести в игру может...

<?php
$my =& JFactory::getUser();
$q=0;
$k=1;
for ($i=0;$i++)
{
$quer = 'select ник,дата регистрации,очки from таблица where ник друзей='.$my->id;
$datab->setQuery($quer);
$ник = ник;
$дата = дата;
$очки = очки;
echo $k "Имя :" . $ник . " Очков :" . $очки . " Дата регистрации : " . $дата;
$k++;
if ($i == ?) break;
}
?>


1й скрипт должен работать,а вот 2й нужно чтоб по циклу шол N-ое кол-во раз пока не пройдет весь столбец пока не выведет всех людей у кого этот ник в реферале стоит
;)



Спустя 13 минут (22.01.2012 - 19:15) Commander Keen написал(а):
ну как минимум код форматирован крайне дико (

Спустя 15 минут, 21 секунда (22.01.2012 - 19:31) YVSIK написал(а):
а так ??
будет лучше??
<?php 
$my = &JFactory :: getUser();
$datab = &JFactory :: getDBO();
$quer = 'select имя друга from таблица where user_id='. $my -> id;
$datab -> setQuery($quer);
$idgroup = $datab -> loadResult();
$database12 = &JFactory :: getDBO();
$query12 = 'select кол-во очков from таблица where user_id='. $my -> id;
$database12 -> setQuery($query12);
$summa = $database12 -> loadResult();
$deneg = '100';

if($summa > = 1000)
{
$query = 'UPDATE таблица SET деньги+'$deneg' WHERE имя друга';
$database -> setQuery($query);
echo 'Ваш друг получил <b>«100 монет»</b>.';

if(!$database -> query())
{
JError :: raiseError(500, $database -> stderr());
}
}

?>

Спустя 4 минуты, 41 секунда (22.01.2012 - 19:35) OLDBOY написал(а):
ну насчет того как форматирован это мелочи... подскажите все правельно написано?

Спустя 2 минуты, 4 секунды (22.01.2012 - 19:38) redreem написал(а):
что значит "правильно". а работает? если работает - значит правильно. неработает - значит неправильно.

Спустя 1 минута, 24 секунды (22.01.2012 - 19:39) Лена написал(а):
Синтаксис неправильный:

echo $k'. 'Имя : '$ник ' Очков : '$очки' Дата регистрации : '$дата ;


Надо:
 
echo "$k Имя : $ник Очков : $очки Дата регистрации : $дата";

Или
 
echo $k "Имя :" . $ник . " Очков :" . $очки . " Дата регистрации : " . $дата;


Второй кусок вашего кода выведет 1 запись - последнюю в списке. Чтобы вывести все, надо пройтись по ним циклом.

Спустя 6 минут, 14 секунд (22.01.2012 - 19:45) asokol написал(а):
Начислить рефералу 100, если у пользователя $my->id не меньше 1000:
UPDATE `users` `u1`, `users` `u2`
SET `u2`.`money`=`u2`.`money`+100, `u1`.`already`='1'
WHERE `u1`.`id`={$my->id} AND `u1`.`money`>=1000 AND `u1`.`already`='0' AND `u1`.`referral_id`=`u2`.`id`

Проверить можно mysql_affected_rows() количество затронутых рядов. Если ни одного, то либо `u1`.`money`<1000, либо нет реферала.
Если убрать условие `u1`.`id`={$my->id}, то будет начислено всем, у кого не меньше 1000 и есть реферал.

Спустя 10 минут, 31 секунда (22.01.2012 - 19:56) OLDBOY написал(а):
Цитата (Лена @ 22.01.2012 - 16:39)
Синтаксис неправильный:

echo $k'. 'Имя : '$ник ' Очков : '$очки' Дата регистрации : '$дата ;


Надо:
 
echo "$k Имя : $ник Очков : $очки Дата регистрации : $дата";

Или
 
echo $k "Имя :" . $ник . " Очков :" . $очки . " Дата регистрации : " . $дата;


Второй кусок вашего кода выведет 1 запись - последнюю в списке. Чтобы вывести все, надо пройтись по ним циклом.

Лена,если можете напишите пожалуйста что нужно добавить чтобы циклом шло?

Спустя 6 минут (22.01.2012 - 20:02) redreem написал(а):
OLDBOY
вот тут исчерпывающий ответ: http://phpforum.su/index.php?showtopic=56266

Спустя 15 минут, 29 секунд (22.01.2012 - 20:17) Placido написал(а):
Зачем циклы? Все одним запросом делается. asokol показал принцип.

Спустя 3 минуты, 53 секунды (22.01.2012 - 20:21) OLDBOY написал(а):
Цитата (redreem @ 22.01.2012 - 17:02)
OLDBOY
вот тут исчерпывающий ответ: http://phpforum.su/index.php?showtopic=56266

Это все понятно....
<?php
$my =& JFactory::getUser();
$q=0;
$k=1;
for ($i=0;$i++)
{
$quer = 'select ник,дата регистрации,очки from таблица where ник друзей='.$my->id;
$datab->setQuery($quer);
$ник = ник;
$дата = дата;
$очки = очки;
echo $k "Имя :" . $ник . " Очков :" . $очки . " Дата регистрации : " . $дата;
$k++;
if ($i == ?) break;
}
?>

Будет циклом идти,но вот чет одного не пойму,как определить на каком значении остановится?ведь рефералов может быть как 5ть так и 25ть...

Спустя 2 минуты, 30 секунд (22.01.2012 - 20:24) asokol написал(а):
Как это? Рефералов может быть как 5, так и 25? У каждого пользователя может быть только один реферал - тот, кто его привел.

Спустя 5 минут, 24 секунды (22.01.2012 - 20:29) OLDBOY написал(а):
Цитата (asokol @ 22.01.2012 - 17:24)
Как это? Рефералов может быть как 5, так и 25? У каждого пользователя может быть только один реферал - тот, кто его привел.

1й скрипт - человек регистрируется и вписывает ник друга который его привел,после играет в игру на сайте,после того как он набирает 1000 денег,тому человеку который его привел в игру дается + 100 денег

2й скрипт - Человек который приводит людей в игру зашол к себе в профиль и нажал кнопку - мои рефералы(те кого он привел) и вот тут их может и 5ть быть и 25ть.... ведь не только 1го игрока он привести в игру может...

думаю суть разьяснил:)

Спустя 1 час, 37 минут, 8 секунд (22.01.2012 - 22:06) neadekvat написал(а):
Я не понял, что происходит во втором случаи - выводятся рефералы одного пользователя или список пользователей с их рефералами?

Покажи структуру бд. На кофейной гуще рисовать запрос смысла нет. К тому же, то, что показано в первом посте - вполне себе прототип, который может стать рабочей программой. Непонятно, что непонятно.

Спустя 28 минут, 14 секунд (22.01.2012 - 22:34) OLDBOY написал(а):
выводятся рефералы одного пользователя

структуры нет пока... ну она и не важна,там все будет работать,только как сделать чтоб вывело всех его рефералов а не только 1го... или всех по кругу.... нада чтоб остановилось после вывода тех у кого Ник его есть и все

Спустя 5 минут, 42 секунды (22.01.2012 - 22:40) neadekvat написал(а):
Цитата (OLDBOY @ 22.01.2012 - 23:34)
ну она и не важна

А в лоб? Структура БД - основополагающая вещь. Как можно писать код или запросы, не имея понятия о том, что он будет выводить?

Как я уже сказал, в твоем прототипе все есть. Только for на while. Более там добавить нечего.

Вопрос на засыпку:
$my =& JFactory::getUser();

Нахрена здесь &?

Спустя 3 минуты, 52 секунды (22.01.2012 - 22:44) asokol написал(а):
Да, OLDBOY, все верно. Я называл неверно рефереров. Чтобы вывести всех рефералов, надо сделать выборку с WHERE referrer_id=$my->id


Это сообщение отредактировал OLDBOY - 22.01.2012 - 21:38
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Закрытая темаСоздание новой темыСоздание опроса