PDA

View Full Version : مشکل نمایش یک رکورد بر اساس عنوان فارسی



majidghafoorzade
دوشنبه 25 اردیبهشت 1396, 09:36 صبح
سلام
من یک صفحه اصلی دارم که همه رکورد های جدول MySQL م رو نمایش میده.(یعنی همه ی ردیف ها و همه ی داده های ثبت شده)
کدش به این صورت هست

if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "<a href='single.php?title=".$row["title"]." '>id: " . $row["id"]. " - title: " . $row["title"]. " " . $row["phone"]. "</a><br>";
}
} else {
echo "0 results";
}

یعنی در واقع از طریق متد GET دارم عنوان رو میفرستم به صفحه SINGLE.PHP که صفحه اختصاصی هر رکورد هست.
و در این صفحه از طریق کد زیر عنوان (title) فرستاده شده رو میگریم و جزئیات اون رکورد رو نمایش میدم:


$title = $_GET['title'];
$sql = "SELECT * FROM agahiha WHERE title=$title";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - title: " . $row["title"]. " " . $row["phone"]. "<br>";
}
} else {
echo "0 results";
}

وقتی عنوان(title) رکورد من عددی یا انگلیسی باشه (مثلا onvan) به خوبی عمل میکنه و جزئیات صفحه رو نمایش میده ولی وقتی عنوان فارسی باشه چیزی نشون نمیده و مینویسه
0 resaults
در صورتیکه اون رکورد با اون عنوان وجود داره.

مثال : مثلا آدرس

site.com/single.php?title=onvan


به خوبی نمایش داده میشه
ولی آدرس


site.com/single.php?title=تست

رو نمایش نمیده و مینویسه 0 resaults

بررسی کردم و دیدم فقط با کلمات فارسی مشکل داره و نمیشناسه.
میشه لطفا راهنمایی بفرمایید مشکل از کجاست؟
میتونه مشکل از character set باشه یا چیز دیگه س؟

Sorkhabi.NeT
دوشنبه 25 اردیبهشت 1396, 11:58 صبح
مقدار تایتل رو با یو آر ال دی کد دی کد کنید بعد سلکت بگیرید.

$title = urldecode ($_GET ['title']);

majidghafoorzade
دوشنبه 25 اردیبهشت 1396, 18:20 عصر
مقدار تایتل رو با یو آر ال دی کد دی کد کنید بعد سلکت بگیرید.

$title = urldecode ($_GET ['title']);

این کارو هم کردم درست نشد!!!

majidghafoorzade
دوشنبه 25 اردیبهشت 1396, 18:30 عصر
میتونه به این ربط داشته باشه که از دابل کوئت استفاده میکنم . چون معمولا برای string ها از سینگل کوئت استفاده میکنن میگم

trasilver
دوشنبه 25 اردیبهشت 1396, 18:36 عصر
درود. از کد زیر استفاده کنید:



$title = $_GET['title'];
$sql = "SELECT * FROM agahiha WHERE `title`='{$title}'";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - title: " . $row["title"]. " " . $row["phone"]. "";
}
} else {
echo "0 results";
}