arsen4ik, вы прикалываетесь? Скопируйте код который я дал, если не понимаете почему while не должен продолжаться в вашем коде.
arsen4ik пишет:
Спасибо, поменял INT на TEXT мало чего изменилось.
*лицовруках*
Раскрою секретную информацию(но только ж вы никому. Даже под пытками. Ок?) в БД есть специальные типы полей для хранения даты и времени. А еще есть специальные функции для работы с датами.
Не знал, но смысл уже что то менять если сделано как сделано.
Этот код
arsen4ik, а какого типа колонка date? Не пробовали хранить в поле даты дату, а не число?
И я говорил сделать так
PHP:
скопировать код в буфер обмена
var_dump(mysql_fetch_array($etime));
var_dump(mysql_fetch_array($etime));
var_dump(mysql_fetch_array($etime));
var_dump(mysql_fetch_array($etime));
чтобы вы убедились, что массив и вынос его за цикл не должен влиять на результат.
Спасибо, поменял INT на TEXT мало чего изменилось.
Да, все выводится верно но опять же только первое значение.
Всё же элементарно, надо записать в массив уже в цикле все эти значения а затем вывести за пределы цикла и разобрать массив. Вот тут начинаются чудеса, откуда то берутся значения там где их быть не должно, конкретно эта часть кода
// foreach ($test as $test2) { echo $test2; } - вроде и выводит но очень странно, например на 3 число есть запись на время с id 4 и если кликать на числа до 3 числа то выходит Invalid argument а если после 3 числа то выводится id времени этого числа то есть цифра 4, потом на 14 число есть 2 записи с id времени 1 и 5, после 14 числа куда не кликни выводится уже 415 то есть сумма всех записей в таблице, объясните пожалуйста что не так?
arsen4ik, подозреваю что это скорее совпадение с последним элементом цикла, чем неправильная работа массива.
Несколько записей просто через var_dump(mysql_fetch_array($etime)) выведите.
Как выглядит дата в бд и в переменной? Подозреваю что вы сравниваете неправильные типы данных.
Дата одинаково как в таблице так и в переменной $dmy - формат 27032014, выборка ведь точная, т.е это не LIKE где условие WHERE может вывести 4032014 как за 14032014 например.
Вот нужно например вывести 21 число марта 2014 года т.е 21032014
На эту дату нет никаких записей в таблице employ (в которую записываются занятое время на выбранную дату)
Но тем не менее var_dump выводит
Хотя записей на эту дату нет, понимаете?
Потому что SELECT * FROM employ WHERE date=$dmy где $dmy со 100% гарантией выбранная дата т.е 21 число.
Откуда тогда берутся эти числа?
Вот код сейчас
$ttime=mysql_query("SELECT * FROM time");// Вот все время которое предлагается пользователю
$dmy=$days.''.$month.''.$year;// Вот выбранная дата
$etime=mysql_query("SELECT * FROM employ WHERE date=$dmy");// Вот условие при котором в таблице employ которая отвечает за занятость времени на выбранную дату ищутся значения которые совпадают с переменной $dmy (везде формат 27032014)
while($eetime=mysql_fetch_array($etime))// Вот код который обходит массивчик с занятым временем
{
$test[]=$eetime['time'];// Вот запись в массив
}
var_dump($test);// Вот вывод массива, ну какого х... выводятся левые значения? Как это возможно то? Если SELECT * FROM employ WHERE date=$dmy
Соответсвенно я выбираю число, это хорошо видно в запросе SQL WHERE date=$dmy, дальше переменной $dmy которая содержит выбранную дату цикл уйти не может!
Это же нереально, ведь выборка идет только по текущему числу
То есть
Если выводить так то все работает в пределах запроса WHERE и не выходит за рамки выбранного числа
Но какого хрена когда я вывожу первый запрос с массивами на экран выводятся за все дни?
КАК ТАКОЕ ВООБЩЕ ВОЗМОЖНО? Ведь в запросе строго указано, не через LIKE а именно на точное совпадение что нужно выводить именно на конкретную дату, как он может выводить и другие даты?
КАК? Мозги кипят, пацаны помогите разобратся а то я ж свихнусь нахрен от таких раскладов (Добавление)
Ну или вот например, вывожу не через var_dump а просто $test[0] всё равно берутся числа с других дат не указанных в запросе WHERE, понимаете? Я уже и переменные проверял и запросы, все проверил, один хрен как только записываю в массив начинаются чудеса, запрос WHERE такое ощущение что не работает вообще, хотя как на него может влиять запись в массив не понимаю
Всем привет помогите пожалуйста я новичек, у меня на сайте есть календарь, при клике на число всплывает окно с предложением выбрать время на определенный день, вариантов времени штук для дня 10, например 10:15, 12:20 и т.д
Создал таблицу для учета занятости времени с двумя ячейками day,time
day - число
time - время
Соответственно если в условиях к определенному числу время занято то оно просто не предлагается для выбора (это видно в коде) но я сталкнулся с такой проблемой что выводится только последнее время, а не все которые заняты в этот день
Вот таблица
Дата Время
14032014 | 12
14032014 | 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>'; // если свободно то предлагаем записатся
}
}
Помогите пожалуйста
Хочу загрузить 2 разных файла в 2 разные папки
move_uploaded_file($_FILES['img']['tmp_name'][0], '../img/'.$_FILES['img']['name']);
move_uploaded_file($_FILES['flw']['tmp_name'][1], '../game/'.$_FILES['flw']['name']);
первый загружает а второй нет
Помогите пожалуйста
Приветик)
Извини что не много не по теме, но вот я впервые тоже работаю с OAuth, на удивление с авторизацией ВКонтакте все получилось на ура тоже))
Но вот на фейсбуке одни ошибки, причем на стороне фейсбука потому что я делаю всё правильно 100%.
Вывод что наверное проблема с фейсбук, и там много подводных камней.
Нужно спрашивать у людей которые это знают но как видишь инфой никто не делится(((
Обменяйте полученный авторизационный код на идентификатор сессии, который вы сможете использовать для доступа к REST API. Для этого с сервера сделайте следующий POST-вызов на адрес https://connect.mail.ru/oauth/token:
В теле POST-запроса должны находиться данные в формате application/x-www-form-urlencode d (все указанные параметры обязательны):
client_id — идентификатор вашего сайта
client_secret — секретный ключ вашего сайта, выданный при регистрации
grant_type — для данного случая всегда authorization_code
code — авторизационный код, который вы только что получили
redirect_uri — адрес вашей принимающей страницы, который вы указывали при обращении к /oauth/authorize (параметры, добавленные после авторизации, например, code, указывать не нужно)
В ответ на этот запрос вы получите примерно такой результат:
Косяк их сервиса, когда я пользовался робокассой там тоже нужно было передавать параметры логина и пароля, только логин и пароль от входа в панель управления и логин пароль для приема платежей были разные.
Посмотри может разработчики этого сервиса тоже используют примерно ту же технологию.
Может нужно передавать не логин и пароль от входа в админку, а какой нибудь специальный логин и пароль для авторизации именно отправки СМС.
Да, этот знак # - оказывается означает якорь для JS программистов, и он не передается на сервер, то есть получить его PHP скриптов невозможно. Тему можно закрывать.