آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

گرفتن اطلاعات فارسی به صورت null

سجاد زهره ای  11 سال پیش  11 سال پیش
0 0

سلام من وقتی میخوام اطلاعات فارسی رو از دیتابیس بخونم و در یک 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);

?>
0 0
چشم الان امتحان میکنم (11 سال پیش)
0 0
امتحان کردم نشد متاسفانه....فرقی نکرد (11 سال پیش)
0 0
تعجب اینجاس کلمه سجاد رو برمیگردونه ولی دیگه هر عبارتی وارد کنی و ارسال کنی سمت سرور بازم null برمیگردونه (11 سال پیش)
پاسخ به سوال 
سجاد زهره ای  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"}]
0 0
واقعا خوشبحال کاربرای یک سال پیش هرسوالی که میپرسیدن خود استاد جواب میدادن ولی من الان هرچی سوال پرسیدم به جواب نرسیدم...هیچوقت شانس نداشتیم (11 سال پیش)
0 0
از قسمت PHPMyAdmin برید به دیتابیس موردنظرتون، بعد جدول users رو انتخاب کنید. سپس فیلد family رو حذف کنید و دوباره یه فیلد جدید با همین نام (family) بسازید. توجه داشته باشید که با این کار تمام رکوردهای فیلد family حذف میشود. (دلیل این کار این بود که، شاید موقع ساختن فیلد family، یک فاصله اضافی گذاشته شده که برای خوندشون شناسایی نمیشه) (11 سال پیش)
0 0
داداش مشکل این نیس اخه کلمات اینگلیسی جواب میده و حتی سجاد هم که مینویسم جواب میده ولی بقیه کلمات null برمیگردونه (11 سال پیش)
0 0
عجیب غریبه O.o . برنامه ایی که باهاش کد PHP مینویسین، Encoding رو روی چی تنظیم کردین ؟ (11 سال پیش)
0 0
من رو سرور یه فایل php میسارم و کدامو میزارم داخلش همین.. (11 سال پیش)
0 0
نگاه، شما الان باید دیباگ کنین، واسه دیباگ کردن باید مرحله به مرحله برید جلو. اگر شما یک username بنام sajjad دارید که توسط این username، کوئری رو سرچ میزنید و تمام رکوردها به درستی خوانده میشه، پس مشکلی در کوئری و ساختار کد نویسی و فیلدهای دیتابیس ندارید. پس مشکل شما این هستش که اگر username عوض بشه (مثلا ahmad)، باز هم تمام رکوردها خونده میشه ولی فقط فیلید family مقدارش null برگردونده میشه. خب پس واسه دیباگ میریم به دیتابیس سر میزنیم و فیلدی که username اِش برابر با ahmad هستش رو پیدا میکنیم تا مقداری که داخل family این صف ذخیره شده رو بررسی کنیم. بلفرض یک مقدار فارسی داخلش بود، شما بیاید این مقدار رو به اینگلیسی تغییر بدید و ببینید باز هم null برگردونه میشه یا خیر. (11 سال پیش)
0 0
نه با انگلیسی اصلا مشکل نداره هیچکدوم از فیلدا ولی همه ی فیلدا وقتی فارسی میزنی null برمیگردونه (11 سال پیش)
0 0
Collation فیلدها رو روی چی ســِــت کردین ؟ :| (11 سال پیش)
0 0
Utf8 ..بنظر خودم موقع ارسال پارامتر مشکل دارم..یه نگاه به کد بالا بکنید (11 سال پیش)
0 0
کد بالا چیزی رو نشون نمیده. فقط مقادیری هستش که بصورت json نشون داده شده. و کدهای php هم مشکلی ندارن اگه مشکلی نیست یوزر و پسورد رو بده تا فیکسش کنم. (11 سال پیش)
0 0
داداش الان بهت میدم فقط بین خودمون باشه چون من سایتمم روش هست (11 سال پیش)
پاسخ به سوال 
احمد اسدی  11 سال پیش
+2 0

مشکلی که وجود داشت:

  1. موقع insert یا گرفتن اطلاعات شما باید در کوئری set_charset رو بروی UTF-8  قرار بدید.
  2. مقادیری که داخل family ذخیره شده بود، یا خالی بود یا هم اینکه یک رشته ای بنام null ذخیره شده بود :| :|

تموم 

0 0
سلام داداش دستت دردنکنه درست شد فقط یه مشکل دیگم هس بخدا شرمنده داخل index.php اطلاعات بصورتی فارسی ذخیره نمیشه (11 سال پیش)
0 0
اون هم درست شده (11 سال پیش)
0 0
یعنی موقع ارسال اطلاعات از اندروید بازم فارسی ذخیره نمیکنه (11 سال پیش)
+1 0
شما الان تست کنید، فکر نکنم مشکلی داشته باشه. (11 سال پیش)
0 0
ولی متاسفانه وقتی ذخیره میکنم درست ذخیره نمیشه (11 سال پیش)
+1 0
set_charset رو قرار نداده بودید. دوباره تست کردین شما ؟! (11 سال پیش)
0 0
بله الان دارم تست میکنم (11 سال پیش)
پاسخ به سوال 
سجاد زهره ای  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 +
"&degree="+ 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;


}

0 0
بله الان دارم تست میکنم (11 سال پیش)
0 0
داداش حل نشد؟ (11 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .