PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (3): [1] 2 3 »

> Найдено сообщений: 43
arsen4ik Отправлено: 29 Марта, 2014 - 14:36:41 • Тема: вывести переменную за пределы цикла while • Форум: Вопросы новичков

Ответов: 11
Просмотров: 1314
Спасибо, помогли на другом форуме точно таким же решением.
Ещё раз спасибо!
arsen4ik Отправлено: 28 Марта, 2014 - 12:50:33 • Тема: вывести переменную за пределы цикла while • Форум: Вопросы новичков

Ответов: 11
Просмотров: 1314
Цитата:
arsen4ik, вы прикалываетесь? Скопируйте код который я дал, если не понимаете почему while не должен продолжаться в вашем коде.
arsen4ik пишет:
Спасибо, поменял INT на TEXT мало чего изменилось.

*лицовруках*
Раскрою секретную информацию(но только ж вы никому. Даже под пытками. Ок?) в БД есть специальные типы полей для хранения даты и времени. А еще есть специальные функции для работы с датами.

Не знал, но смысл уже что то менять если сделано как сделано.
Этот код

Выводит
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. array(6) { [0]=> string(8) "14032014" ["date"]=> string(8) "14032014" [1]=> string(1) "1" ["time"]=> string(1) "1" [2]=> string(1) "2" ["id"]=> string(1) "2" } array(6) { [0]=> string(8) "14032014" ["date"]=> string(8) "14032014" [1]=> string(1) "4" ["time"]=> string(1) "4" [2]=> string(1) "3" ["id"]=> string(1) "3" } bool(false) bool(false)
  3.  

На занятое число со айдишнеками 1 и 4
И
CODE (htmlphp):
скопировать код в буфер обмена
  1. bool(false) bool(false) bool(false) bool(false)

На незанятое число
arsen4ik Отправлено: 28 Марта, 2014 - 12:16:50 • Тема: вывести переменную за пределы цикла while • Форум: Вопросы новичков

Ответов: 11
Просмотров: 1314
Цитата:
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 мало чего изменилось.

Да, все выводится верно но опять же только первое значение.
Всё же элементарно, надо записать в массив уже в цикле все эти значения а затем вывести за пределы цикла и разобрать массив. Вот тут начинаются чудеса, откуда то берутся значения там где их быть не должно, конкретно эта часть кода
PHP:
скопировать код в буфер обмена
  1.  
  2. while($eetime = mysql_fetch_array($etime))
  3.  
  4. {
  5. $test[] = $eetime['time'];
  6. }
  7.  
  8. var_dump($test); // Как вывести массив правильно?
  9. // Пробовал так $test[0] - ерунда
  10. // foreach ($test as $test2) { echo $test2; } - вроде и выводит но очень странно, например на 3 число есть запись на время с id 4 и если кликать на числа до 3 числа то выходит Invalid argument а если после 3 числа то выводится id времени этого числа то есть цифра 4, потом на 14 число есть 2 записи с id времени 1 и 5, после 14 числа куда не кликни выводится уже 415 то есть сумма всех записей в таблице, объясните пожалуйста что не так?
  11.  
arsen4ik Отправлено: 27 Марта, 2014 - 19:45:26 • Тема: вывести переменную за пределы цикла while • Форум: Вопросы новичков

Ответов: 11
Просмотров: 1314
IllusionMH пишет:
arsen4ik, подозреваю что это скорее совпадение с последним элементом цикла, чем неправильная работа массива.
Несколько записей просто через var_dump(mysql_fetch_array($etime)) выведите.
Как выглядит дата в бд и в переменной? Подозреваю что вы сравниваете неправильные типы данных.

Дата одинаково как в таблице так и в переменной $dmy - формат 27032014, выборка ведь точная, т.е это не LIKE где условие WHERE может вывести 4032014 как за 14032014 например.
Вот нужно например вывести 21 число марта 2014 года т.е 21032014
На эту дату нет никаких записей в таблице employ (в которую записываются занятое время на выбранную дату)
Но тем не менее var_dump выводит
PHP:
скопировать код в буфер обмена
  1. array(4) { [0]=> string(1) "5" [1]=> string(1) "1" [2]=> string(1) "4" [3]=> string(1) "4" }

Хотя записей на эту дату нет, понимаете?
Потому что SELECT * FROM employ WHERE date=$dmy где $dmy со 100% гарантией выбранная дата т.е 21 число.
Откуда тогда берутся эти числа?
Вот код сейчас
PHP:
скопировать код в буфер обмена
  1.  
  2. $ttime = mysql_query("SELECT * FROM time"); // Вот все время которое предлагается пользователю
  3.  
  4. $dmy = $days.''.$month.''.$year; // Вот выбранная дата
  5. $etime = mysql_query("SELECT * FROM employ WHERE date=$dmy"); // Вот условие при котором в таблице employ которая отвечает за занятость времени на выбранную дату ищутся значения которые совпадают с переменной $dmy (везде формат 27032014)
  6.  
  7. while($eetime = mysql_fetch_array($etime)) // Вот код который обходит массивчик с занятым временем
  8. {
  9. $test[] = $eetime['time']; // Вот запись в массив
  10. }
  11.  
  12. var_dump($test); // Вот вывод массива, ну какого х... выводятся левые значения? Как это возможно то? Если SELECT * FROM employ WHERE date=$dmy
  13.  
  14. while($ttimes = mysql_fetch_array($ttime))
  15. {
  16. if($eetime['time'] != $ttimes['id'])
  17. {
  18. echo '<input type="checkbox" id="check1" name="time" value="'.$ttimes['time'].'"> <label for="check1">'.$ttimes['time'].'</label><br>';
  19. }
  20.  
  21. }
  22.  
arsen4ik Отправлено: 27 Марта, 2014 - 18:53:19 • Тема: вывести переменную за пределы цикла while • Форум: Вопросы новичков

Ответов: 11
Просмотров: 1314
esterio пишет:
$data = array();
while($eetime = mysql_fetch_array($etime))
{
$data[] = $eetime;
}

var_dump($data);

Спасибо!
Но я ваще нихрена не понимаю, смотри, у меня скрипт
PHP:
скопировать код в буфер обмена
  1.  
  2. $etime = mysql_query("SELECT * FROM employ WHERE date=$dmy");
  3.  
  4. while($eetime = mysql_fetch_array($etime))
  5. {
  6. $test[] = $eetime['time'];
  7. }
  8. echo $dmy;
  9. var_dump($test);
  10.  

Соответсвенно я выбираю число, это хорошо видно в запросе SQL WHERE date=$dmy, дальше переменной $dmy которая содержит выбранную дату цикл уйти не может!
Это же нереально, ведь выборка идет только по текущему числу
То есть
PHP:
скопировать код в буфер обмена
  1.  
  2. $etime = mysql_query("SELECT * FROM employ WHERE date=$dmy");
  3.  
  4. while($eetime = mysql_fetch_array($etime))
  5. {
  6. $test = $eetime['time'];
  7. }
  8.  
  9. echo $test;
  10.  

Если выводить так то все работает в пределах запроса WHERE и не выходит за рамки выбранного числа
Но какого хрена когда я вывожу первый запрос с массивами на экран выводятся за все дни?
КАК ТАКОЕ ВООБЩЕ ВОЗМОЖНО? Ведь в запросе строго указано, не через LIKE а именно на точное совпадение что нужно выводить именно на конкретную дату, как он может выводить и другие даты?
КАК? Мозги кипят, пацаны помогите разобратся а то я ж свихнусь нахрен от таких раскладов
(Добавление)
Ну или вот например, вывожу не через var_dump а просто $test[0] всё равно берутся числа с других дат не указанных в запросе WHERE, понимаете? Я уже и переменные проверял и запросы, все проверил, один хрен как только записываю в массив начинаются чудеса, запрос WHERE такое ощущение что не работает вообще, хотя как на него может влиять запись в массив не понимаю
arsen4ik Отправлено: 27 Марта, 2014 - 12:41:23 • Тема: вывести переменную за пределы цикла while • Форум: Вопросы новичков

Ответов: 11
Просмотров: 1314
Народ помогите с моим говнокодом Улыбка
Мне нужно вывести все значения переменной $eetime['time'] за пределы цикла
PHP:
скопировать код в буфер обмена
  1.  
  2. while($eetime = mysql_fetch_array($etime))
  3. {
  4. $eetime['time'];
  5. }
  6.  

Как я понял надо записать в массив а затем этот массив выводить уже за циклом, но как только я не пробовал так и не получилось ничего
arsen4ik Отправлено: 26 Марта, 2014 - 21:23:09 • Тема: Цикл в цикле • Форум: Вопросы новичков

Ответов: 1
Просмотров: 112
Всем привет помогите пожалуйста я новичек, у меня на сайте есть календарь, при клике на число всплывает окно с предложением выбрать время на определенный день, вариантов времени штук для дня 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>'; // если свободно то предлагаем записатся
}
}
Помогите пожалуйста
arsen4ik Отправлено: 03 Мая, 2013 - 19:08:31 • Тема: Не работает загрузка файлов • Форум: Вопросы новичков

Ответов: 3
Просмотров: 130
Это из за ограничений дибилы 2 мб ограничение поставили
arsen4ik Отправлено: 03 Мая, 2013 - 18:47:40 • Тема: Не работает загрузка файлов • Форум: Вопросы новичков

Ответов: 3
Просмотров: 130
Хочу загрузить 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']);
первый загружает а второй нет
Помогите пожалуйста
arsen4ik Отправлено: 03 Февраля, 2013 - 03:32:53 • Тема: Авторизация через facebook • Форум: Вопросы новичков

Ответов: 8
Просмотров: 1069
Приветик)
Извини что не много не по теме, но вот я впервые тоже работаю с OAuth, на удивление с авторизацией ВКонтакте все получилось на ура тоже))
Но вот на фейсбуке одни ошибки, причем на стороне фейсбука потому что я делаю всё правильно 100%.
Вывод что наверное проблема с фейсбук, и там много подводных камней.
Нужно спрашивать у людей которые это знают но как видишь инфой никто не делится(((
arsen4ik Отправлено: 29 Января, 2013 - 20:40:54 • Тема: Помогите получит значение от сервера • Форум: HTTP и PHP

Ответов: 0
Просмотров: 672
Нужно для Mail OAuth. Вообще не понятно о чем идет речь, может кто сталкивался с этой проблемой, хотелось бы увидеть хотя бы примерный скрипт. Спасибо
Цитата:
Если вы указали response_type=code

В этом случае результат авторизации выозвращается в виде GET-параметров, чтобы вы сразу имели к ним доступ с сервера, например, так:

http://example.com/oauth/receiver?
code=cfb65617ee147446cb17fba30b2 fdc5e

Обменяйте полученный авторизационный код на идентификатор сессии, который вы сможете использовать для доступа к REST API. Для этого с сервера сделайте следующий POST-вызов на адрес https://connect.mail.ru/oauth/token:

> POST /oauth/token HTTP/1.1
> Host: connect.mail.ru
> Accept: */*
> Content-Length: 186
> Content-Type: application/x-www-form-urlencode d
>
> client_id=464119&
client_secret=ac7fd2cc742c70a707cad3f6b2ca1c89&
grant_type=authorization_code&
code=000ff8627d2d79b60ebdaf004f9a68aa&
redirect_uri=http://example[dot]com/oauth/receiver

В теле POST-запроса должны находиться данные в формате application/x-www-form-urlencode d (все указанные параметры обязательны):

client_id — идентификатор вашего сайта
client_secret — секретный ключ вашего сайта, выданный при регистрации
grant_type — для данного случая всегда authorization_code
code — авторизационный код, который вы только что получили
redirect_uri — адрес вашей принимающей страницы, который вы указывали при обращении к /oauth/authorize (параметры, добавленные после авторизации, например, code, указывать не нужно)

В ответ на этот запрос вы получите примерно такой результат:

{
"refresh_token":"a45529ac9bf6b32be761975c043ef9e3",
"expires_in":86400,
"access_token":"56a59ff5d5cf9645b872750454d8a27b",
"x_mailru_vid":"1324730981306483817"
}

Значение access_token — это идентификатор сессии, необходимый для работы с REST API.
arsen4ik Отправлено: 29 Января, 2013 - 20:37:41 • Тема: Закрытие страницы от просмотра • Форум: Вопросы новичков

Ответов: 15
Просмотров: 615
А лучше сделать на кукисах, сессия она может затерятся где нибудь, например на тех страницах где она не прописана.
arsen4ik Отправлено: 29 Января, 2013 - 20:34:55 • Тема: информация после # (якоря) • Форум: Вопросы новичков

Ответов: 15
Просмотров: 870
Да при пролистовании фоток например, как это сделано ВКонтакте. Но при получении токена это имхо извращение
arsen4ik Отправлено: 29 Января, 2013 - 20:25:43 • Тема: Как использовать обработчик? • Форум: Вопросы новичков

Ответов: 8
Просмотров: 332
nikola_12 пишет:
А как сделать чтобы и логин, и пароль были постоянными (неизменчивыми), и не были видны в исходном коде... это логин и пароль от сервиса...

Это невозможно сделать, логин и пароль может впалить любой человек в исходной коде.
Чтобы они были постоянные поменяй
CODE (htmlphp):
скопировать код в буфер обмена
  1. <input type="text" name="login">
  2. <input type="password" name="password">

на
CODE (htmlphp):
скопировать код в буфер обмена
  1. <input type="hidden" name="login" value="логин">
  2. <input type="hidden" name="password" value="пароль">

Косяк их сервиса, когда я пользовался робокассой там тоже нужно было передавать параметры логина и пароля, только логин и пароль от входа в панель управления и логин пароль для приема платежей были разные.
Посмотри может разработчики этого сервиса тоже используют примерно ту же технологию.
Может нужно передавать не логин и пароль от входа в админку, а какой нибудь специальный логин и пароль для авторизации именно отправки СМС.
arsen4ik Отправлено: 29 Января, 2013 - 20:18:39 • Тема: Как вывести в адресной строке то что после знака # • Форум: Вопросы новичков

Ответов: 4
Просмотров: 240
Да, этот знак # - оказывается означает якорь для JS программистов, и он не передается на сервер, то есть получить его PHP скриптов невозможно. Тему можно закрывать.

Страниц (3): [1] 2 3 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB