За последние 24 часа нас посетили 22826 программистов и 1258 роботов. Сейчас ищут 745 программистов ...

ECHO 1 раз в цикле WHILE

Тема в разделе "PHP и базы данных", создана пользователем shareware, 26 июл 2019.

  1. shareware

    shareware Новичок

    С нами с:
    26 июл 2019
    Сообщения:
    20
    Симпатии:
    0
    День добрый. Подскажите, как можно решить проблему с цикличным выводом сообщения..
    Есть такой код

    PHP:
    1.   while($resultat = $q->fetch_array(MYSQLI_BOTH)){
    2.     if ($checkit != $resultat['name'])
    3.     {
    4.  
    5.         $i++;
    6. //Где то тут должно вывести сообщение, что такого кода не существует;
    7.         continue; //Если убрать, то выводит несколько-подряд.
    8.      
    9.     }
    10.     if ($checkit == $resultat['name']){
    11.  
    12.       if ($counter2 > 0 && $active != false){
    13.         mysqli_query($bds,"UPDATE bonus SET counter=counter-1 WHERE name='$checkit'");
    14.         mysqli_query($bds,"UPDATE users SET last_code=CONCAT(last_code, '".$data['bonuscode'].",') WHERE id='$u->id'");
    15.         mysqli_query($bds,"UPDATE users SET money=money+'$action2' WHERE id='$u->id'");
    16.          echo "Код успешно активирован. На ваш счет начислено ".$action2." игровой валюты. Обновите страницу, или нажмите на кнопку ниже.";
    17.         }else{
    18.             echo "Код недействителен";
    19.         }
    20.  
    21.     }
    22.  
    23.  
    24.     }
    Задача такова..Мне необходимо выводить "Такого кода не существует" в тот момент, если не один из перебираемых вариантов в БД не совпал с требуемым.. в данном случае выводится это сообщение каждую проверку. Можно, конечно, создать условие и переменную типа false, тогда будет разовый вывод сообщения, но оно выведется и тогда, когда сверяемый код и код, который сверяем - совпадут..Получится что то вроде:
    Такого кода не существуетКод успешно активирован. На ваш счет начислено..
    Есть идеи ?
    P.S - Break не подойдет вообще ни в каких пропорциях.
     
  2. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    Идея тут одна, кто-то не умеет работать с БД от слова совсем. И совсем понятия не имеет зачем вообще нужна база данных.
    Сравнение кода должно проходить на уровне СУРБД, а не на уровне РНР.
     
  3. shareware

    shareware Новичок

    С нами с:
    26 июл 2019
    Сообщения:
    20
    Симпатии:
    0
    Интересно..а ну ка сделай мне сравнение результата с переменной из POST запроса на уровне СУБД..очень интересно посмотреть.
     
  4. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.824
    Симпатии:
    738
    Адрес:
    Татарстан
    а чего это тон какой то повелительный.....???
    элементарных вещей не знаете - в запросе
    Код (Text):
    1. SELECT * FROM t WHERE name = 'искомое слово'
     
  5. shareware

    shareware Новичок

    С нами с:
    26 июл 2019
    Сообщения:
    20
    Симпатии:
    0
    Что вы несете ? Это очередной борд псевдоумников ? Ничего что где то до этого цикла я сделал подобный запрос + преобразовал все доступные коды в массив, предварительно сделав explode..вы о чем вообще ? Если вы глупый, то не нужно лезть туда, куда не просят..господи. Удалите тему, аж стыдно за борд..Просят одно, а они, не зная всего кода целиком, пытаются залезть куда то вне дозволенных рамок..господь убереги их душу..Если еще кто то напишет о том, что можно сравнить через LIKE и NOT LIKE - обоссусь от смеха.
    --- Добавлено ---
    Специально для дурачков сверху:
    PHP:
    1. $te = mysqli_query($bds,"SELECT * FROM users WHERE last_code LIKE '%".$checkit."%'");
    Facepalm..
    --- Добавлено ---
    В общем решение я сделал. Закройте тему, пока еще больше дурных голов не забрело. От темы отписался с борда ушел. Высказать что-то умное можете не пытаться. Позорники.
     
  6. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    за 12 лет проведённых на форумах РНР какого только тона я не слышал, тон меня мало волнует, главное это содержимое поста.
    @shareware, если с нежеланием расписывать прописные истины вдоль и поперёк расписанные в книгах я еще как-то могу бороться (а иногда даже и побороть), то против банальной нехватки времени на это, я бессилен. База данных в первую очередь нужна для обработки информации, а то что она в себе эту информацию хранит - это всего лишь приятный бонус. Я конечно утрирую, но от истины это не так уж и далеко. Ты делаешь "полную" выборку из таблицы и производишь сравнение на уровне РНР, для знающего человека - это примерно как удалять гланды через задний проход.