بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
گرفتن اطلاعات فارسی به صورت null
سلام من وقتی میخوام اطلاعات فارسی رو از دیتابیس بخونم و در یک edittext چاپ کنم اطلاعات به صورت null ارسال میشه!تمام روش هایی که واسه فارسی گفته بودین تست کردم جواب نداد
<?php
function connectToDatabase(){
$connection=mysqli_connect("localhost", "zussuodk_root", "Sajad.1373", "zussuodk_api");
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
return $connection;
}
/**
*
*/
$connection = connectToDatabase();
$username=$_REQUEST['username'];
$result = mysqli_query($connection, "SELECT * FROM users WHERE username='$username'");
$output = array();
while($row = mysqli_fetch_array($result)) {
$record = array();
$record['Id'] = $row['Id'];
$record['username'] = $row['username'];
$record['password'] = $row['password'];
$record['email'] = $row['email'];
$record['date'] = $row['date'];
$record['status'] = $row['status'];
$record['authenticationTime'] = $row['authenticationTime'];
$record['userKey'] = $row['userKey'];
$record['IP'] = $row['IP'];
$record['port'] = $row['port'];
$record['wall'] = $row['wall'];
$record['gps'] = $row['gps'];
$record['name'] = $row['name'];
$record['family'] = $row['family'];
$record['picProfile'] = $row['picProfile'];
$output[] = $record;
}
echo json_encode($output);
mysqli_close($connection);
?>
0
0
خواهشا کمکم کنید!من تمام مراحلی که شما گفتین داخل پست ها انجام دادم بنظرم یه مشکل دیگه داره!جالبیش اینه که یه فیلدیش فارسی برمیگرده بقیش null مثلا name فارسی ذخیره میشه و برمیگرده
(11 سال پیش)
0
0
استاد من تاحالا چندتا سوال پرسیدم کسی بلد نبوده اگه میشه حداقل شما کمکم کنید (11 سال پیش)
0
0
به جای شرط مساوی از like استفاده کنین شاید داده های جدولتون با اون چیزی که درخواست میکنین کمی تفاوت داشته باشه که تو به چشم نمیاد. (11 سال پیش)
0
0
نشد!موقع ارسال اطلاعات چجور بفرسم؟چرا null میاد؟ (11 سال پیش)
0
0
کدتون درست به نظر میاد هیچ مشکلی نداره.فقط like خالی کافی نیستا باید در دو طرف متغیرتون هم علامت % بزارین. (11 سال پیش)
0
0
اینکارم کردم نمیشه!اعصابمو ریخته بهم چند روزه (11 سال پیش)
0
0
حالا جالبیش اینجاس کلمه سجاد که وارد میکنی درست کار میکنه!ولی بقیه کلامات null برمیگردونه الان واستون کدای ذخیره اطلاعاتم میزارم (11 سال پیش)
0
0
این پارامتر username که بصورت متود REQUEST میفرستی، مقدارش فارسی هستش یا اینگلیسی ؟ اگر فارسی هستش باید این رو هم در نظر داشته باشید که تمامآ از کاراکترهای فارسی استفاده کنید، و عربی استفاده نشده باشه. و در کل من پیشنهاد میکنم برای username از کلمات انگلیسی استفاده کنید. (11 سال پیش)
0
0
username که اینگلیسی هس!ولی نام و نام خانوتدگی و.. فارسی هس!لطفا کمکم کنید (11 سال پیش)
برای این سوال 5 پاسخ وجود دارد.
پاسخ به سوال
سجاد زهره ای
11 سال پیش
0
0
case "UpdateWall":
if (isset($_REQUEST['wall']))
{
$wall = $_REQUEST['wall'];
$name= $_REQUEST['name'];
$family= $_REQUEST['family'];
$username=$_REQUEST['username'];
$degree=$_REQUEST['degree'];
$sql = "UPDATE users SET wall='$wall', name='$name', family='$family' , degree='$degree' WHERE username='$username'";
error_log("$sql", 3 , "error_log");
if ($db->query($sql))
{
$out = SUCCESSFUL;
}
else {
$out = FAILED;
}
}
else
{
$out = FAILED;
}
break;
پاسخ به سوال
یزدانی
11 سال پیش
0
0
سلام داداش اگه اشتباده نکنم واسه تک کوتیشن هایی هست که گذاشتی کد پایینو جاگزین کن ! اگه جواب داد سریع همینجا اعلام کن !
<?php
function connectToDatabase(){
$connection=mysqli_connect("localhost","zussuodk_root","Sajad.1373","zussuodk_api");
if(mysqli_connect_errno()){
echo "Failed to connect to MySQL: ". mysqli_connect_error();
}
return $connection;
}
/**
*
*/
$connection = connectToDatabase();
$username=$_REQUEST['username'];
$result = mysqli_query($connection,"SELECT * FROM users WHERE username='$username'");
$output = array();
while($row = mysqli_fetch_array($result)){
$record = array();
$record[Id]= $row['Id'];
$record[username]= $row['username'];
$record[password]= $row['password'];
$record[email]= $row['email'];
$record[date]= $row['date'];
$record[status]= $row['status'];
$record[authenticationTime]= $row['authenticationTime'];
$record[userKey]= $row['userKey'];
$record[IP]= $row['IP'];
$record[port]= $row['port'];
$record[wall]= $row['wall'];
$record[gps]= $row['gps'];
$record[name]= $row['name'];
$record[family]= $row['family'];
$record[picProfile]= $row['picProfile'];
$output[]= $record;
}
echo json_encode($output);
mysqli_close($connection);
?>
پاسخ به سوال
سجاد زهره ای
11 سال پیش
0
0
اینم چیزی که داخل خروجی جیسون نشون میده!توجه کنید فیلد name داخل اندروید به صورت سجاد نشون میده
ولی متاسفانه همینجور که میبینید family رو null برگردونده
[{"Id":"16","username":"test1","password":"827ccb0eea8a706c4c34a16891f84e7b"
,"email":"test1@yahoo.com","date":"0000-00-00
00:00:00","status":"0","authenticationTime":"2014-12-07
23:01:10","userKey":"","IP":"5.22.36.113","port":"15145"
,"wall":"love","gps":"","name":"\u0633\u062c\u0627\u062f"
,"family":null,"picProfile":".\/uploads\/profile\/test1\/1408969446959.jpg"}]
از قسمت PHPMyAdmin برید به دیتابیس موردنظرتون، بعد جدول users رو انتخاب کنید. سپس فیلد family رو حذف کنید و دوباره یه فیلد جدید با همین نام (family) بسازید. توجه داشته باشید که با این کار تمام رکوردهای فیلد family حذف میشود. (دلیل این کار این بود که، شاید موقع ساختن فیلد family، یک فاصله اضافی گذاشته شده که برای خوندشون شناسایی نمیشه) (11 سال پیش)
نگاه، شما الان باید دیباگ کنین، واسه دیباگ کردن باید مرحله به مرحله برید جلو. اگر شما یک username بنام sajjad دارید که توسط این username، کوئری رو سرچ میزنید و تمام رکوردها به درستی خوانده میشه، پس مشکلی در کوئری و ساختار کد نویسی و فیلدهای دیتابیس ندارید. پس مشکل شما این هستش که اگر username عوض بشه (مثلا ahmad)، باز هم تمام رکوردها خونده میشه ولی فقط فیلید family مقدارش null برگردونده میشه. خب پس واسه دیباگ میریم به دیتابیس سر میزنیم و فیلدی که username اِش برابر با ahmad هستش رو پیدا میکنیم تا مقداری که داخل family این صف ذخیره شده رو بررسی کنیم. بلفرض یک مقدار فارسی داخلش بود، شما بیاید این مقدار رو به اینگلیسی تغییر بدید و ببینید باز هم null برگردونه میشه یا خیر. (11 سال پیش)
پاسخ به سوال
احمد اسدی
11 سال پیش
+2
0
مشکلی که وجود داشت:
- موقع insert یا گرفتن اطلاعات شما باید در کوئری set_charset رو بروی UTF-8 قرار بدید.
- مقادیری که داخل family ذخیره شده بود، یا خالی بود یا هم اینکه یک رشته ای بنام null ذخیره شده بود :| :|
تموم
پاسخ به سوال
سجاد زهره ای
11 سال پیش
0
0
نگاه این دو کد سمت اندروید بکنید
@Override
public String UpdateProfile(String name,String family,String wall,String degree)
{
String params = "username=" + this.username+
"&password=" + this.password+
"&action=" + "UpdateWall"+
"&wall=" + wall +
"&name="+ name+
"&family="+ family +
"°ree="+ degree +
"&";
String result = socketOperator.sendHttpRequest(params);
Log.i("wall", result);
return result;
}
@Override
public String sendHttpRequest(String params)
{
URL url;
String result = new String();
try
{
url = new URL(AUTHENTICATION_SERVER_ADDRESS);
HttpURLConnection connection;
connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
PrintWriter out = new PrintWriter(connection.getOutputStream());
out.println(params);
out.close();
BufferedReader in = new BufferedReader(
new InputStreamReader(
connection.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
result = result.concat(inputLine);
}
in.close();
}
catch (MalformedURLException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
if (result.length() == 0) {
result = HTTP_REQUEST_FAILED;
}
return result;
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .