Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (2) [1] 2  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> создание условия, скрипт рнр
harley777  
 ۩  Дата
Цитировать сообщение

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



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 10
Пользователь №: 43172
На форуме: 8 месяцев, 15 дней
Карма:




Вопрос в следующем
Сейчас скрипт настроен на первый falsе:
if($col['era'] == false){
выполняются команды
}
мне нужно, что бы команда выполнялась после второго false т.е.


if($col['era'] == false>1){
выполняются команды
}

так можно записать ? (подозреваю, что нет )

PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
axmen  
Дата
Цитировать сообщение

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



Пользователь
**

Профиль
Группа: Пользователь
Сообщений: 63
Пользователь №: 40082
На форуме: 2 года, 8 месяцев, 11 дней
Карма:




То есть, во так, примерно?
for(var i=0;  i<=4; ++i )
{
f($col['erа] '==false && $I == 2)
{



}
}



Это сообщение отредактировал axmen - 20.08.2016 - 15:31
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
arbuzmaster  
Дата
Цитировать сообщение

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



Новичок
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 892
Пользователь №: 37872
На форуме: 3 года, 8 месяцев, 4 дня
Карма: 29




Что значит Второго false ? Это элемент массива и даже при переборе массива он либо есть либо его нет. Мне лично не понятна суть вопроса!


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
inpost  
Дата
Цитировать сообщение

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



Помагите Здесь живу!!!
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 22833
Пользователь №: 20039
На форуме: 7 лет, 3 месяца, 23 дня
Карма: 604




harley777
Ставишь счётчик:
$i = 0;

Далее при каждом повышаешь счётчик на +1;
И не забудь условие добавить, когда счётчик стал нужного тебе числа и тогда выполняешь код:
if($i >= 2)


--------------------
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
harley777  
 ۩  Дата
Цитировать сообщение

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



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 10
Пользователь №: 43172
На форуме: 8 месяцев, 15 дней
Карма:




Цитата (arbuzmaster @ 20.08.2016 - 15:57)
Что значит Второго false ? Это элемент массива и даже при переборе массива он либо есть либо его нет. Мне лично не понятна суть вопроса!


Есть строка, в ней 10 блоков, 8 блоков "erа" (берутся с БД) и два - "не erа", которых нет в БД

при таком условии
if($col['era'] == false){
выполняются команды
}
когда выбираю первый блок "не erа" выполняется команда скрипта
{
выполняются команды
}
т.к. условие сработало. Мне же нужно что бы команда выполнялась после выбора второго блока "не erа". Т.е. что бы не значение блока равнялось двум, а что бы второй блок "не erа" вызывал выполнение команды скрипта

Это сообщение отредактировал harley777 - 20.08.2016 - 17:06
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
harley777  
 ۩  Дата
Цитировать сообщение

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



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 10
Пользователь №: 43172
На форуме: 8 месяцев, 15 дней
Карма:




Цитата (axmen @ 20.08.2016 - 15:30)
То есть, во так, примерно?

Чуть выше более развернуто описал суть
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
arbuzmaster  
Дата
Цитировать сообщение

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



Новичок
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 892
Пользователь №: 37872
На форуме: 3 года, 8 месяцев, 4 дня
Карма: 29




Ну если происходит именно так как Вы написали, то ответ дал inpost выше. Т.е. запускаете счетчик и считаете, сколько раз выполнилось условие

$count=0;
while (или ваш цикл)
{
if($col['era'] == false)
{
$count++; // Увеличение счетчика

if( $count >= 2) //здесь Ваше число
{
выполняются новые команды
}
}

}


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
harley777  
 ۩  Дата
Цитировать сообщение

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



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 10
Пользователь №: 43172
На форуме: 8 месяцев, 15 дней
Карма:




Цитата (arbuzmaster @ 20.08.2016 - 20:30)
$count=0;

$count=0;
while ($col['era'] == false)
{
if($col['era'] == false)
{
$count++; // Увеличение счетчика

if( $count == 2) //здесь Ваше число
{
//выполняются новые команды
}
}

}
так могу записать?

и ещё вопрос:
могут ли быть подряд три равно?
===
if($f===false){

или это ошибка?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Миша  
Дата
Цитировать сообщение

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



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 2611
Пользователь №: 37963
На форуме: 3 года, 7 месяцев, 20 дней
Карма: 28




Цитата (harley777 @ 24.08.2016 - 16:36)
Цитата (arbuzmaster @ 20.08.2016 - 20:30)
$count=0;

$count=0;
while ($col['era'] == false)
{
if($col['era'] == false)
{
$count++; // Увеличение счетчика

if( $count == 2) //здесь Ваше число
{
//выполняются новые команды
}
}

}



Учитесь оформлять код правильно.

Пользоваться поиском Три знака равно

Читать manual - Операторы сравнения

$count=0;
while ($col['era'] === false)
{
// Основной код

$count++;
if($count == 1) {
// При первом проходе
} elseif($count == 2) {
// При втором проходе
$col['era'] = true;
}
}


--------------------
Болтовня ничего не стоит. Покажите мне код.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
arbuzmaster  
Дата
Цитировать сообщение

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



Новичок
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 892
Пользователь №: 37872
На форуме: 3 года, 8 месяцев, 4 дня
Карма: 29




harley777 Можно и так написать, но тогда цикл станет бесконечным и будет выполняться до тех пор пока $col['era'] не станет равным true внутри цикла. Но мне кажется, что у Вас должно быть всё по другому, поэтому предлагаю показать весь кусок кода где формируется $col['era']


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
harley777  
 ۩  [x] Дата
Цитировать сообщение

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



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 10
Пользователь №: 43172
На форуме: 8 месяцев, 15 дней
Карма:




Цитата (Медведь @ 24.08.2016 - 16:50)
Учитесь оформлять код правильно.

Пользоваться поиском Три знака равно

Читать manual - Операторы сравнения

Спасибо :)

пока код не работает

Давайте все сначала - есть код

            if($col['era'] == false){
// Оределяем план текущей линии для создания линии с тем же планом
$p_id = $this->lines_mdl->getPriceByLineId((int)$line);
$p_id = $p_id['plan_id'];
$this->lines_mdl->generate_new($p_id);

}


он срабатывает когда в линии из десяти ['era'] наступает первый раз false, код срабатывает, выполняется действие:

$p_id = $this->lines_mdl->getPriceByLineId((int)$line);
$p_id = $p_id['plan_id'];
$this->lines_mdl->generate_new($p_id);

как правильно записать код, что бы это действие выполнилось по второму заранее не известно в какой последовательности случайно выпавшему false ?
пробовал

$count=0;
while ($col['era'] === false)
{
// Основной код

$count++;
if($count == 1) {
// При первом проходе
} elseif($count == 2) {
// При втором проходе
$p_id = $this->lines_mdl->getPriceByLineId((int)$line);
$p_id = $p_id['plan_id'];
$this->lines_mdl->generate_new($p_id);
}
}


не работает, два false выпадают, а генерация и т.д. не происходит

как правильно записать?

Это сообщение отредактировал harley777 - 24.08.2016 - 21:10
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
harley777  
 ۩  Дата
Цитировать сообщение

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



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 10
Пользователь №: 43172
На форуме: 8 месяцев, 15 дней
Карма:




Цитата (arbuzmaster @ 24.08.2016 - 20:38)
harley777 Можно и так написать, но тогда цикл станет бесконечным и будет выполняться до тех пор пока $col['era'] не станет равным true внутри цикла. Но мне кажется, что у Вас должно быть всё по другому, поэтому предлагаю показать весь кусок кода где формируется $col['era']

верно smile.gif
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Kusss  
Дата
Цитировать сообщение

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



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1451
Пользователь №: 28976
На форуме: 5 лет, 8 месяцев, 1 день
Карма: 83




$count = 0;

// тут начало цикла
while ($col = .... ) {

if($col['era'] == false){
$count++;

if($count == 2){
// Оределяем план текущей линии для создания линии с тем же планом
$p_id = $this->lines_mdl->getPriceByLineId((int)$line);
$p_id = $p_id['plan_id'];
$this->lines_mdl->generate_new($p_id);
}
}

Цитата
Давайте все сначала - есть код
Это не весь код, не хватает какого-то цикла, я его обозначил примерно, как и другие .
А ты его тупо копируешь(псевдо цикл). потому и не работает.


Это сообщение отредактировал Kusss - 25.08.2016 - 01:45
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
harley777  
 ۩  [x] Дата
Цитировать сообщение

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



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 10
Пользователь №: 43172
На форуме: 8 месяцев, 15 дней
Карма:




Цитата (Kusss @ 25.08.2016 - 01:41)
Это не весь код, не хватает какого-то цикла, я его обозначил примерно, как и другие .
А ты его тупо копируешь(псевдо цикл). потому и не работает.


<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Buy extends MY_Controller {

public function __construct(){
parent::__construct();
$this->load->model('user_mdl');
$this->load->model('lines_mdl');
$this->load->model('money_mdl');
}
public function check($line = false, $num = false){
$data = [
'title' => 'test.test',
'view' => 'main',
'lines' => $this->lines_mdl->getGameLines(),
'error' => '',
];

if($this->session->logged_in == true){
$data['allin'] = $this->money_mdl->getSummIn($this->session->user_id);
$data['allout'] = $this->money_mdl->getSummOut($this->session->user_id);
$data['user'] = $this->user_mdl->getById($this->session->user_id);
}
if($line == false or $num == false){
$data['error'] = 'Ошибка проверки';
$this->load->view('index', $data);
}else{
if($this->session->logged_in != true or $this->session->user_type !== 'gar'){
$data['error'] = '';
$this->load->view('index', $data);
}else{
// Проверяем
$price = $this->lines_mdl->getPriceByLineId((int)$line);
$price = (int)$price['price'];

$user = $this->user_mdl->getById($this->session->user_id);
$balance = (int)$user['balance'];

// Если
if($price > $balance){
$data['error'] = '';
$this->load->view('index', $data);
}else{
// Если
$col = $this->lines_mdl->getCol((int)$line, (int)$num);
if($col['status'] == 1){
// Значит
$data['error'] = 'Извините';
$this->load->view('index', $data);
}else{
// Иначе - все хорошо.
$this->user_mdl->balanceMinus((int)$this->session->user_id, $price);
// После списания проверяем блок

$data['error'] = 'Ваш блок проиграл';
if($col['era'] == true){
// Если блок выиграл
$this->user_mdl->balancePlus((int)$this->session->user_id, $price*1.1);
$this->lines_mdl->adderaActions();
$data['error'] = 'Ваш блок выиграл';

}else{
$this->lines_mdl->addNoeraActions();
}

// И ставим отметку о том что блок уже использован
$this->lines_mdl->colUsed((int)$line, (int)$num);

// Проверяем остались ли не открытые блоки в этой линии
// Если не осталось - генерируем еще такой же блок и отмечаем линию как отыгранную

if($this->lines_mdl->checkLineSpace((int)$line) == false){
// Определяем план текущей линии для создания линии с тем же планом
$p_id = $this->lines_mdl->getPriceByLineId((int)$line);
$p_id = $p_id['plan_id'];
$this->lines_mdl->generate_new($p_id);

}

// Проверяем noera блоки в этой линии
if($col['era'] == false){
// Оределяем план текущей линии для создания линии с тем же планом
$p_id = $this->lines_mdl->getPriceByLineId((int)$line);
$p_id = $p_id['plan_id'];
$this->lines_mdl->generate_new($p_id);

}


// Перезагружаем информацию о блоках
$data['lines'] = $this->lines_mdl->getGameLines();
// Перезагружаем информацию о пользователе
$data['allin'] = $this->money_mdl->getSummIn($this->session->user_id);
$data['allout'] = $this->money_mdl->getSummOut($this->session->user_id);
$data['user'] = $this->user_mdl->getById($this->session->user_id);
$this->load->view('index', $data);
}
}


}
}
}

}


/* End of file qup.php */
/* Location: ./appl/controllers/qup.php */



Это сообщение отредактировал harley777 - 25.08.2016 - 13:39
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
arbuzmaster  
Дата
Цитировать сообщение

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



Новичок
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 892
Пользователь №: 37872
На форуме: 3 года, 8 месяцев, 4 дня
Карма: 29




Напишите после

// Если
$col = $this->lines_mdl->getCol((int)$line, (int)$num);

Это -

print_r($col);

и Вы увидите, что находится в $col['era'] , нет там второго false
Там либо true либо false, которое указывает на то, что один блок либо выиграл либо проиграл и выводятся они в цикле для всех блоков, т.е. будет несколько массивов с одинаковой структурой!
Покажите блок кода где вызывается функция
check($line = false, $num = false)
Как я предполагаю что line - строка а num - номер блока в строке, хотя я могу ошибаться и вызывается эта функция в цикле перебора всех линий и блоков. Так вот Вам нужно сделать так, что бы функция возвращала значение true(1) или false(0) в дополнение к тем параметрам которые она возвращает (судя по данному коду она ничего не возвращает, хотя могу ошибаться) и тогда вы сможете поймать второй false. Короче ищите цикл в котором вызывается check($line,$num);


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (2) [1] 2  Ответ в темуСоздание новой темыСоздание опроса