Jump to content

root666

Newbie
  • Posts

    6
  • Joined

  • Last visited

root666's Achievements

Explorer

Explorer (1/14)

0

Reputation

  1. Не, там такое точно не потребуется Ещё раз спасибо
  2. Хехе, все получилось просто ты немного исковеркал формат даты $dmy = $year .''. $month .''. $days;Вместо $dmy = $days.''.$month.''.$year;Спасибо тебе огромное очень выручил!
  3. С одной стороны все работает, ошибок нет, а с другой ну не работает в смысле того что время не убавляется Мой вариант с правками ничего не меняет (время не убирается) Второй вариант не выводит время вообще, я все таки скланяюсь к первому варианту т.к там хоть что то выводится. В принципе мне все что нужно это вывести массив занятого времени за пределы цикла 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 то есть сумма всех записей в таблице, объясните пожалуйста что не так?
  4. Спасибо за помощь. Таблицы простые, 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 который выводит все вписанное время то получается полная фигня
  5. Это понятно, спасибо конешн, но если например я напишу так while($eetime = mysql_fetch_array($etime)){$eetime['time'];}То есть в цикле то все равно выводится последнее значение а не все, я так понимаю это нужно записать в начале в массив а потом уже с этим массивом работать, не подскажите как это правильно сделать а то я как не пробовал ничего не выходит Спасибо! А не подскажешь как это теперь практически использовать, т.е в коде, а то я сам ставлю и выходит ошибка, а что это за префиксы "tm"?
  6. Здравствуйте помогите пожалуйста, есть календарь, при клике на число всплывает окно с предложением выбрать время на определенный день, вариантов времени штук для дня 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>'; // если свободно то предлагаем записатся } } Помогите пожалуйста
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy