Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/25: Рейтинг темы: голосов - 25, средняя оценка - 4.68
 Аватар для acupation
67 / 67 / 6
Регистрация: 26.03.2010
Сообщений: 546

Сравнение данных в базе с имеющимся

09.02.2012, 21:27. Показов 4651. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Даже не знал как тему то назвать. В общем суть:
В таблице есть записи. В столбце nomklet цифры, но не для всех записей.
Делаю выборку
PHP
1
$nom_klet1 = mysql_query("SELECT nomklet FROM objects WHERE user='".$stat1['user']."' AND nomklet!=0");
Далее встал в ступор, пробовал по разному, и через двойной for и через for и foreach - неудача.
К примеру в nomklet есть записи 3, 8, 1, 2, 12.
Мне нужно чтобы произошла запись в этом случае с числом 4, то есть со следующим после 3. Но так же нужно проверить, нет ли в базе уже записи с №4, если есть, то с №5, Если и с 5 есть, то с №6.

В общем произвести запись с числом которого нет и следующим по порядку.
Если объяснил плохо, попытаюсь получше.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.02.2012, 21:27
Ответы с готовыми решениями:

Запись и сравнение звука с имеющимся
Добрый день, столкнулся с проблемой, задача такова: записываем смартфоном звук и сравниваем с имеющимся, если совпали то каким-нибудь...

Сопоставление изображения с имеющимся в базе
Добрый день. Задача следующая: есть детали разной формы и небольших размеров, которые нужно распознавать. Т.к. деталей много и они мелкие и...

сравнение выбранного с уже имеющимся данными в БД
ddfsfsfsf sfdsass fa

15
 Аватар для Sulik78
450 / 203 / 27
Регистрация: 23.12.2010
Сообщений: 645
09.02.2012, 21:38
Цитата Сообщение от acupation Посмотреть сообщение
Если объяснил плохо, попытаюсь получше.
да уж совсем что-то не ясно чего хотите
если хотите выбрать максимальную user
тогда
SQL
1
SELECT nomklet FROM objects WHERE nomklet != 0 ORDER BY USER DESC LIMIT 1
0
 Аватар для allukard
307 / 218 / 70
Регистрация: 08.11.2010
Сообщений: 1,899
09.02.2012, 21:39
как я понял запрос у вас такой: Вывести столбец 'nomklet' из таблицы 'objects' ГДЕ 'user' И (и где не равняетсю нулю)

помойму стото нето!
аааа.. сортировку добавить по убыванию с верху
0
 Аватар для acupation
67 / 67 / 6
Регистрация: 26.03.2010
Сообщений: 546
09.02.2012, 21:43  [ТС]
Sulik78,
В общем произвести запись с числом которого нет и следующим по порядку.
В примере с выборкой записей я пытаюсь выбрать записи в таблице, где в столбце nomklet вообще хоть что-то присутствует)

Добавлено через 54 секунды
а
PHP
1
user='".$stat1['user']."'
просто удалить забыл) это доп выборка по имени юзера.

Добавлено через 1 минуту
Да что вы все к выводу то))
В общем произвести запись с числом которого нет и следующим по порядку.
Давайте остановимся на этом)
0
 Аватар для Sulik78
450 / 203 / 27
Регистрация: 23.12.2010
Сообщений: 645
09.02.2012, 21:45
acupation, простите, а чем не подходит тип autoincrement?
http://dev.mysql.com/doc/refma... ement.html
0
 Аватар для acupation
67 / 67 / 6
Регистрация: 26.03.2010
Сообщений: 546
09.02.2012, 21:53  [ТС]
Sulik78, объясню, если получится.
У меня есть 20 клеток на html, у каждой из них есть свой номер. В некоторых из них (к примеру в 4, 8, 2 и 1) есть картинки. При добавлении новой картинки мне ее нужно вставить в одну из этих 20 клеток, но так, чтобы она не попала в клетку с уже имеющееся записью.
Вот я и пытаюсь найти функцию, которая будет пробегать по всем клеткам и просматривать, какая клетка пустая и можно ли в нее вставить)

Добавлено через 2 минуты
клетки, в которых есть записи (точнее их номера) лежат в столбце nomklet.
0
 Аватар для Sulik78
450 / 203 / 27
Регистрация: 23.12.2010
Сообщений: 645
09.02.2012, 22:02
acupation, думаю логичнее будет хранить в базе указатель на то есть картинка или нет например поле image
затем выбрать первое поле с пустой картинкой примерно так
SQL
1
SELECT nomklet FROM objects WHERE image = 0 ORDER BY nomklet LIMIT 1
0
 Аватар для acupation
