Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
2 / 2 / 1
Регистрация: 12.08.2017
Сообщений: 110

Нужно создать цикл, не могу додуматься как

20.04.2018, 13:05. Показов 2047. Ответов 43
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В общем цикл должен быть следующий:
Объявляется переменная на основе записей пользователя $sample
Идет просмотр записей в базе данных - $sql = mysqli_query($conn, "SELECT * FROM `table` WHERE `sample` = '$sample'")
И если в таблице уже есть такая запись, то в конце этой переменной он должен добавить число "1" (например если в переменной "АаБб" и такая запись есть в таблице, то он должен добавить в конце "1"). Если запись есть с числом "1", то вместо "1" должен добавить "2" и т.д. до "9". Как сделать условием знаю, но в циклах очень поверхностно разбираюсь и не знаю как реализовать подобное.
Вот цикл, в котором перебирается вся таблица. Может быть на этой основе можно что-то реализовать:
while ($result = mysqli_fetch_array($sql)){
...
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.04.2018, 13:05
Ответы с готовыми решениями:

Создать поле со списком, все лгко только не могу додуматься
Базу данных сделал, все по методичке на 26 странице индивидуальные задания, ВАРИАНТ 10. Первое задание сделал а второе не могу помогите...

Хочу создать программу-словарь, но не могу додуматься откуда выводить слова с переводом
Хочу сделать программу, которая в определенное время работы на компьютере вылазила и просила ввести перевод слова (для улучшения словарного...

Не могу додуматься как в БД сделать один расчет
http://s1.********************/uploads/thumbs/2014/06/d0a8d6f1e5239d0b12204e5eba90c2bd.png Здравствуйте. У меня такая проблема не могу...

43
767 / 323 / 157
Регистрация: 26.05.2016
Сообщений: 2,127
20.04.2018, 13:12
Цитата Сообщение от NormalThread Посмотреть сообщение
например если в переменной "АаБб" и такая запись есть в таблице, то он должен добавить в конце "1").
типо АаБб1? ))
0
2 / 2 / 1
Регистрация: 12.08.2017
Сообщений: 110
20.04.2018, 13:16  [ТС]
andyyy, да)
А если уже есть такая запись в базе данных АаБбб1, то вместо цифры "1" - "2": АаБб2
Я знаю только как с условиями сделать, а с циклами нет
0
767 / 323 / 157
Регистрация: 26.05.2016
Сообщений: 2,127
20.04.2018, 13:25
вот по типо шаблон первого задания


PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
                          <?php
                          $ex = "Аабс";
$sample = array("Аабс","Фабс","Аабс1123");
$i = 1;
foreach($sample as $s) {
    
    if($s==$ex) {
        
        $n = $s.$i;
        
        echo $n;
    }
    $i++;
}
 
 
 
 
 
                            ?>
Добавлено через 1 минуту
со вторым лень возится но делайте такое условие

Проверяйте строку и если на конце цифра то делайте типо

PHP
1
2
3
$a = "asds3";
 
++$a;
Добавлено через 3 минуты
вот вам подсказка еще

PHP
1
2
$str = 'abnc';
echo substr_replace($str,'2',-1);
0
2 / 2 / 1
Регистрация: 12.08.2017
Сообщений: 110
20.04.2018, 13:27  [ТС]
andyyy, немного не то. Запись пользователя - не массив, а обычная переменная. А значит foreach здесь не подходит. Мне главное понять саму структуру этого массива в данном случае.
Все равно спасибо за ответ)
0
767 / 323 / 157
Регистрация: 26.05.2016
Сообщений: 2,127
20.04.2018, 14:00
я вам написал чтобы вы сами додумали) а не чтобы все другой сделал. чуть логику включите и примените свой цикл

Добавлено через 48 секунд
Цитата Сообщение от NormalThread Посмотреть сообщение
а не добавление после.
вы же сами написали добавление)

Добавлено через 35 секунд
сложение вот

PHP
1
2
3
 $a = "asds3";
 
echo ++$a;
Добавлено через 27 минут
ну что получается?
0
2 / 2 / 1
Регистрация: 12.08.2017
Сообщений: 110
20.04.2018, 14:04  [ТС]
andyyy, это не совсем то, что я хотел)
У меня получилось следующее:

PHP
1
2
3
4
5
6
7
while ($result = mysqli_fetch_array($sql)) {
        if ($result['name'] == $name){
            $name = $name.'0';
            ++$name;
            echo $name;
        }
    }
В конечном итоге, если переменная $name равна такому же тексту, которое встречается в БД, то он добавляет в конце 1. Но если в БД уже есть такой текст, где в конце уже есть 1, то он ничего с этим не делает, а выводит также с единичкой, вместо двойки
0
767 / 323 / 157
Регистрация: 26.05.2016
Сообщений: 2,127
20.04.2018, 14:12
ну и я вам тоже самое сделал в начале) только через массив и фореас цикл -

у вас не правильно, насколько я вижу
у вас
PHP
1
$name = $name.'0';
постоянно добавляется ноль
к примеру
PHP
1
2
3
$name = "asdasd1";
$name = $name.'0';
echo $name;
будет 10 )

Добавлено через 1 минуту
опять же смотрите первый пример)
0
2 / 2 / 1
Регистрация: 12.08.2017
Сообщений: 110
20.04.2018, 14:17  [ТС]
andyyy, сделал по первому примеру
PHP
1
2
3
4
5
6
7
8
9
10
11
if(mysqli_num_rows($sql) > 0) {
    $i = 1;
    while ($result = mysqli_fetch_array($sql)) {
        if ($result['name'] == $name){
            $name = $name.'-'.$i;
            ++$name;
            echo $name;
        }
        $i++;
    }
}
Ничего не изменилось, разве что вместо единички он вставляет двойку и на этом останавливается. Мне кажется я делаю что-то не так
0
767 / 323 / 157
Регистрация: 26.05.2016
Сообщений: 2,127
20.04.2018, 16:16
Цитата Сообщение от NormalThread Посмотреть сообщение
Ничего не изменилось, разве что вместо единички он вставляет двойку и на этом останавливается. Мне кажется я делаю что-то не так
ну вот находит одну запись и прибавляет, у вас же в переменной одна запись?

Добавлено через 37 секунд
Цитата Сообщение от NormalThread Посмотреть сообщение
++$name;
* * * * * * echo $name;
Это не нужно

Добавлено через 56 секунд
уже у вас там счетчик уже установлен $i
каждая новая найденная запись прибавляет его

Добавлено через 1 минуту
Цитата Сообщение от andyyy Посмотреть сообщение
Это не нужно
это нужно если у вас в записи типо $a = "asdasdas1";
в конце цира вы можете ++$a; так прибавить - но у вас уже счетчик как переменная $i=1;
0
2 / 2 / 1
Регистрация: 12.08.2017
Сообщений: 110
20.04.2018, 19:42  [ТС]
andyyy,
PHP
1
2
3
4
5
6
7
8
9
10
if(mysqli_num_rows($sql) > 0) {
    $i = 0;
    while ($result = mysqli_fetch_array($sql)) {
        if ($result['name'] == $name){
            $i++;
            $name = $name.'-'.$i;
            echo $name;
        }
    }
}
Ничего не срабатывает, как было, так и осталось. Странно...
0
2 / 2 / 1
Регистрация: 12.08.2017
Сообщений: 110
22.04.2018, 13:44  [ТС]
andyyy, что именно не так?
0
767 / 323 / 157
Регистрация: 26.05.2016
Сообщений: 2,127
22.04.2018, 14:00
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$name = 'liza1';
 
 
 
    while ( $row = mysqli_fetch_array($sql)) {
        
        
        
     if ($row['name'] == $name){
            
           
          echo ++$row['name']."<br>";
        }
    
 
        
        
        
    }
Добавлено через 2 минуты
еще нужно условие сделать - если в конце есть цифра то ++ иначе предупредить что в переменной неправильная запись
0
2 / 2 / 1
Регистрация: 12.08.2017
Сообщений: 110
27.04.2018, 20:15  [ТС]
andyyy, проблема осталась. Он проверяет только один раз и если в бд уже есть "liza2", то он так и оставляет без изменений
0
767 / 323 / 157
Регистрация: 26.05.2016
Сообщений: 2,127
28.04.2018, 08:11
Цитата Сообщение от NormalThread Посмотреть сообщение
Объявляется переменная на основе записей пользователя $sample
Идет просмотр записей в базе данных - $sql = mysqli_query($conn, "SELECT * FROM `table` WHERE `sample` = '$sample'")
вы же сами так написали)
значит в объявленной переменной должна быть liza2
0
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,230
28.04.2018, 10:46
Цитата Сообщение от NormalThread Посмотреть сообщение
andyyy, да)
А если уже есть такая запись в базе данных АаБбб1, то вместо цифры "1" - "2": АаБб2
Я знаю только как с условиями сделать, а с циклами нет
я бы на вашем месте разбил на 2 колонки: АаБбб и 123-9
а то дичь.
и если они ещё и по порядку идут, то вообще: select max(num)
0
2 / 2 / 1
Регистрация: 12.08.2017
Сообщений: 110
28.04.2018, 14:26  [ТС]
andyyy, нет. В объявленной переменной может быть что угодно. Но если запись с таким же текстом в переменной уже есть в БД, то он в конце должен добавить цифру 1. Если в конце уже есть цифра 1 при проверки в БД, то добавляет цифру 2. Если есть цифра 2, то добавляет три и т.д.

Добавлено через 27 минут
полудух, это не совсем то, что нужно реализовать. Задача заключается именно в цикличной проверки всей таблицы в базе данных и, если объявленная в PHP переменная в таблице не встречается, он добавлял в конце всей переменной единичку. Если с единичкой уже есть, добавлял двойку и др.
Попытаюсь объяснить немного понятнее. Допустим пользователь пишет текст, это все заноситься в переменную. Для примера, пусть пользователь наберет "Рыбамеч". Эти данные должны быть добавлены в таблицу базы данных, но только при условии, что ни в одном столбце нет значения "Рыбамеч". Если же в таблице в каком-нибудь столбце существует текст "Рыбамеч", то в PHP, в переменную нужно добавить в конце символ "1", чтобы получилось "Рыбамеч1". Если при повторной проверки базы данных, в таблице не будет "Рыбамеч1", то он добавляет. Если опять есть, то он прибавляет еще "1", чтобы получилось "Рыбамеч2" и т.д., пока в таблице не будет такого значения
0
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,230
28.04.2018, 15:22
именно про это я и написал.

Цитата Сообщение от NormalThread Посмотреть сообщение
Задача заключается именно в цикличной проверки всей таблицы в базе данных
эта дичь называется "я не умею работать с реляционными базами данных"
0
2 / 2 / 1
Регистрация: 12.08.2017
Сообщений: 110
28.04.2018, 16:00  [ТС]
полудух, так для того, чтобы разобраться, я и задал вопрос
0
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,230
28.04.2018, 16:38
а для чего всё это?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.04.2018, 16:38
Помогаю со студенческими работами здесь

Не могу додуматься как написать исходный код
Пользователь в водит 3-ри числа, а программа выводит наибольшее. Пример: вводим 365, выводит 6. Код с++ Заранее огромное спасибо! :)

Не могу додуматься, как реализовать ячейку памяти
Добрый день, У меня такая проблема: не могу реализовать ячейку памяти. Работа заключается в следующем: в память приходит сигнал,...

Многоуровневые запросы MySQL, не могу додуматься как сделать
В общем пробую сделать админку, но не могу понять как решить задачу с поставленными условиями: Есть страница &quot;Каталог&quot;, на...

Работа со строками.Никак не могу додуматься как сделать данное задание=(
Только начинаю учить Assembler в универе.И мне срочно нужн сделать данное задание.Ну или хотя бы намекните как можно его сделать,кто знает....

Не могу додуматься как передать значение из одного текстового поля в другие с определенным id
Добрый день уважаемые форумчане. Уже несколько дней пробую реализовать дублирование данных из одного текстового поле в другие с id...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru