Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Как считать строку из Базы Данных по ее номеру?
Добавьте пожалуйста туда пострничную навигацию чтоли
как на php.net и mysql.ru
У каждой главы есть ссылка на следующюю главу / статью / функцию в этом разделе
----- Truly yours, Sasha.
SergeantPEPPER
Отправлено: 24 Сентября, 2007 - 18:48:16
Частый гость
Покинул форум
Сообщений всего: 245
Дата рег-ции: Сент. 2007 Откуда: Казань
Помог: 0 раз(а)
На самом деле имел ввиду не это. Я знаком с синтаксисом этого SQL запроса, однако нужно сичтывать именно какую-то определенную строку из таблицы. Вообщем-то я в таблице использую индекс-столбец id с autoincrement, который задан как первичный ключ, однако при удалении какой-либо записи индексы, естесственно не перерассчитываются. Подскажите, как можно читать строку по ее номеру, либо как можно перерассчитывать значения индекс-поля при изменении записей в таблице. (целостность данных в моем примере пока не используется)...
valenok
Отправлено: 24 Сентября, 2007 - 19:30:44
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Помог: 3 раз(а)
а зачем вам это надо?
Зачем вы себе проблемы изобретатете
----- Truly yours, Sasha.
SergeantPEPPER
Отправлено: 24 Сентября, 2007 - 19:41:37
Частый гость
Покинул форум
Сообщений всего: 245
Дата рег-ции: Сент. 2007 Откуда: Казань
Помог: 0 раз(а)
Проблема в следующем: у меня есть столбец id, который задет уникальный идентификатор для каждой строки. Предположим, что у меня в таблице всего 5 строк. Тогда id для них будет таким: 1 2 3 4 5. (Т.к. not null и AutoIncrement). Однако, если я удалю, например последнюю строку из таблицы и после этого создам новую последовательность id будет иметь вид: 1 2 3 4 6. Ну, видимо делается это для поддержания целостности данных, мне однако это пока не обязательно. Если вам кажется, что это вовсе и не проблема, подскажите тогда более элегантное решение)
evgenijj
Отправлено: 24 Сентября, 2007 - 20:17:21
Участник
Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006 Откуда: Москва
Помог: 10 раз(а)
Давай ты придумаешь пример, когда тебе абсолютно необходима сплошная нумерация ID (1, 2, 3, 4, 5, 6, 7, ... ) - а мы тебе расскажем, как это обойти?
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Помог: 3 раз(а)
да, но я спорсил зачем вам выбрать пятую строку не взирая на её id, будь оно 5 или 6
----- Truly yours, Sasha.
SergeantPEPPER
Отправлено: 25 Сентября, 2007 - 19:04:08
Частый гость
Покинул форум
Сообщений всего: 245
Дата рег-ции: Сент. 2007 Откуда: Казань
Помог: 0 раз(а)
Хорошо, моя задача в следующем:
В базе данных есть таблица, в кторой хранятся: id, Вопрос, 4 варианта ответа к нему, и номер правильного ответа(1-4). Мне нужно считать ВСЕ записи из таблицы и затем выводить по одной (вообщем, тестирующая система).
Так, вот: я не знаю, как можно отлавливать события в PHP (и можно ли вообще...), поэтому делаю кнопку Submit с ссылкой на эту же самую страницу и передаю ей значение номера заданного вопроса и нечто еще...
У меня также была идея считать сразу все данные из таблицы, чтобы не делать это каждый раз, когда пользователь отвечает на вопрос и должен получить следующий, и передавать их через Hidden той же формы, но ... попробовал - не получилось (может как-то не так пробовал).
Так получается в моем случае необходимо, чтобы номер вопроса, передающегося через форму, совпадал с id в базе данных. Либо завести еще одно поле специально для номеров вопросов, что я, собственно, пока и сделал, но такая альтернатива мне не очень то нравиться...
Помогите пожалуйста с выбором способа считывания инфы из таблицы. Заранее благодарю)
evgenijj
Отправлено: 25 Сентября, 2007 - 19:50:08
Участник
Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006 Откуда: Москва
Помог: 10 раз(а)
Давай попробуем разобраться. Итак, во-первых, у нас не одна, а две таблицы - вопросы (questions) и ответы (answers). Каждая запись в таблице answers имеет ссылку на первичный ключ таблицы questions.
Чтобы провести тестирование, тебе нужно вывести на страницу все вопросы, и для каждого вопроса - список ответов (я здесь не рассматриваю вариант, когда возможны разные экзамены - тогда каждый вопрос должен содержать ссылку на родительский элемент - запись в таблице "экзамены")
Когда у тебя в руках молоток
всё вокруг похоже на гвоздь.
----- Truly yours, Sasha.
SergeantPEPPER
Отправлено: 28 Сентября, 2007 - 18:30:08
Частый гость
Покинул форум
Сообщений всего: 245
Дата рег-ции: Сент. 2007 Откуда: Казань
Помог: 0 раз(а)
Спасибо за советы... На самом деле у меня действительно за один раз выводится только один вопрос и по сабмиту я выполняю проверку правильности отмеченного чекбокса и в то же время загружаю новый вопрос и варианты ответа к нему. Вообще проблему я уже обошел, введя дополнительное поле. Но решение, на мой взгляд, не очень хорошее... И вот еще вопрос: А что лучше хранить вопросы и варианты ответов к ним В РАЗНЫХ ТАБЛИЦАХ??? Если это так, объясните почему. Заранее спасибо)
valenok
Отправлено: 28 Сентября, 2007 - 18:35:48
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Помог: 3 раз(а)
Тут скорее дело в том кому как удобней.
Я бы тоже хранил в одной.
Скорее всего Евгений считает что для каждого ответа отведена отдельная колонка в таблице, тогда одна таблица получается слишком "широкой".
А касаемо своего дополнительного номера, а при удалении вопроса вы его всё таки перенумировываете?
И прочитайте про LIMIT. Ссылка в моём предыдущем сообщении.
----- Truly yours, Sasha.
evgenijj
Отправлено: 28 Сентября, 2007 - 19:41:06
Участник
Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006 Откуда: Москва
Помог: 10 раз(а)
Цитата:
И вот еще вопрос: А что лучше хранить вопросы и варианты ответов к ним В РАЗНЫХ ТАБЛИЦАХ??? Если это так, объясните почему.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.