Значит трабла следуйщеё делаю расписание для группы. У меня выходит масивчик дней, фором делаю что бы их было имено 7 и в каждом делаю выборку по расписанию. Но проблема в том, что в цыкле оно начинает считать со второй цыфры, то есть во вторник данные с понедельника и т.д. проверял если ставить проверки до цыкла то даные коректны, если после то липовые PHP: $day = array( 1 => 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Субота', 'Воскресенье'); //Масив дней for( $i = 0; $i <= 7; ++$i ) { echo '<b>'.$day[ $i ].'</b><br /><br /> Здесь табличка'; $p_row = mysql_query("SELECT p_day, p_number, p_name FROM `pair` WHERE p_day = '".$i."'"); while( $row = mysql_fetch_assoc( $p_row ) ) { echo $i; echo 'здесь данные'; }
You never should have any queries in a loop. We can do that like this: PHP: <?php // Query $p_row = mysql_query("SELECT p_day, p_number, p_name FROM `pair`"); // Fetching data while($row = mysql_fetch_array($p_row)) { //TODO: printing .... } ?>
http://uni.h16.ru/uni.php nothing changed ничего не изменилось and $p_row = mysql_query("SELECT p_day, p_number, p_name FROM `pair`"); And I can not choose such a request the day И я не могу выбрать в таком запросе день
в массиве дней первый индекс — 1, в цике — 0 С чего бы это? PHP: <?php $where = ' WHERE p_day = 2'; $sql = 'SELECT p_day, p_number, p_name FROM pair'.$where; ?> Сова была очень умная, она даже умела писать слово «суббота»
Luge Я немного вас не понял, как мне сделать что бы в цыкле первый индекс был 1? # for( $i = 1; $i <= 7; ++$i ) # { # } i принимает значение от 1 до 7 последовательно, дальше идет while в котором в день идет выборка по $i, и все что происходит в нутри for работает нормально, но вот в нутри while начинается ошибка. Как вы видете во вторник переносит 1111, в среду 222 и т.д. а должно было быть в понедельник 1111 и т.д. и в конце рисуется одна лишняя таблица.
ай, лень Как-нибудь так. В первом приближении. Допилите там напильником где надо [sql]CREATE TABLE IF NOT EXISTS `shedule` ( `sde_id` int(10) unsigned NOT NULL auto_increment, `sde_day_id` tinyint(1) NOT NULL, `sde_name` varchar(15) NOT NULL, PRIMARY KEY (`sde_id`), KEY `sde_day_id` (`sde_day_id`) ) ENGINE=InnoDB;[/sql] PHP: <?php $db = new mysqli('localhost','Luge','password','test'); // ... $day = array( 1 => 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье'); $where = ''; if (strtoupper($_SERVER['REQUEST_METHOD']) == 'POST') { if (isset($_POST['day']) && !empty($_POST['day'])) { $where = ' WHERE sde_day_id = '.(int)$_POST['day']; } } $sql = 'SELECT sde_day_id, sde_name FROM shedule'; $order = ' ORDER BY sde_day_id ASC'; echo $sql .= empty($where)?$order:$where; $res = $db->query($sql); $rows = array(); if ($res) { while($row = $res->fetch_assoc()) { $rows[$row['sde_day_id']][] = $row; } } echo '<pre>'.print_r($rows,1).'</pre>'; ?> <form method="post"> <select name = "day"> <?php foreach($day as $k => $v):?> <option value = "<?php echo (int)$k?>"><?php echo htmlspecialchars($v)?></option> <?php endforeach?> </select> <input type="submit" name="go" value="go" /> </form>
Несовсем то. Мне просто нужно сделать вот такую такбличку как в html http://uni.h16.ru/ но через бд, в бд я данные загнал. Теперь пытаюсь что бы не 7 отдельных делать цыклов, а 1 цыкл, который выбирает дни и в нем еще 1 цыкл который выбирает расписания в нутри себя. А то что вы предлагаете эт совсем другое у меня идет: PHP: Масив (ПН-ВС) Фор и=1, до и меньше равно 7, И++ { Пишем название дня Выборка по конкретному дню = равен текущему Запускаем цыкл { выводим расписание на этот день } } В итоге мы получаем 7 дней и расписание по каждому, в одной таблице.
Угу, причем явно недоступное для понимания. А предлагал он всего лишь выбрать данные по всем дням в одном единственном цикле.
Simpliest угу, а я этого делать не хочу. Так как такой результат я получить не смогу http://uni.h16.ru/ ведь данные заполняются в таблицу цыклом, а на каждый день своя таблица. А 7 цыклов просто делать не хочу, по этому у меня и выходит выборка в цыкле.
Выбрал все занятия для всех дней одним запросом в одном цикле вывел данные. Хотя не, вру, в одном день, а во втором, вложенном, занятия для конкретного дня или обязательно делать один и тот же запрос для каждого дня недели?
Apple он про таблицы в html, а не в БД Тут в базе от силы две. Дни недели (а оно нужно вообще?) и занятия
Luge тут ваще 1 таблица Угу расписание на неделю со своими плюсами и минусами. 1 оно может менятся, дополнятся изменятся. В университетах часто нужно расписание на всю неделю, а не выбор по конкретному дню, при выборе было бы намного проще. Мы делаем просто автономную таблицу для потока, это 5 групп, у каждой группы свое расписание и своя жизнь. Здесь в конце каждой недели данные помеченые буквой П, переносятся за счет крона на след неделю, те которые буквой В, запрашиваются в админке на перенос, и если потверждения либо отмены такого в конце недели небыло переносятся на след. Это некий планировщик для группы, так как по мимо обычного расписания мы можем добавлять свои мероприятия и т.д. А согласитесь проще просмотреть сразу расписание на всю неделю, чем искать на каждый день, а в друг группой собрались пойти в Кино, и я считал что это будет самый просто момент с масивом в масиве, а оказалось что в бивание даных через админку по типу чч:мм начала пары и чч:мм конец пары по принцыпу inplode : оказалось гораздо легче, чем эта не понятная проблема
Уже давно ответили. http://www.php.ru/forum/viewtopic.php?p=201204#201204 А проблема еще в том, что Вы не знаете где проблема. Посмотрите данные в базе. И как туда их заносили.
Simpliest В базе правельные данные, занасил инсертами через sql Проблема у меня в том, что расписание идет сдвинуто на 1 день. В примере на который вы дали ссылку не выходит такой список. Понедельник 1. пара и инфо 2. пара 3. пара 4. пара Вторник 1. пара 2. пара 3. пара Четверг 1. пара 2. пара Пятница Субота Воскресенье Интересует что в бд, пожалусто: [sql]-- -- Структура таблицы `pair` -- CREATE TABLE `pair` ( `p_id` int(11) NOT NULL auto_increment, // айдишник `p_day` smallint(1) unsigned NOT NULL default '0', // день(пн-вс 1-7) `p_number` tinyint(3) unsigned NOT NULL default '0', // номер пары `p_name` varchar(70) NOT NULL default '', // название `p_start` varchar(5) NOT NULL default '', // начало `p_end` varchar(5) NOT NULL default '', // конец `p_tagging` char(2) NOT NULL default '', // статус `p_place` varchar(70) NOT NULL default '', // местонахождения `p_lecturer` varchar(70) NOT NULL default '', // инфа о преподаватели\организаторе `p_info` varchar(168) NOT NULL default '', // инфа о паре\мероприятии `p_categories` varchar(70) NOT NULL default '', // категория PRIMARY KEY (`p_id`) ) TYPE=MyISAM AUTO_INCREMENT=11 ; -- -- Дамп данных таблицы `pair` -- INSERT INTO `pair` (`p_id`, `p_day`, `p_number`, `p_name`, `p_start`, `p_end`, `p_tagging`, `p_place`, `p_lecturer`, `p_info`, `p_categories`) VALUES (1, 1, 1, 'Математика', '8:00', '9:20', '1', 'Корпус: 1 Кабинет: 22', 'Василий И. В.', 'ЯЯ', '2'), (2, 1, 2, 'Биология', '9:40', '11:00', '1', 'Корпус: 1 Кабинет: 22', 'Василий И. В.', 'ЯЯ', '2'), (3, 1, 3, 'Физика', '11:20', '12:40', '1', 'Корпус: 1 Кабинет: 22', 'Василий И. В.', 'ЯЯ', '2'), (4, 1, 4, 'Химия', '13:00', '14:20', '1', 'Корпус: 1 Кабинет: 22', 'Василий И. В.', 'ЯЯ', '2'), (5, 2, 1, 'Математика', '8:00', '9:20', '1', 'Корпус: 1 Кабинет: 22', 'Василий И. В.', 'ЯЯ', '2'), (6, 2, 2, 'Физ. Культура', '9:40', '11:00', '1', 'Корпус: 1 Кабинет: 22', 'Василий И. В.', 'ЯЯ', '2'), (7, 2, 3, 'Труд', '11:20', '12:40', '1', 'Корпус: 1 Кабинет: 22', 'Василий И. В.', 'ЯЯ', '2'), (8, 3, 1, 'Крим. Право', '8:00', '9:20', '1', 'Корпус: 1 Кабинет: 22', 'Василий И. В.', 'ЯЯ', '2'), (9, 3, 2, 'Микроекономика', '9:40', '11:00', '1', 'Корпус: 1 Кабинет: 22', 'Василий И. В.', 'ЯЯ', '2'), (10, 4, 1, 'Начерталка', '8:00', '9:20', '1', 'Корпус: 1 Кабинет: 22', 'Василий И. В.', 'ЯЯ', '2'); [/sql]
как меня радуют такие вещи вы изобретаете свой велосипед, который выглядит как табуретка, и удивляетесь почему он не едет?
VItalijs я не изобретаю велосипед, я с талкнулся с проблемой здвика на 1 при цыкле и решил узнать может на неё есть нормальное решение дебы не делать несколько по цыклу на каждый день.
зачем вы в цикле делаете запросы к базе? http://www.php.ru/forum/viewtopic.php?p=201204#201204 чем вас не устраивает это решение, если оно выведет всю информацию как вам надо?
VItalijs потому что это решение отображается по другому. Я уже об этом писал. А мне нужно что бы я вот так мог вывести http://uni.h16.ru/ названия дня и все занятия которые внем есть. Понедельник 1. пара и инфо 2. пара 3. пара 4. пара Вторник 1. пара 2. пара 3. пара Четверг 1. пара 2. пара Пятница Субота Воскресенье А не отдельно Понедельник = такието пары, выбираю вторник, такие то пары Короче ясно, пока нету решения придется тупо 7 цыклов одинаковых использовать.
Simpliest а без оскорблений просто помочь решить, так как код у меня хоть и корявый но рабочий, я не прогил года 3 сейчас в споминаю, хочу сначала сделать что бы работало потом на классы перевести и шаблоны. Но для начала нужно понимание вернуть, в моем коде проблема в том что даные идут с сдвигом на день. А в примере который вы все так расхваляете сделана выборка конкретно на 1 день который выбрать. А помочь я так понимаю вы сами не можете.