67 / 67 / 6
Регистрация: 26.03.2010
Сообщений: 546
09.02.2012, 22:12  [ТС]
Хорошо, а если все поля в таблице заняты, но картинка показывается только если в поле nomklet есть значение и причем это значение соответствует клетке где оно показывается.
Все дело в том, что клетки идут не по порядку, а могут быть только к примеру в 2, 4 и 8 клетках, а в бд записаны в порядке 8, 2 и 4.

Добавлено через 2 минуты
А еще таблице 500 записей, а выводиться могут только 20.

Добавлено через 2 минуты
я же говорю, нужна всего лишь идея по написанию функции, которая будет доставать из базы значения, которые уже есть, далее (я хотел через for и сравнивать с $i, но увы) нужно сравнить их с числами от 0 до 20 и первое число, которое не совпадает ни с 1 из чисел из базы - записать.
0
 Аватар для Sulik78
450 / 203 / 27
Регистрация: 23.12.2010
Сообщений: 645
09.02.2012, 22:16
Цитата Сообщение от acupation Посмотреть сообщение
Все дело в том, что клетки идут не по порядку, а могут быть только к примеру в 2, 4 и 8 клетках, а в бд записаны в порядке 8, 2 и 4.
ну это я думаю совсем не вопрос так как мы их сортировали перед выборкой ORDER BY nomklet
Цитата Сообщение от acupation Посмотреть сообщение
Хорошо, а если все поля в таблице заняты, но картинка показывается только если в поле nomklet есть значение и причем это значение соответствует клетке где оно показывается.
а вот здесь опять не ясно, не чего. Выложите пожалуйста дамп структуры базы чтобы яснее было, и код php

Добавлено через 2 минуты
начинаю догонять что надо )))
дайте и html код чтобы все ясно стало
0
 Аватар для acupation
67 / 67 / 6
Регистрация: 26.03.2010
Сообщений: 546
09.02.2012, 22:49  [ТС]
Попытаюсь обрезать чтобы понятно было, а то кода лишнего много))
Создаю 20 клеток (это список с подключенным плагином jquery)
PHP
1
2
3
          for ($i=1; $i<21; $i++) {
      $veshivru22 .= "<li id='veshdiv22".$i."' class='ui-state-default'><div class='imagecontainer22' ><img src='../img/items/pusto.gif'></div></li>";
      }
далее беру из базы и вывожу
PHP
1
2
3
4
5
6
$veshi1 = mysql_query("SELECT * FROM objects WHERE user='".$stat1['user']."'");
 
      for ($i=0; $i< $objects = mysql_fetch_array($veshi1); $i++) {
      $obj_inf=explode("|",$objects['inf']);
      $js2 .=" $(function(){ $('#veshdiv22".$objects['nomklet']."').html('<img src=../img/items/".$obj_inf['0'].".gif>');  }); ";
      }
