PDA

View Full Version : مشکل و سوال درباره پایگاه داده



angel_boy013
یک شنبه 24 اردیبهشت 1385, 15:05 عصر
یک مشکل بزرگ دارم توی database هام که یک برنامه هست که عضو میگیره id اولین نفر 1 هست اما وقتی میخوای این Record رو فراخوانی کنی باید 0 بگی تا این رکود بیاد برای همین کل رکورد ها با هم قاتی میشه میشه یک کمک بدین که این از 1 شروع بشه نه 0

یک سوال دیگه هم پیش آمده توی بشتر ها که عضو میپذیرن وقتی کسی login کرده باشه توی سایت میزنه همچین کسی online هست تا اونجا که من میدونم اینها از روی دیتابیس خونده میشن کسی میدونه که چطوری هست

reza_rad
یک شنبه 24 اردیبهشت 1385, 15:14 عصر
1- سوالتون رو باید توی بخش database بپرسید.
2- بله شما می تونید تعیین کنید که فیلد autonumber شما از چه عددی شروع کنه
3- در مورد تعداد کاربران آنلاین خیلی توی این سایت بحث شده.جستجو کنید موارد زیادی پیدا می کنید.

cpuman
یک شنبه 24 اردیبهشت 1385, 16:10 عصر
یک سوال دیگه هم پیش آمده توی بشتر ها که عضو میپذیرن وقتی کسی login کرده باشه توی سایت میزنه همچین کسی online هست تا اونجا که من میدونم اینها از روی دیتابیس خونده میشن کسی میدونه که چطوری هست
با سلام دوست عزیز شما باید یه table جدا داشته باشید هنگامی که کاربر وارده سایت می شه در اون نام کاربری و session و زمان ورود و ... را در خودش ثبت کنه و بعد از خروج کاربر از سایت به راحتی می تونی اون رکورد رو پاک کنی

armin390
یک شنبه 24 اردیبهشت 1385, 16:10 عصر
اگه می خوای (سریعتر و راحتر) به جواب سوالت برسی کد و ساختار جدولت رو(مرتب) اینجا بذار تا به کمک دوستان به جواب سوالت برسی..

angel_boy013
یک شنبه 24 اردیبهشت 1385, 19:32 عصر
<?



include "dbconfig.php";

$link = mysql_connect($hostdb, $userdb, $passdb);
if (! $link)
die("Couldn't connect to MySQL");
mysql_select_db($db , $link)
or die("Select DB Error: ".mysql_error());

mysql_query("CREATE TABLE vorod( id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id), VO_nick TEXT, VO_ip TEXT, VO_date TEXT )")or die("Create table Error: ".mysql_error());
mysql_close($link);



?>
با تشکر از توجه شما دوستان عزیز این ساختار جدول من هست
چطوری مشه که autonumber از 1 بخونه

tabib_m
یک شنبه 24 اردیبهشت 1385, 19:36 عصر
چطوری مشه که autonumber از 1 بخونه

من که هر وقت کار کردم ، از 1 شروع کرده.
ولی به هر حال میتونی بعد از اینسرت، ببینی با چه عددی وارد شده ، و بعد در صورتی که صفر بود ، اون رو ویرایش کنی به یک.

angel_boy013
یک شنبه 24 اردیبهشت 1385, 19:39 عصر
من که هر وقت کار کردم ، از 1 شروع کرده.
ولی به هر حال میتونی بعد از اینسرت، ببینی با چه عددی وارد شده ، و بعد در صورتی که صفر بود ، اون رو ویرایش کنی به یک.

من هم وقتی Export رو از MySQL میبینم 1 هست اما وقتی میخوام با mysql_result اطلاعات رو بگیرم از 0 شروع میکنه :عصبانی++:

moohssenn
یک شنبه 24 اردیبهشت 1385, 22:56 عصر
ولی به هر حال میتونی بعد از اینسرت، ببینی با چه عددی وارد شده ، و بعد در صورتی که صفر بود ، اون رو ویرایش کنی به یک.

goshkob
دوشنبه 25 اردیبهشت 1385, 10:38 صبح
احتمالا چون داری از آرایه استفاده میکنی طبق پیش فرض , index آرایه ها از صفر شروع میشه و شما فکر میکنید که autonumber از صفر شروع کرده.

tabib_m
دوشنبه 25 اردیبهشت 1385, 13:21 عصر
من هم وقتی Export رو از MySQL میبینم 1 هست اما وقتی میخوام با mysql_result اطلاعات رو بگیرم از 0 شروع میکنه
منظور شما رو نمیفهمم.
توی دیتابیس که یک چیز بیشتر ثبت نمیشه که . اگه کد سلکتتون رو بذارید ، فکر کنم بشه فهمید که اشکال از کجاس.

angel_boy013
دوشنبه 25 اردیبهشت 1385, 15:31 عصر
احتمالا چون داری از آرایه استفاده میکنی طبق پیش فرض , index آرایه ها از صفر شروع میشه و شما فکر میکنید که autonumber از صفر شروع کرده.

دقیقاً منظور من همین هست حالا باید چی کار کرد این از 1 شروع بشه :افسرده:

tabib_m
دوشنبه 25 اردیبهشت 1385, 16:39 عصر
منظور شما رو نمیفهمم . یعنی شما اطلاعاتتون رو از دیتابیس میگیرید و بعد توی آرایه میریزید؟
خوب شما میتونید خودتون تعیین کنید که اطلاعات با چه اندیسی وارد آرایه بشن.

angel_boy013
دوشنبه 25 اردیبهشت 1385, 17:17 عصر
یعنی من چطوری میشه این کار رو بکنم
من اینطوری میریزم تو آرای



$UR_passm =mysql_result($info,$id ,"UR_passmd");

goshkob
دوشنبه 25 اردیبهشت 1385, 19:24 عصر
اصولا استفاده از آرایه ها در PHP بر اساس index دهی یا عدد دهی متوالی است لذا هیچ ربطی به mysql ندارد .

اگر شما از ID های متوالی برای پایگاه داده خود استفاده میکنید لزوما نباید متوقع باشید که آرایه خروجی همان index ها را داشته باشد چون در طول زمان شما ممکن است index 5 پایگاه داده خود را حذف کنید و این در حالی است که index 4 (شروع از صفر) آرایه شما خالی نخواهد بود.

لذا بنظر من بهتر است اگر میخواهید index i ام خود را در پایگاه داده بیابید در یک حلقه ساده بدنبال آن بگردید نه اینکه بگویید index i ام را از آرایه بخوان که از نظر صحت جای اشکال دارد.

goshkob
دوشنبه 25 اردیبهشت 1385, 19:27 عصر
یک سوال

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

index , array , Resource, ID , Tag , Spalsh , download , load

با تشکر

angel_boy013
دوشنبه 25 اردیبهشت 1385, 20:33 عصر
خوب من میخوام فقط یک رکورد رو بخونم باید چه کار کنم...!
مثلاً اطلاعات رکورد 10
البته با این فرظ که یک کاربر لوگین کرده و رکوردش این بوده و من یا استفاده از نامه کاربر میخوام اطلاعاتش رو بگیرم

tabib_m
سه شنبه 26 اردیبهشت 1385, 11:04 صبح
$result=mysql_query("select * from `table` where `id`='10' ");
$row=mysql_fetch_assoc($result);
echo $row['id']; // 10
echo $row['name']; // Mohsen
echo $row['family']; // Haeri
echo $row ...

در اینجا رکوردی که آی دی اون 10 ه ، توی آرایه ای به نام $row ریخته میشه ، و اندیس های اون آرایه ، به نام فیلدهای جدول هستن. و مقدار هر خونه ، مقداریه که توی اون فیلد ریخته شده.
در اینجا فیلد name مقدار Mohsen و فیلد family مقدار Haeri رو دارن.

angel_boy013
جمعه 29 اردیبهشت 1385, 18:51 عصر
سلام دستت درد نکونه این بهتره اما من هنوز جواب اون یکی سوالم رو نفهمیدم چطوری میتونی بزنی همچین کاربری تو سایت هست یا نه

javad_hosseiny
شنبه 30 اردیبهشت 1385, 01:00 صبح
چطوری میتونی بزنی همچین کاربری تو سایت هست یا نه
مطمئنا اون کاربر به هنگام ثبت اطلاعات خود در سایت شما (و نهایتا ذخیره در جدول) شما از یک پارامتر غیرتکراری (همچون نام کاربری) استفاده کرده هست
کافی است به هنگام فراخوانی دستور select شرط مربوطه را برابر نام کاربر موردنظر با فیلدموردنظر قرار دهید
مثال:

$query=mysql_query("select * from `user_account` where `username`='$user' ");
if (mysql_num_rows($query)!=0){
$row=mysql_fetch_assoc($query);
echo 'Welcome ' . $row['username'] . ' in my Site' ;
}else{
echo "Not Found Your User Name";
}

angel_boy013
چهارشنبه 03 خرداد 1385, 18:21 عصر
خوب این در صورتی هست که کاربر بعد خروجش رکودش پاک بشه اگه نخوام پاک بشه چی اگرم بخوام پاک بشه بعد خروج چی اخه کاربر پنجره رو میبنده و میره نمیشه که پاک بشه

angel_boy013
شنبه 06 خرداد 1385, 14:52 عصر
فکر کنم کسی در این مورد دیگه اطلاعاتی نداره :متفکر:

armin390
یک شنبه 07 خرداد 1385, 06:34 صبح
چطوری میتونی بزنی همچین کاربری تو سایت هست یا نه
به هر حال اطلاعات کاربر جایی ثبت میشه
باید به فراخور جایی که در اون اطلاعات ثبت شده جستجو کنی


بعد خروجش رکودش پاک بشه اگه نخوام پاک بشه چی اگرم بخوام پاک بشه بعد خروج
آخرش چی!!!

اخه کاربر پنجره رو میبنده و میره نمیشه که پاک بشه
یعنی دیگه بعد از بستن پنجره کاربر عضو سایت نیست!
در این صورت دیگه دنبال چی می خوای بگردی


فکر کنم کسی در این مورد دیگه اطلاعاتی نداره
می خوای دوستان رو تحریک کنی!!!!!!!!!!!!!
عوضش
سوالت رو خوب و مرتب مطرح کن تا جوابی که به دنبالشی رو بگیری

angel_boy013
یک شنبه 07 خرداد 1385, 12:39 عصر
می خوای دوستان رو تحریک کنی!!!!!!!!!!!!!
عوضش
سوالت رو خوب و مرتب مطرح کن تا جوابی که به دنبالشی رو بگیری

من سوالم رو فکر کنم خیلی راحت گفتم این که یک نفر میاد عضو سایت میشه میخوام وقتی لوگین میکنه وارد سایت میشه بزنه همچین کسی آنلاینه یا بگه لوگین نکرده باشه بگه آفلاینه اینی که شما گفتین برای اینه که ببنه همچین کسی عضو هست با نه

angel_boy013
یک شنبه 07 خرداد 1385, 12:42 عصر
می خوای دوستان رو تحریک کنی!!!!!!!!!!!!!
عوضش
سوالت رو خوب و مرتب مطرح کن تا جوابی که به دنبالشی رو بگیری

من سوالم رو فکر کنم خیلی راحت گفتم این که یک نفر میاد عضو سایت میشه میخوام وقتی لوگین میکنه وارد سایت میشه بزنه همچین کسی آنلاینه یا بگه لوگین نکرده باشه بگه آفلاینه اینی که شما گفتین برای اینه که ببنه همچین کسی عضو هست با نه

armin390
دوشنبه 08 خرداد 1385, 06:20 صبح
یک راه اینه که تو همون جدولی که اسم و مشخصات مربوط به اعضا قرار دارد یک فیلد دیگه مثلاً به اسم lasttime قرار بدی که آخرین زمانی که کاربر تقاضای صفحه ای می کنی در اون به روز بشه؛
و در آخر برای نمایش افراد آنلاین جستجو رو بر اساس همون فیلد lasttime انجام بدی..
یا می تونی برای این کار جدول مجزایی در نظر بگیری!

goshkob
سه شنبه 09 خرداد 1385, 18:09 عصر
با سلام
من یه روش رو امتحان کردم برای من روی local و روی سرور کانادام جواب داده.
اما روش : یکم غیر استاندارده ولی خیلی دقیقه
اولا به session نیاز داره و باید زمان آن تا حد ممکن کم باشه بطوریکه وقتی کاربر رفت مثلا 10 دقیقه بعد session ش اتوماتیک (البته روی سرور) حذف بشه
میماند کار برنامه نویسیش:
که در session شما یک رشته اطلاعات خاص ذخیره کنید منجمله ID کاربر و ...
و با باز کردن تک تک session Files ببینید که چکسانی live session دارند .
این طریقه پیدا کردن session file ها که میتواند کمک کند :




chdir(session_save_path());
$dir=opendir('.');
while($f=readdir($dir)){
if($f != '.' && $f != '..' && strtolower(substr($f,0,5))=='sess_'){
$fp = fopen($f,'r');
$res = fread($fp,filesize($f));
// Do on the Data which is in the sesson file
fclose($fp);
}
}