[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: сложный запрос в mysql
pultter
Доброго времени суток. Вопрос у меня, как я думаю трудный, поэтому настройтесь сразу. наверное объяснить я по нормальному не смогу, поэтому вот картинка:
user posted image

теперь вопрос. как одним запросом занести все это дело в таблицу? уникальные имена input'ам я сделал с помощью прикрепления к ним id каждого ученика...
заранее благодарю за помощь



Спустя 8 минут, 9 секунд (2.11.2009 - 18:21) lawbreaker написал(а):
нужно делать несколько запросов... я так думаю smile.gif


оч интересно или можно ето всё одним запросом зделать

Спустя 5 минут, 46 секунд (2.11.2009 - 18:27) haZe написал(а):
ну для начала надо выяснить как выглядит у тебя таблица.
Я бы сделал так три поля. id ученика, активность и то что написано в инпуте.
Еще непонятно что такое активность и как их различать. Если например это дата урока, то проще. Получается, что выбираем из базы по идентификатору ученика и дате и получаем инпут.
В таком случае, можно всем инпутам по уму раздать имена. name="input[uid][date]", конечно здесь uid и date для каждого инпута должен быть свой.
В обработчике ты получишь массив инпут, в котором будут лежать инпуты рассортированные по ученикам и датам.
Ну так. как пример)

Спустя 2 минуты, 58 секунд (2.11.2009 - 18:30) haZe написал(а):
Цитата (lawbreaker @ 2.11.2009 - 15:21)
нужно делать несколько запросов... я так думаю smile.gif
оч интересно или можно ето всё одним запросом зделать

Думаю можно одним, вроде последний mysql позволяет такие ухищрения.
У меня phpmyadmin при экспорте, инпут возращает одним запросом, просто данные перечисляет в скобках через запятую.

Спустя 2 минуты, 50 секунд (2.11.2009 - 18:33) Gabriel написал(а):
haZe
присоединяюсь
pultter
подробнее както суть задачи ато гдания на кофейной гуше както не оправдывают себя.
lawbreaker
тут помоему можно апсолютно спокойно сделать все одним запросом

Спустя 29 минут, 5 секунд (2.11.2009 - 19:02) lawbreaker написал(а):
Gabriel
спокойно ?
wink.gif
pultter
какие у тебя таблицы ?

Спустя 8 минут, 52 секунды (2.11.2009 - 19:11) glock18 написал(а):
lawbreaker
спокойно.

осталось понять
а) почему ТС решил, что задача сложная.
б) что он хочет от запроса. mysql не занимается "рисованием инпутов". он может дать нужную инфу, а какую нужно - ничего не сказано.

Спустя 2 часа, 49 минут, 44 секунды (2.11.2009 - 22:00) pultter написал(а):
извиняюсь что сразу не дал полной информации, спешил просто... вобщем вот таблица как она будет...user posted image
надо чтобы данные всех полей (в поля будут вводиться оценки) заносились в бд одним запросом.
таблица воть:
PHP
print " <a href=index.php>Назад</a>
            <form action=index.php?act=add_result method=post>
            <table border=1>
            <tr align=center>
                <td width=20%>Ф.И. ученика</td>
                <td>Русский язык</td>
                <td>Литература</td>
                <td>Английский</td>
                <td>Алгебра</td>
                <td>Геометрия</td>
                <td>Информатика</td>
                <td>Физкультура</td>
                <td>ОБЖ</td>
                <td>Физика</td>
                <td>Биология</td>
            </tr>"
;
while (
$r mysql_fetch_array($q)) {
        print 
" <tr align=center>
                    <td>"
.$r['name']."</td>
                    <td><input type=text name=read_"
.$r['id']." size=5></td>
                    <td><input type=text name=text_"
.$r['id']." size=5></td>
                    <td><input type=text name=princ_"
.$r['id']." size=5></td>
                    <td><input type=text name=pos_"
.$r['id']." size=5></td>
                    <td><input type=text name=prwork_"
.$r['id']." size=5></td>
                    <td><input type=text name=test_"
.$r['id']." size=5></td>
                    <td><input type=text name=stih_"
.$r['id']." size=5></td>
                    <td><input type=text name=lesson_"
.$r['id']." size=5></td>
                    <td><input type=text name=reading_"
.$r['id']." size=5></td>
                    <td><input type=text name=active_"
.$r['id']." size=5></td>
                </tr>"
;
    }
    print 
" <tr>
                <td align=right colspan=11><input name=add_result type=submit value=Отправить></td>
            </tr>
            </table>
            </form>"
;


надеюсь это поможет чем то

Спустя 4 минуты, 59 секунд (2.11.2009 - 22:05) lawbreaker написал(а):
моё мнение... для каждого учениика нужен свой запрос к БД...

Спустя 22 минуты, 58 секунд (2.11.2009 - 22:28) sergeiss написал(а):
Открываем хэлп по MySQL, читаем там формат команды вставки:
Код
INSERT [LOW_PRIORITY | DELAYED] [IGNORE]
       [INTO] tbl_name [(col_name,...)]
       VALUES (expression,...),(...),...

Теперь немного думаем, и получаем примерно такую команду вставки:
SQL
insert into your_table (fio_id, russ, liter, eng, alg)
values
( 1, 5, 5, 4,5),
(3, 4, 3, 4, 3),
(78, 3, 5, 4,4)

Тут я предполагаю, что были введены данные для 3-х учеников, вставляем оценки только для 4-х предметов.
Ну, и теперь тебе нужно только преобразовать введенные данные в запрос подобного типа smile.gif

Спустя 4 минуты, 17 секунд (2.11.2009 - 22:32) glock18 написал(а):
Цитата
моё мнение... для каждого учениика нужен свой запрос к БД...

ужас да и только.


pultter
можно выбрать все
1. кучей запросов, как предложили выше. Можно, но это последний ахтунг.
2. двумя запросами. первым выбираем всех нужных учеников. получаем их id. выбираем их оценки по предметам, передавая список ид в where.
3. одним запросом с group_concat.

Спустя 16 минут, 9 секунд (2.11.2009 - 22:49) lawbreaker написал(а):
glock18
спасибо. Старался smile.gif

Спустя 16 дней, 19 часов, 18 минут, 23 секунды (19.11.2009 - 18:07) pultter написал(а):
sergeiss, а как тогда организовать поля, добавляемые циклом? какие имена им присвоить?
если присваивать input'у имя такое как я присвоил,

<td><input type=text name=active_".$r['id']." size=5></td>

то я не знаю как его потом достать...
если добавлять в бд, то каким образом? кроме как
insert into your_table (active)
values
( '".$active_".$r['id']."."')

я не знаю другого способа... конечно, ерунда получилась... но как по другому?


_____________
Напишу индусский код. Бесплатно
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.