Добавлено через 4 минуты
в БД
SQL
1
2
3
4
5
6
7
8
CREATE TABLE IF NOT EXISTS `objects` (
  `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `user` VARCHAR(20) CHARACTER SET cp1251 NOT NULL DEFAULT '',
  `inf` VARCHAR(120) NOT NULL,
  `nomklet` INT(4) NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `user` (`user`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=80 ;
Добавлено через 1 минуту
Если я бд обрезать не буду, много текста будет.
0
 Аватар для Sulik78
450 / 203 / 27
Регистрация: 23.12.2010
Сообщений: 645
09.02.2012, 22:50
acupation, а зачем такая сложность и вообще jquery?
я так понимаю это что то вроде одетых вещей на некоего персонажа в какой-то игре?
в таблице objects хранятся одетые вещи на игрока?
если так тогда попроще будет одним циклом
выбрать все вещи в массив, запустить цикл создавая html
сразу искать есть вещь либо нет в массиве. ну както так
PHP
1
2
3
4
5
6
7
8
9
$html = ''
$veshi1 = mysql_query("SELECT nomklet FROM objects WHERE user='".$stat1['user']."'");
$objects = mysql_fetch_assoc($veshi1);
for($i=1; $i<21; $i++)
{
   $html .= "<li id='veshdiv22".$i."' class='ui-state-default'><div class='imagecontainer22' >";
   $html .= array_search($object, $i, true) ? "<img src='../img/items/".$obj_inf['0'].".gif'>" : "<img src='../img/items/pusto.gif'>";
   $html .= "</div></li>";
}
0
 Аватар для acupation
67 / 67 / 6
Регистрация: 26.03.2010
Сообщений: 546
09.02.2012, 22:56  [ТС]
Почти угадал, это рюкзак, в котором с помощью плагина можно перемещать вещи из одной клетки в другую.
Остается все равно вопрос, при покупке новой вещи, ее нужно добавлять в рюкзак. Вот тут и встал вопрос о том, как в пустую ячейку засунуть новую вещь.
0
 Аватар для Sulik78
450 / 203 / 27
Регистрация: 23.12.2010
Сообщений: 645
09.02.2012, 23:28
ясно )))
значит нужно выбрать первую пустую ячейку
самый простой способ выбрать все полные например у нас они 8, 4, 7, 2, 1
а все ячейки 1[X], 2[X], 3[ ], 4[X], 5[ ], 6[ ], 7[X], 8[X], 9[ ]....
соответственно наша 3я
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
$query = "SELECT nomklet FROM objects WHERE user = $user ORDER BY nomklet";
//массив содержит 1,2,4,7,8
for($i = 1; $i < 21; $i++)
{
    if(!in_array($objects, $i))
    {
         // если нет в массиве текущего $i
         // а тот соответственно начинается с одного и идет выше
         // у нас остановится на 3х, тогда берем это значение и обрываем цикл
         $newindex = $i;
         break;
    }
}
в общем как то так только учти что массив с базы обычно многомерный
либо получи из него не многомерный и используй in_array либо поиск по массиву array_search()
0
 Аватар для acupation
67 / 67 / 6
Регистрация: 26.03.2010
Сообщений: 546
10.02.2012, 16:38  [ТС]
не сложилось. В базе есть 1,2,3, 12 и 8, получилось $newindex = 1. И $objects и $i местами поменял, массив же вторым должен идти)

если break убираю $newindex листает с 1 по 20.

Добавлено через 2 часа 52 минуты
я может пишу чего не так
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$nom_klet1 = mysql_query("SELECT nomklet,id FROM objects WHERE user='".$stat1['user']."' AND ORDER BY nomklet");
     $nom_klet = mysql_fetch_array($nom_klet1);
 
        for ($i=1; $i< 21; $i++) {
 
 
         if(!in_array($i, $nom_klet))
            {
            $newindex = $i;
            $js .="alert('".$newindex."');";
                break;
            }
}
echo $js;
Добавлено через 17 минут
массив не создается что ли я уже не знаю что и думать.

Добавлено через 10 минут
В итоге работает вот так
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
$nom_klet1 = mysql_query("SELECT nomklet,id FROM objects WHERE user='".$stat1['user']."' AND nomklet !=0 ORDER BY nomklet");
 
 
        for ($i=1; $i< 21; $i++) {
          $nom_klet = mysql_fetch_array($nom_klet1);
          for ($d=0; $d< mysql_num_rows($nom_klet1); $d++)
            {
            f($i!=$nom_klet['nomklet']){ $newindex = $i; }
            break;
            }
            if($newindex > 0){ break; }
 
        }
0
65 / 65 / 6
Регистрация: 22.09.2010
Сообщений: 182
10.02.2012, 21:51
А не лучше выбрать все, где нету картинок и просто вставить в первую?
Тоесть у вас есть 10 клеток. В 3,4,5,8,9,10 есть картинки. Вы выбираете все, где нету. Получается 1,2,6,7. И пишите новую картинку в 1.
0
 Аватар для acupation
67 / 67 / 6
Регистрация: 26.03.2010
Сообщений: 546
11.02.2012, 10:20  [ТС]
нет, т.к. в базе не записаны ячейки, а записаны только картинки. Если бы для каждого юзера были бы записаны все ячейки, а потом уже в них писалось есть в них что-то или нет - было бы проще, но и база была бы разы больше, т.к. там бы присутствовали и пустые клетки.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.02.2012, 10:20
Помогаю со студенческими работами здесь

Сравнение по базе данных
Привет.Помогите с несложной задачкой. Допустим,есть следующая задача: - есть текстовое поле и кнопка &quot;Save&quot;.В текстовое поле...

Сравнение полученной инфы с инфой в базе данных
Всем привет! У меня в программе есть команда, которая должна заниматься проверкой наличия логина введенного в строке текстбокса в базе...

Сравнение выбранных значений со значением в базе данных
В общем надо написать было программу-тестер с использованием базы данных access.Ну в общем сделал админку,авторизацию и так далее...но...

Добавление данных в ячейку к уже имеющимся
Доброго времени суток. Подскажите пожалуйста как должна выглядеть формула для SQL 2008 если надо в таблицу к уже имеющемуся номеру надо...

Запрос в базу данных только по имеющимся полям
Здравствуйте! Я новичок в php и вот уже весь инет перерыла в поисках ответа на такой вопрос: Есть страничка сайта, на ней расположена...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru