PDA

View Full Version : سوال: مشکل با mysql_query



chaown
دوشنبه 22 اسفند 1390, 07:36 صبح
سلام این کد وصل شدن به دیتابیسمه

$con=mysql_connect($ss,$user,$pass);


if($con)
{
$db=mysql_select_db('shahin',$con);
}
else
{
die("Error in connection");
}
اینم کد دستور مورد نظرم

$nameForImage=$_SESSION['userName'];
$imageQuery=mysql_query("SELECT * FROM users where userUserName='".$nameForImage."' AND imageUrl IS NOT NULL;")or die(mysql_error());

nameForImage : نام کاربری که توسط یک سشن گرفته شده
users : جدولم تویه دیتابیسی به نام shahin
userUserName : نام کاربری در جدول users
imageUrl : در این ستون آدرس عکس کاربر ذخیره شده
--------------------------------------------------------------------------
من می خوام وقتی کاربر به سایت لوگین کرد تصویرش تویه صفحه لود بشه که این کار رو با ذخیره کردن عکس تویه هاست و ذخیره کردن آدرس عکس تویه دیتابیس انجام دادم

مشکل من اینه که وقتی به صفحه لوگین میکنم و دستور بالا رو اجرا می کنم این پیغام خطا میاد:

No database selected
و وقتی بدون تابع mysql_error دستور بالا رو وارد می کنم به این قطعه کد اخطار می ده:

$imageNum=mysql_num_rows($imageQuery);
با این پیام اخطار:

mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\wamp\www\1\index.php on line 119و به این کد :

mysql_fetch_array($imageQuery,MYSQL_ASSOC)
با این پیام اخطار :

mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\1\index.php on line 120لطفا کمک

narsic
دوشنبه 22 اسفند 1390, 09:11 صبح
این تکه کد رو به این شکل انجام بدید

$db=mysql_select_db('shahin',$con) or die('Erro in select DB. Error: ' . mysql_error());
ببینید چه نتیجه ایی بر میگردونه.
موفق باشید

loqmanh
دوشنبه 22 اسفند 1390, 11:19 صبح
اشتباه شما این است که در هنگام اجرای Query کانکشن به دیتابیس را مشخص نکردی، تابع mysql_query به صورت استاندارد باید به صورت زیر فراخوانی شود:


$result = mysql_query($query, $db_connection);

که با توجه به این نکته کد شما به صورت زیر خواهد بود:


$imageQuery=mysql_query("SELECT * FROM users where userUserName='".$nameForImage."' AND imageUrl IS NOT NULL;", $con)or die(mysql_error());

chaown
دوشنبه 22 اسفند 1390, 12:41 عصر
این کار رو کردم ولی مشکل برطرف نشد.
راه حل شما و narsic جواب نمیده ، قبلا هم امتحان کردم ولی حل نشد.
==================
یه چیزی که شاید کمکتون کنه که متوجه اشکال من بشین و به من کمک کنید:
این خطوط کد تویه صفحه ی index.php قرار دارند، که من تویه همین صفحه یه لینک برایه خودش قرار دادم با نام ' خانه ' وقتی روش کلیک می کنم صفحه به خوبی نمایش داده میشه و هیچ پیغام خطایی وجود نداره . ؟؟؟؟
تصویری از صفحه ، قبل و بعد از کلیک بر روی لینک ' خانه ' گذاشتم، خودتون متوجه میشد.

==================================
ارور اول وقتی اومد که من راه حل loqmanh رو انجام دادم
==================================

loqmanh
دوشنبه 22 اسفند 1390, 12:54 عصر
اگر سورس کد رو کامل قرار بدی فکر کنم راحتر بشه مشکل رو بررسی کرد.
در ضمن ساختار دیتابیست رو هم بفرستی خوب میشه.

chaown
دوشنبه 22 اسفند 1390, 13:17 عصر
سرس کد کامل سایت که نمیشه خیلی طولانیه و نامفهوم ولی کد این قسمت ( قسمت درج تصویر و لینکهای ناوبری پایین تصویر ) به این شکل است:

if(isset($_SESSION['userName']) && isset($_SESSION['userPassword']))
{
//================================================== ================ user picture and navi links================================
//================================================== ================================================== ==========================
$nameForImage=$_SESSION['userName'];
$imageQuery=mysql_query("SELECT * FROM users where userUserName='".$nameForImage."' AND imageUrl IS NOT NULL;",$con);

$imageNum=mysql_num_rows($imageQuery);
$imageSet=mysql_fetch_array($imageQuery,MYSQL_ASSO C);
echo '
<article class="imageT">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="tdForImage">
';
if($imageNum>0)
{
echo
'<img src="'.$imageSet['imageUrl'].'" style="width:124px;">';
}
else
{
echo '<img src="img/1.gif" style="width:124px;">';
}
echo
'</td>
</tr>
</table>
<p>تنظیمات حساب کاربری</p>
<p><a href="userSetting.php?settingUserId=1">نتظیمات حساب شخصی</a></p>
<hr>
<p>دوستان</p>
<p>گالری</p>
</article>
';
}
از HTML5 استفاده شده
شرط این دستور بر اساس وجود سشن هاست

ساختار دیتابیس

84065

loqmanh
دوشنبه 22 اسفند 1390, 13:53 عصر
این کدی که فرستادی مشکلی نداره. سورس کد رو هم لازم نیست توی صفحه بذاری، ضمیمه کن بهتره.

mahan19
دوشنبه 22 اسفند 1390, 13:54 عصر
سلام دوست عزیز ، در تابع انتخاب دیتابیس ، نیازی نیست ریسورس کانکشن رو انتخاب کنی ، فقط اسم دیتابیس رو بهش بده

این ارروری که میده داره میگه لینک ارتباط با دیتابیس درست نیست ، دیتابیس انتخاب نشده !

chaown
دوشنبه 22 اسفند 1390, 14:21 عصر
مشکل حل شد.
ولی اینقدر ضایس روم نمی شه بگمش
.
.
.
.
تویه شرطه کلیک بر روی دکمه لوگین تویه قسمت شناسایی کاربر ارتباط با mysql رو قطع کرده بودم
ممنون از همه و ببخشید که وقتتونو گرفتم.