#php #android #sql
#php #Android #sql
Вопрос:
Это мой java-код, и у меня возникла проблема при попытке поймать, когда я беру where user_id = «. $_SESSION[‘user_id’] из запроса, который он выполняет. У меня также есть класс, в котором я сохраняю сеанс user_id
try {
JSONObject jsonResponse = new JSONObject(jsonResult);
JSONArray jsonMainNode = jsonResponse.optJSONArray("Costs");
for (int i = 0; i < jsonMainNode.length(); i ) {
JSONObject jsonChildNode = jsonMainNode.getJSONObject(i);
String number = jsonChildNode.optString("Costs");
String outPut = number "€";
employeeList.add(createEmployee("custos", outPut));
}
} catch (JSONException e) {
Toast.makeText(getActivity(), "Error" e.toString(),
Toast.LENGTH_SHORT).show();
}
SimpleAdapter simpleAdapter = new SimpleAdapter(getActivity(), employeeList,
android.R.layout.simple_list_item_1,
new String[] { "Costs" }, new int[] { android.R.id.text1 });
listView.setAdapter(simpleAdapter);
}
Это мой php-файл
<?php
$host="localhost";
$username="root";
$password="";
$db_name="Parking";
session_start();
$con=mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$sql = "select * from Costs where user_id = ". $_SESSION['user_id'];
$result = mysql_query($sql);
$json = array();
if(mysql_num_rows($result)){
while($row=mysql_fetch_assoc($result)){
$json['Costs'][]=$row;
}
}
mysql_close($con);
echo json_encode($json);
?>
Комментарии:
1. Не используйте устаревшие
mysql_*
функции. Они устарели с PHP 5.5 и полностью удалены в PHP 7. Они также небезопасны. Вместо этого используйте MySQLi или PDO.2. Итак, что происходит, когда у вас есть WHERE в вашем запросе? Сообщение об ошибке? Пустой ответ? Вы проверили, что на самом
$_SESSION['user_id']
деле содержит что-нибудь?3. Зависит… это заставит вас переписать ваш DB-код, что на самом деле может изменить ситуацию. Например, использование подготовленных операторов вместо объединения вашего запроса.
4. Он перехватит исключение и сообщит, что исключение JSON:type.lang . Строка не может быть преобразована в JSONObject. Я сохраняю идентификатор пользователя здесь, если (isset($check)){session_start(); $_SESSION[‘user_id’] = $check[‘user_id’]; echo «user_id»;
5. Где вы это делаете? Я не вижу этого в коде, с которым у вас возникли проблемы. Зарегистрируйте свою
$sql
переменную после ее создания и проверьте, правильно ли она выглядит или нет.