Хочу поделиться своей проблемой... Была задача принимать данные с Ардуинки по gprs и управлять ею же с мобильного приложения... Короче победил, НО КАПЕЦ КАКИМ ГОВЯНЫМ СПОСОБОМ... У меня с ардуино приходят данные, получаю методом ГЕТ и в текстовый документ сохраняются, а браузер и Мускул их не видит.... В итоге сохраняю их в лог.тхт потом извлекаю из него же, парсю, добавляю в БД. С андройда такая же история... только про метод ПОСТ.... Как ни странно все в итоге заработало.... GPRS модуль читает строку, которую вывожу на пхп... для андройда сделал два разных пхп-файла один для формирования команд, другой для вывода инфы из БД... Подскажите пожалуйста
этот отвечает за прием с андройда Код (Text): <?php include("connect.php"); $link=Connection(); $f = fopen("command.csv","w"); //открываем файл для добавления данных $Id=$_POST["Pstr1_id"]; $Rezhim=$_POST["Pstr1_rezhim"]; $Okna=$_POST["Pstr1_okna"]; $Poliv=$_POST["Pstr1_poliv"]; $Nabor=$_POST["Pstr1_nabor"]; $t_ot_o=$_POST["Pstr1_t_ot_o"]; $time1_nab_bak=$_POST["Ptime1_nab_bak"]; $time1_nach_poliv=$_POST["Ptime1_nach_poliv"]; $time1_poliv=$_POST["Ptime1_poliv"]; fwrite($f,"id=$Id&Rezhim=$Rezhim&Okna=$Okna&Poliv=$Poliv&Nabor=$Nabor&t_ot_o=$t_ot_o&time1_nab_bak=$time1_nab_bak&time1_nach_poliv=$time1_nach_poliv&time1_poliv=$time1_poliv"); //запись данных в файл fclose($f); //закрываем файл ?> --- Добавлено --- вот этот за запись из этого текстового файла в БД и отправкой назад на андройд PHP: <?php include("connect.php"); $link=Connection(); $homepage = file_get_contents("command.csv"); parse_str($homepage); $result=mysql_query("SELECT * FROM arduino_loginPassword WHERE login=$id",$link); if (($result)>0){ $query = "INSERT INTO `arduino_command`(`id`, `Rezhim`, `Okna`, `Poliv`, `Nabor`, `t_ot_okon`, `time_nab_bak`, `time_nach_poliv`, `time_poliv`) VALUES ('".$id."','".$Rezhim."','".$Okna."','".$Poliv."','".$Nabor."','".$t_ot_o."','".$time1_nab_bak."','".$time1_nach_poliv."','".$time1_poliv."')"; $result=mysql_query("SELECT * FROM `arduino_out` WHERE id=$id ORDER BY timestamp DESC LIMIT 1",$link); if (mysql_num_rows($result)>0) { $row = mysql_fetch_array($result); do { // print_r("'".$row['id']."'&'"$row['t1']."'&'".$row['t2']."'&'".$row['level']."'&'".$row['twater']."'&'".$row['S_okna']."'&'".$row['S_okna']."'&'".$row['S_poliv']."'&'".$row['S_nabor']."'&'".$row['S_Rezhim']."'"); echo ("id=".$row['id']."&t1=".$row['t1']."&t2=".$row['t2']."&level=".$row['level']."&twater=".$row['twater']."&S_okna=".$row['S_okna']."&S_poliv=".$row['S_poliv']."&S_nabor=".$row['S_nabor']."&S_Rezhim=".$row['S_Rezhim'].""); } while($row = mysql_fetch_array($result)); } else{ print_r("ID not find"); } mysql_query($query,$link); mysql_close($link); } else{ print_r("hui"); } ?> --- Добавлено --- а на андройде по таймеру вызывается второй файл для получения из бд.... , а когда на кнопку нажимаешь "отправить команду", команда идет в первый код --- Добавлено --- На ардуинке подобная схема
Так никто и не подсказал... может хоть ссылочку где почитать... почему я не могу сразу в первом коде вывести данные на экран или занести их в БД $Rezhim=$_POST["Pstr1_rezhim"]; при print_r($Rezhim); пустая строка.... если в БД, то тоже
Прописал var_dump($_POST): в первом коде... после всех $_POST ... отправляю сообщения с эмулятора андройд в ftp command.csv - id=55555&Rezhim=1&Okna=1&Poliv=1&Nabor=1&t_ot_o=22&time1_nab_bak=9:23&time1_nach_poliv=10:25&time1_poliv=1:35 в add.php браузера NULL array(0) { } обновляю браузер add.php в ftp command.csv становится id=&Rezhim=&Okna=&Poliv=&Nabor=&t_ot_o=&time1_nab_bak=&time1_nach_poliv=&time1_poliv= при повторной отправке с эмулятора андройд в ftp command.csv - id=55555&Rezhim=1&Okna=1&Poliv=1&Nabor=1&t_ot_o=22&time1_nab_bak=9:23&time1_nach_poliv=10:25&time1_poliv=1:35
А у тебя какой версии php и mysql. По написанным запросам видно что устаревшие команды используешь. Я просто с такой же проблемой столкнулся что пытался на старой версии сделать запросы а mysql не поддерживал функции которые я использовал. Перешел на новую версию mysql и php т.е. теперь использую команды запроса через mysqli и версия у меня php7. Сразу скажу если будешь переходить на новую БД при выполнении команд mysqli есть нюансы но о них в интернете не пишут. Главный нюанс такой когда подключишься к БД переменную подключения либо делаешь глобальной либо таскай с собой чтоб было минимум подключение к БД.