PDA

View Full Version : سوال: تغییر آدرس دهی پروفایل از id به name



c1m2s3
دوشنبه 01 اسفند 1390, 01:27 صبح
با سلام
من سیستمی به زبان php دارم که پروفایل رو با id کاربران آدرس دهی می کند. الآن میخوام پروفایل با name آدرس دهی شود و بعداً هم بتونم از طریق name ، دوباره id کاربر رو بدست بیارم تا بقیه کدها مثل قبل با id کار کند. اگه ممکنه منو راهنمایی کنید.
ممنون

masoud_tamizy
دوشنبه 01 اسفند 1390, 05:56 صبح
خب می تونی کدتو بذاری تا دوستان بتونن کمکت کنن :لبخندساده:

nader3
دوشنبه 01 اسفند 1390, 12:30 عصر
سلام اگه کد و می گذاشتید راحتر می شد جواب داد.
احتمالا تو کدتون باید این کد باشه
select * form `tabel_name` where id='$id'
تو اینجا به جای id name بزارید. یعنی
select * form `tabel_name` where name='$id'

c1m2s3
دوشنبه 01 اسفند 1390, 13:55 عصر
درود
ممنون از پاسخ هاتون


if (isset($_GET["id"]))
{
$_GET["id"]=mysql_escape_string($_GET["id"]);
$usr=user($_GET["id"]);
}


برای مثال برای نمایش نام کاربر در پروفایل از کد زیر استفاده می کنم


$usr[1]


برای لینک دادن به صفحه پروفایل هم از آدرس زیر استفاده می کنم

http://address.net/user-profile.php?id=1

همونطور که گفتم من میخوام بجای id از name در لینک استفاده کنم و بعداً هم بتونم از طریق name ، دوباره id کاربر رو بدست بیارم و بقیه کدها مثل قبل با id کار کند.
ممنون

Reza1607
دوشنبه 01 اسفند 1390, 14:24 عصر
فيلد name شما بايد uniq باشه يعني منحصر به فرد و بعد بجاي اين كه id رو در شرط كوئريتون چك كنيد name رو چك كنيد

c1m2s3
دوشنبه 01 اسفند 1390, 17:21 عصر
فيلد name شما بايد uniq باشه يعني منحصر به فرد و بعد بجاي اين كه id رو در شرط كوئريتون چك كنيد name رو چك كنيد
سلام
این قسمت را قبلاً انجام داده ام. مشکل من در اینجاست که اطلاعات چون قبلاً با id فراخوانی می شدند الآن با تغییر id به name ، دیگه اطلاعات نمایش داده نمی شوند. من میخوام کدی بنویسم که از طریق name وارد شده، id مربوط به آن کاربر را پیدا کنم تا اطلاعات مثل قبل با id نمایش داده شوند.
دلیل من برای این کار این هست که من لینک پروفایل یک سایت را میخوام در سایت دیگری قرار دهم که دیتابیس متفاوت و جداگانه ای دارند. بخاطر همین با گذاشتن این امکان میخوام کاربر با وارد کردن نام کاربری خود در سایت دومی، پروفایل خود در سایت اولی را داشته باشد.
ممنون از راهنمایی

shahriyar3
دوشنبه 01 اسفند 1390, 17:32 عصر
سلام
این قسمت را قبلاً انجام داده ام. مشکل من در اینجاست که اطلاعات چون قبلاً با id فراخوانی می شدند الآن با تغییر id به name ، دیگه اطلاعات نمایش داده نمی شوند. من میخوام کدی بنویسم که از طریق name وارد شده، id مربوط به آن کاربر را پیدا کنم تا اطلاعات مثل قبل با id نمایش داده شوند.
دلیل من برای این کار این هست که من لینک پروفایل یک سایت را میخوام در سایت دیگری قرار دهم که دیتابیس متفاوت و جداگانه ای دارند. بخاطر همین با گذاشتن این امکان میخوام کاربر با وارد کردن نام کاربری خود در سایت دومی، پروفایل خود در سایت اولی را داشته باشد.
ممنون از راهنمایی
خيلي خوب متوجه منظورتون نشدم
ولي فرض كنيد شما يك url داريد به اين شكل


http://www.domain.com/index.php?id=1
جالا ميخواهيد تغييرش بديد به اين شكل


http://www.domain.com/index.php?name=ali

در اينصورت حتما بايد فيلدي كه توي ديتابيس مقدار نام و نگه ميداره يكتا باشه و تكراري نداشته باشه
توي كوئري هم مقدار id رو با مقدار name عوض كنيد


mysql_query("SELECT * FROM tbl WHERE name = $_GET['name'])

lady64
دوشنبه 01 اسفند 1390, 17:48 عصر
مشکل من در اینجاست که اطلاعات چون قبلاً با id فراخوانی می شدند الآن با تغییر id به name ، دیگه اطلاعات نمایش داده نمی شوند
تمام مسئله اینه که شما میفرمائید با اینکه name رو uniq کردید، باز با تغییر id به name ، اطلاعات نمایش داده نمیشه.. میشه کد و کئوری رو بزارید ؟؟؟؟

Reza1607
دوشنبه 01 اسفند 1390, 19:13 عصر
خوب شما مي تونيد name رو تو url بياريد و id رو داخل session ذخيره كنيد
و يا اينكه مثل برنامه نويس هم id و هم name رو داخل url بياريد

c1m2s3
دوشنبه 01 اسفند 1390, 23:09 عصر
آخرین کدهای نوشته شده :

آدرس :

http://address.net/user-profile.php?name=ramin

function :


function user($name)
{
global $db_id;

$query="select * from users where name=".$name."";
$result=mysql_query($query, $db_id);
if ($result)
{
$row=mysql_fetch_row($result);
$row[1]=stripslashes($row[1]); $row[9]=stripslashes($row[9]);
return $row;
} else return 0;
}


کد :


if (isset($_GET["name"]))
{
$usr=user($_GET["name"]);
}


فراخوانی اطلاعات :


<?php echo $usr[4]; ?>


ممنون میشم اشکالاتش رو بگید

lady64
سه شنبه 02 اسفند 1390, 08:56 صبح
من کدتون رو بررسی کردم : این خطا رو میده :


Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given in



در function وقتی کئوری تونو به این شکل تغییر دادم درست شد :


$qry="SELECT * FROM users where user='$name' ";


ولی اگر با post دریافت میشد این مشکل وجود نداشت.البته فرض اینه که شما واقعا name رو uniq کرده باشید.
موفق باشید

c1m2s3
سه شنبه 02 اسفند 1390, 12:49 عصر
من کدتون رو بررسی کردم : این خطا رو میده :


Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given in



در function وقتی کئوری تونو به این شکل تغییر دادم درست شد :


$qry="SELECT * FROM users where user='$name' ";


ولی اگر با post دریافت میشد این مشکل وجود نداشت.البته فرض اینه که شما واقعا name رو uniq کرده باشید.
موفق باشید

این کد را هم امتحان کردم مشکلم حل نشد.

گذشته از همه این کدها، من میخوام فقط کدی در صفحه پروفایل بنویسم که آی دیه مربط یه نام وارد شده را از دیتابیس پیدا کنه ؛ درست عکس کاری که قبلاً انجام می داد. اینطوری دیگه مجبور نیستم کدهای قسمت ها دیگر را هم برحسب name تغییر بدم.
ممنون

lady64
سه شنبه 02 اسفند 1390, 16:27 عصر
برای پیدا کردن id یک شخص بهرحال شما نیاز به یک select از فیلدی منحصر بفرد مثل user دارید .ولی نام یک شخص منحصر بفرد نیست.بهرحال کد این هست :


$qry="SELECT * FROM users where name='$name'";
$res=@mysql_query($qry);
$is=@mysql_num_rows($res);
$row=@mysql_fetch_array($res);
if($is)
$id=$row['id'];

nader3
سه شنبه 02 اسفند 1390, 18:19 عصر
function :


function user($name)
{
global $db_id;

$query="select * from users where name=".$name."";
$result=mysql_query($query, $db_id);
if ($result)
{
$row=mysql_fetch_row($result);
$row[1]=stripslashes($row[1]); $row[9]=stripslashes($row[9]);
return $row;
} else return 0;
}


کد :


if (isset($_GET["name"]))
{
$usr=user($_GET["name"]);
}


فراخوانی اطلاعات :


<?php echo $usr[4]; ?>


ممنون میشم اشکالاتش رو بگید
شما كوئري رو به صورت
$query='select * from `users` where name=\''.$name.'\'' بزارید مشکلتون حل میشه.

c1m2s3
چهارشنبه 03 اسفند 1390, 03:28 صبح
از راهنمایی های دوستان عزیز خیلی ممنونم
مشکلم را از راه دیگری حل کردم
موفق باشید

lady64
پنج شنبه 04 اسفند 1390, 12:16 عصر
از راهنمایی های دوستان عزیز خیلی ممنونم
مشکلم را از راه دیگری حل کردم
موفق باشید

میشه بگید از چه راهی؟
چون دوست دارم بدونم مشکل چی بود؟؟؟