root666
Newbie-
Posts
6 -
Joined
-
Last visited
root666's Achievements
Explorer (1/14)
0
Reputation
-
Не, там такое точно не потребуется Ещё раз спасибо
-
Хехе, все получилось просто ты немного исковеркал формат даты $dmy = $year .''. $month .''. $days;Вместо $dmy = $days.''.$month.''.$year;Спасибо тебе огромное очень выручил!
-
С одной стороны все работает, ошибок нет, а с другой ну не работает в смысле того что время не убавляется Мой вариант с правками ничего не меняет (время не убирается) Второй вариант не выводит время вообще, я все таки скланяюсь к первому варианту т.к там хоть что то выводится. В принципе мне все что нужно это вывести массив занятого времени за пределы цикла while а там я дальше думаю разберусь Вот проблемная часть кода while($eetime = mysql_fetch_array($etime)) {$test[] = $eetime['time'];} var_dump($test); // Как вывести массив правильно?// Пробовал так $test[0] - ерунда// foreach ($test as $test2) { echo $test2; } - вроде и выводит но очень странно, например на 3 число есть запись на время с id 4 и если кликать на числа до 3 числа то выходит Invalid argument а если после 3 числа то выводится id времени этого числа то есть цифра 4, потом на 14 число есть 2 записи с id времени 1 и 5, после 14 числа куда не кликни выводится уже 415 то есть сумма всех записей в таблице, объясните пожалуйста что не так?Если можно как то вывести этот массив чтобы он не брал значения со всех дат как это получается сейчас а брал только по конкретному совпадению было бы все хорошо, но не смотря на то что это чисто программно не возможно чтобы в запросе были значения с других дат т.к в запросе $dmy = $days.''.$month.''.$year; // Выбранная дата$etime = mysql_query("SELECT * FROM employ WHERE date=$dmy");И за пределы выбранной даты скрипт уйти не может это проверялось без цикла while т.е $eetime = mysql_fetch_array($etime);echo $eetime['time'];Все выводится правильно, но как только закутываешь в массив в цикле начинают появляться левые значения т.е в этом случае while($eetime = mysql_fetch_array($etime)) {$test[] = $eetime['time'];} var_dump($test); // Как вывести массив правильно?// Пробовал так $test[0] - ерунда// foreach ($test as $test2) { echo $test2; } - вроде и выводит но очень странно, например на 3 число есть запись на время с id 4 и если кликать на числа до 3 числа то выходит Invalid argument а если после 3 числа то выводится id времени этого числа то есть цифра 4, потом на 14 число есть 2 записи с id времени 1 и 5, после 14 числа куда не кликни выводится уже 415 то есть сумма всех записей в таблице, объясните пожалуйста что не так?
-
Спасибо за помощь. Таблицы простые, time содержит 2 значения это сообственно time (указанное время например 16:30) и id (уникальный интендификатор) Структура таблицы time time id 12:00 1 13:00 2 и т.д Таблица employ содержит занятое время на конкретное число всего 3 значения date (формат даты аля 14032014), time (уникальный интендификатор с таблицы time) и id, всё, больше ничего нету. Структура таблицы employ date time id 14032014 2 (т.е 13:00) 1 (уникальный интендификатор) Логика простая, когда пользователь кликает на дату на календаре в ход идет переменная $dmy (d - дата, m - месяц, y - год, формата 14032014) которая через условие WHERE date=$dmy ищет в таблице employ все айдишнеки time, вот ещё раз код $ttime = mysql_query("SELECT * FROM time"); // Это выборка по всему времени, то есть оно генерирует все варианты времени предложенные пользователю из таблицы time (12:00, 13:00)$dmy = $days.''.$month.''.$year; // Это число выбранное пользователем, на которое он кликнул$etime = mysql_query("SELECT * FROM employ WHERE date=$dmy"); //Запрос который выводит из таблицы employ (занятое время) варианты уже забронированного времени на конкретную дату на которую кликнул пользователь$eetime = mysql_fetch_array($etime); // Ну это думаю понятноwhile($ttimes = mysql_fetch_array($ttime)) // Этот цикл создает выборку из базы всего времени которое вбито (т.е 12:00, 13:00 и т.д){if($eetime['time'] != $ttimes['id']) // Условие которое при совпадении id времени на конкретную дату с вариантами предложенного общего времени из таблицы time, т.е если на число $dmy в таблице employ id времени из общей таблицы time будет занято то предложенное время из таблицы time не выводится{echo '<input type="checkbox" id="check1" name="time" value="'.$ttimes['time'].'"> <label for="check1">'.$ttimes['time'].'</label><br>'; // Это вывод всего времени из таблицы time}}Всё бы ничего если бы переменная $eetime['time'] из таблицы занятости времени employ выводила не последнее значение а как бы обходила циклом while и в условии if($eetime['time'] != $ttimes['id']) сравнивала со всеми значениями занятого времени а не с последним, но когда вписываешь цикл while в цикл while который выводит все вписанное время то получается полная фигня
-
Это понятно, спасибо конешн, но если например я напишу так while($eetime = mysql_fetch_array($etime)){$eetime['time'];}То есть в цикле то все равно выводится последнее значение а не все, я так понимаю это нужно записать в начале в массив а потом уже с этим массивом работать, не подскажите как это правильно сделать а то я как не пробовал ничего не выходит Спасибо! А не подскажешь как это теперь практически использовать, т.е в коде, а то я сам ставлю и выходит ошибка, а что это за префиксы "tm"?
-
Здравствуйте помогите пожалуйста, есть календарь, при клике на число всплывает окно с предложением выбрать время на определенный день, вариантов времени штук для дня 10, например 10:15, 12:20 и т.д Создал таблицу для учета занятости времени с двумя ячейками day,time day - число time - время Соответственно если в условиях к определенному числу время занято то оно просто не предлагается для выбора (это видно в коде) но я сталкнулся с такой проблемой что выводится только последнее время, а не все которые заняты в этот день Вот таблица Дата Время 14032014 | 1214032014 | 11 14032014 | 16 Это все конечно решается while, но это все и так уже находится в этом цикле, а два цикла дают левый результат $ttime = mysql_query("SELECT * FROM time"); // Все варианты времени while($ttimes = mysql_fetch_array($ttime)) // выводим время циклом { $dmy = $days.''.$month.''.$year; // сегодняшняя дата $etime = mysql_query("SELECT * FROM employ WHERE date=$dmy"); // смотрим все значения с указанной датой $eetime = mysql_fetch_array($etime); // ВОТ КАК ЗДЕСЬ СДЕЛАТЬ ТАК ЧТОБЫ БЕЗ ЦИКЛА WHILE МОЖНО БЫЛО ПРОЙТИСЬ ПО ВСЕМ ЗНАЧЕНИЯМ? if($eetime['time'] == $ttimes['id']) { } // если время уже занята в этот день то ничего не выводим else { echo '<input type="checkbox" id="check1" name="time" value="'.$ttimes['time'].'"> <br>'; // если свободно то предлагаем записатся } } Помогите пожалуйста