PDA

View Full Version : اجرا نشدن دو while پشت سرهم؟؟ (حل شد)



boysilent
جمعه 11 اسفند 1391, 15:08 عصر
دوستان من این کد رو نوشتم که وقتی کوری اول اجرا شد از یه جدول دیگه هم واکشی اطلاعات داشته باشم ولی فقط یک باز اطلاعات واکشی میشه؟؟؟

<?php
include("send.php");
$obj=new classconnect();
$obj->funcconnect();
$cat=mysql_query("SELECT * FROM _tbcat");
$cat2=mysql_query("SELECT * FROM _tbsubcat");

echo mysql_error();
while($rescat=mysql_fetch_array($cat)){$count=1;
while($rescat2=mysql_fetch_array($cat2)){
?>
<table width="251" height="29">
<tr>
<td>
<p><a class="a2" href="showbycat.php?cat=<?php echo $rescat[subcat]?>"><img src="images/tray-logout.gif" alt="" width="12" height="9" /> <?php echo $rescat[subcat];?></a></p>
<?php
echo 1; }
?>

</tr>
</table>


<?php }

dousti_design
جمعه 11 اسفند 1391, 15:49 عصر
<?php
include("send.php");
$obj=new classconnect();
$obj->funcconnect();
$cat=mysql_query("SELECT * FROM _tbcat");


echo mysql_error();
while($rescat=mysql_fetch_array($cat)){$count=1;
$cat2=mysql_query("SELECT * FROM _tbsubcat");
while($rescat2=mysql_fetch_array($cat2)){
?>
<table width="251" height="29">
<tr>
<td>
<p><a class="a2" href="showbycat.php?cat=<?php echo $rescat[subcat]?>"><img src="images/tray-logout.gif" alt="" width="12" height="9" /> <?php echo $rescat[subcat];?></a></p>
<?php
echo 1; }
?>

</tr>
</table>


<?php }

MMSHFE
جمعه 11 اسفند 1391, 20:39 عصر
من که نفهمیدم دقیقاً چه کاری میخواین انجام بدین ولی خواهشاً تمیز کد بنویسید. مثال:


<?php
include_once 'send.php';
$obj = new classconnect();
$obj->funcconnect();
$cat = mysql_query('SELECT * FROM `_tbcat` ORDER BY `id`');
while($rescat = mysql_fetch_assoc($cat)) {
$count = 1;
$cat2 = mysql_query("SELECT * FROM `_tbsubcat` WHERE (`cat_id`='{$cat['id']}')");
while($rescat2 = mysql_fetch_assoc($cat2)) {
echo '<table width="251" height="29">' . PHP_EOL;
echo '<tr>' . PHP_EOL;
echo '<td>' . PHP_EOL;
echo '<p><a class="a2" href="showbycat.php?cat=' . $rescat['subcat'] . '"><img src="images/tray-logout.gif" alt="" width="12" height="9"/>' . $rescat['subcat'] . '</a></p>' . PHP_EOL;
}
}
?>

یه جوری باشه که 6 ماه بعد خودتون به سراغ کد رفتین که تغییر بدین به یکی دیگه هم بفروشین، فرار نکنید!
نمیگم کد بالا کار میکنه ولی حداقل میشه بفهمیم مشکل از کجاست.

boysilent
جمعه 11 اسفند 1391, 21:42 عصر
ممنون از توجهتون
من میخوام یه موضوع رو که نمایش دادم بعدش زیر موضوع هارو نمایش بدم که هنوز به جواب نرسیدم
این هم قطعه کد جدیده موضوع ها لود میشه ولی زیر موضوع ها لود نمیشه.؟


<?php
include("send.php");
$obj=new classconnect();
$obj->funcconnect();
$cat=mysql_query("SELECT * FROM `_tbcat`");
echo mysql_error();
while($rescat=mysql_fetch_array($cat)){$count=1;
?>
<table width="251" height="29">
<tr>
<td>
<p><a class="a2" href="showbycat.php?cat=<?php echo $rescat[subcat]?>">
<img src="images/tray-logout.gif" alt="" width="12" height="9" />
<?php echo $rescat[subcat]; " ".
$query=mysql_result(mysql_query("SELECT count(category) FROM `_tbup` WHERE `category`='{$rescat['subcat']}'"),0,0);
echo " تعداد مقالات:"."(".$query.")";
echo '</a></p></br>';
$subs=mysql_query("SELECT * FROM `_tbsubcat` WHERE `cats`='{$rescat['subcat']}'");
echo mysql_error();
$row = mysql_fetch_array($subs);
echo $row[sub];
?>
</tr>
</table>
<?php }?>

MMSHFE
جمعه 11 اسفند 1391, 23:31 عصر
اینو امتحان کنید:


<?php
require_once 'send.php';
$obj = new classconnect();
$obj->funcconnect();
$cat = mysql_query('SELECT * FROM `_tbcat`');
echo '<table width="251" height="29">' . PHP_EOL;
while($rescat = mysql_fetch_assoc($cat)) {
echo '<tr>' . PHP_EOL;
echo '<td>' . PHP_EOL;
echo '<p><a class="a2" href="showbycat.php?cat=' . $rescat['subcat'] . '">';
echo '<img src="images/tray-logout.gif" alt="" width="12" height="9"/>' . $rescat['subcat'];
$query = mysql_result(mysql_query("SELECT COUNT(*) AS `total` FROM `_tbup` WHERE (`category`='{$rescat['subcat']}')"), 0, 0);
echo 'تعداد مقالات: (' . $query . ')</a></p>' . PHP_EOL;
$subs = mysql_query("SELECT * FROM `_tbsubcat` WHERE (`cats`='{$rescat['subcat']}')");
echo '<p>زیرمجموعه ها:</p>' . PHP_EOL;
while($row = mysql_fetch_assoc($subs)) {
echo '<p>' . $row['sub'] . '</p>' . PHP_EOL;
}
echo '</tr>' . PHP_EOL;
}
echo '</table>' . PHP_EOL;
?>

البته من ساختار دیتابیس شما رو نمیدونم و این کد رو برحسب کد خودتون گذاشتم.

boysilent
شنبه 12 اسفند 1391, 09:54 صبح
دوستان من این قسمن رو الان نوشتم خزا میده این قسمت رو ی نگاه بندازید لطفا


$subs = mysql_query("SELECT * from `_tbsubcat` WHERE (`cats`= '{$rescat['subcat']}')");//)
$khoroji= mysql_result($subs,0,'sub');
echo $khoroji;

خطا:
البته اینوهم بگم که بعد از اینکه شرط رو میزارم این خطارو میده....
Warning: mysql_result() [function.mysql-result (http://127.0.0.1/h_free_software/function.mysql-result)]: Unable to jump to row 0 on MySQL result index 8 in C:\xampp\htdocs\h_free_software\index.php on line 190

MMSHFE
شنبه 12 اسفند 1391, 10:15 صبح
خوب یکبار mysql_error رو چاپ کنید ببینید چه خطایی داده. اینطور که پیغام خطایی که گذاشتین داره میگه، رکوردی برگردونده نشده که بخواین رکورد 0 رو استخراج کنید. ازطرفی پارامتر سوم هم در mysql_result شماره ردیف هست نه اسمش.

boysilent
شنبه 12 اسفند 1391, 11:01 صبح
خوب یکبار mysql_error رو چاپ کنید ببینید چه خطایی داده. اینطور که پیغام خطایی که گذاشتین داره میگه، رکوردی برگردونده نشده که بخواین رکورد 0 رو استخراج کنید. ازطرفی پارامتر سوم هم در mysql_result شماره ردیف هست نه اسمش.
من وقتی شزط رو نمیزارم درست کار میکنه ؟؟ولی فیلتر گزاری میخوام؟؟؟

من توی یه سایت خارجی دیدم که اسمشو نوشته بود
بنظر شما شرظ من مشکل نداره
این کوری من اجرا نمیشه یعنی اجرا میشه ها ولی هیچ رکوردی رو بر نمیگردونه!!!؟

MMSHFE
شنبه 12 اسفند 1391, 11:04 صبح
شما دقیقاً ساختار دیتابیس (اسم جداول و فیلدها و کارشون) و هدفی که دارین رو بنویسید تا ببینیم مشکل از کجاست.

boysilent
شنبه 12 اسفند 1391, 11:31 صبح
شما دقیقاً ساختار دیتابیس (اسم جداول و فیلدها و کارشون) و هدفی که دارین رو بنویسید تا ببینیم مشکل از کجاست.
این هم از خود برنامه

MMSHFE
شنبه 12 اسفند 1391, 11:57 صبح
دوست عزیز، خود برنامه رو نمیخوام. فقط ساختار دیتابیس و کاری که میخواین انجام بشه رو توضیح بدین. موفق باشید.

boysilent
شنبه 12 اسفند 1391, 16:03 عصر
ببینید من یه جدول دارم که تمام وضوعات داخلشه
'{$rescat['subcat']}
بعدش یه جدول هم هست که زیر مجموعه ها و همین موضوعات اصلی داخلشه به اسم _tbsubcat و شامل دو فیلد cats و sub میباشد و حالا من دارم چک میکنم که اگه
'{$rescat['subcat']}
با مقدار cats داخل جدول دیگه برابر بود sub رو نشون بده که نشون نمیده

MMSHFE
یک شنبه 13 اسفند 1391, 10:27 صبح
دوست عزیز از شما که سابقه عضویتتون زیاده بعیده اینجوری اطلاعات بدین. ساختار کامل جداول (اسم جدول شاخه اصلی و فیلدهاش و اسم جدول شاخه فرعی و فیلدهاش) رو میخوام.

boysilent
دوشنبه 14 اسفند 1391, 13:49 عصر
من شرمندم :
این جدول اصلی به اسم (_tbcat) که داخل فیلد subcat تمام موضوعات اصلی هستند

و این جدول فرعی به اسم(_tbsubcats) هستش که از دو قسمت تشکیل شده cats که شامل موضوع اصلیمونه که زیر شاخش در فیلد کناریش ذخیره میشه که اسمش sub هست

100852100853

MMSHFE
دوشنبه 14 اسفند 1391, 14:21 عصر
شرمنده اینقدر سؤال میکنم ولی اگه میشه یک مثال هم از اینکه یک شاخه اصلی و یکی دو شاخه فرعی چطوری توی این جداول ذخیره میشن میگذارین؟ آخه حقیقتش (شرمنده) خیلی بد نامگذاری شدن. پیشنهاد من برای اسامی:

جدول tbcat_ شامل فیلدهای:
1- id (کلید اصلی از نوع int) شماره ردیف
2- name (از نوع varchar بطول 255) نام شاخه اصلی
3- pic (از نوع Varcharبطور 255) نام فایل تصویر شاخه

جدول tbsubcats_ شامل فیلدهای:
1- id (کلید اصلی از نوع int) شماره ردیف
2- name (از نوع varchar بطول 255) نام شاخه فرعی
3- cid (از نوع int) کلید خارجی برای مشخص کردن شاخه اصلی (والد)

boysilent
دوشنبه 14 اسفند 1391, 15:00 عصر
ن خواهش میکنم
آها ببینید مامثلا دوتا شاخه اصلی داریم 1کامپیوتر 2 حسایداری اینا داخل حدول _tbcat دخیره میشن.این که تموم
بعد یه صفحه دیگه میریم واسه ثبت زیر موضوع ها
دو تا قسمت داره یه لیست کشویی که همون کامپیوتر و حسابداریه که مثلا انتخاب میکنیم یکیشو
بعدش یه تکست باکسه که زیر مجموعه رو مینویسیم بعدش که این اطلاعات رو فرستادیم به سمت سرور واسه ثبت
که "کامپیوتر" میره تو فیلد cats و مثلا "اموزش اجاکس " میره تو فیلد sub در جدول _tbsubcats
دیگه از این بهتر باور کنین نمیتونم ..شرمندتونم اگه انتقال مطلبم خیلی بده

MMSHFE
دوشنبه 14 اسفند 1391, 15:53 عصر
یعنی میخواین بگین اسم شاخه اصلی رو توی جدول tbsubcats_ میگذارین؟ اینکه خیلی بده. باید id باشه

boysilent
دوشنبه 14 اسفند 1391, 17:16 عصر
یعنی میخواین بگین اسم شاخه اصلی رو توی جدول tbsubcats_ میگذارین؟ اینکه خیلی بده. باید id باشه
نه _TBCATS و _TBSUBCATS نام جدول ها هستند

MMSHFE
دوشنبه 14 اسفند 1391, 18:55 عصر
boysilent (اسمتو نمیدونم) دیوانم کردی. تا فردا teamviewer نصب کن نام کاربری و رمز رو فردا تو ساعت اداری برام پیام خصوصی بگذار به سیستمت ریموت شم خودم ببینم چی به چیه! کرد حسابی اسم جدولا رو که میدونم. دیگه اینقدرها حالیمونه. منظورم فیلد cats بود. تو اون فیلد اسم شاخه والد ثبت میشه یا id اون؟

boysilent
دوشنبه 14 اسفند 1391, 23:04 عصر
boysilent (اسمتو نمیدونم) دیوانم کردی. تا فردا teamviewer نصب کن نام کاربری و رمز رو فردا تو ساعت اداری برام پیام خصوصی بگذار به سیستمت ریموت شم خودم ببینم چی به چیه! کرد حسابی اسم جدولا رو که میدونم. دیگه اینقدرها حالیمونه. منظورم فیلد cats بود. تو اون فیلد اسم شاخه والد ثبت میشه یا id اون؟
احساس شرمندگی پشت سرهم باورکنید من php رو از وی مقالات شما و مقالات لاتین یاد گرفتم و پروژه های زیادی نوشتم ولی این بار نمسدونم این چرا جواب نمیده
اره داخل cats اسم رشته ثبت میشه و والده دیگه

MMSHFE
دوشنبه 14 اسفند 1391, 23:08 عصر
خوب ثبت اسم خیلی اشتباهه و افزونگی اطلاعات براتون داره. چرا ID رو ذخیره نمیکنید؟ امکانش نیست فردا به سیستمتون Remote بشم؟ فکر کنم اینطوری خیلی راحتتر باشین/باشیم.

boysilent
دوشنبه 14 اسفند 1391, 23:33 عصر
چرا امکانش هست اتفاقا داشتم همین الان با کسی ریموت میکردم اخه خدمات کامپیوتری دارم کارای نرم افزاری رو بصورت رایگان انجام میدم اینترنتی باشه مشکلی نیس

mahmod2000
سه شنبه 15 اسفند 1391, 20:44 عصر
شما با یک دیتابیس از parent_id استفاده کنید و یک کانکشن بسازید برای category که میتونید همون فانکشن رو توی خودش فراخوانی کنید برای subcategory ها

اینم یک آموزش از آقای کرامتی فر عزیز
امیدوارم به دردتون بخوره
لینک صفحه (http://keramatifar.ir/ShowVideo.php?id=66&title=%D8%A2%D9%85%D9%88%D8%B2%D8%B4%20%D8%A7%D8%B 1%D8%AA%D8%A8%D8%A7%D8%B7%20Ajax%20%D8%A7%DB%8C%20 %D8%A8%DB%8C%D9%86%20%D8%AF%D9%88%20Combobox)

boysilent
یک شنبه 20 اسفند 1391, 08:29 صبح
ممنون دوست عزیز
من اینبار با استفاده از id این کار رو انجام دادم ولی متاسفانه هنوزم مشکل پابرجاست

<?php
require_once 'send.php';
$obj = new classconnect();
$obj->funcconnect();
$cat = mysql_query('SELECT * FROM `_tbcat`');
echo '<table width="251" height="29">' . PHP_EOL;
while($rescat = mysql_fetch_assoc($cat)) {
echo '<tr>' . PHP_EOL;
echo '<td>' . PHP_EOL;
echo '<p><a class="a2" href="showbycat.php?cat=' . $rescat['subcat'] . '">';
echo '<img src="images/tray-logout.gif" alt="" width="12" height="9"/>' . $rescat['subcat'];
$query = mysql_result(mysql_query("SELECT COUNT(*) AS `category` FROM `_tbup` WHERE (`category`='{$rescat['subcat']}')"), 0, 0);
echo 'تعداد مقالات: (' . $query . ')</a></p>' . PHP_EOL;
$khoroji = mysql_result(mysql_query("SELECT * from `_tbsubcat`,`_tbcat` WHERE _tbcat.id=id_cat"), 0,1);
echo $khoroji;
}
echo '</tr>' . PHP_EOL;

echo '</table>' . PHP_EOL;
?>

MMSHFE
یک شنبه 20 اسفند 1391, 08:41 صبح
چی شد، اطلاعات remote به دستم نرسید! قرار بود به سیستمتون وصل بشم و درستش کنم.

MMSHFE
یک شنبه 20 اسفند 1391, 09:27 صبح
خوب این مشکل هم به کمک Remote Connection رفع شد. اما برای سایر دوستان هم بگم کدی که مشکل رو رفع کرد این بود:


<?php
require_once 'send.php';
$obj = new classconnect();
$obj->funcconnect();
$cat = mysql_query('SELECT * FROM `_tbcat`');
echo '<table width="251" height="29">' . PHP_EOL;
while($rescat = mysql_fetch_assoc($cat)) {
echo '<tr>' . PHP_EOL;
echo '<td>' . PHP_EOL;
echo '<p><a class="a2" href="showbycat.php?cat=' . $rescat['subcat'] . '">';
echo '<img src="images/tray-logout.gif" alt="" width="12" height="9"/>' . $rescat['subcat'];
$query = mysql_result(mysql_query("SELECT COUNT(*) AS `category` FROM `_tbup` WHERE (`category`='{$rescat['subcat']}')"), 0, 0);
echo 'تعداد مقالات: (' . $query . ')</a></p>' . PHP_EOL;
$subcat = mysql_query("SELECT * from `_tbsubcat` WHERE (`id_cat`='{$rescat['id']')");
if($subcat && mysql_num_rows($subcat) > 0) {
$khoroji = mysql_result($subcat, 0, 1);
else {
$khoroji = '';
}
echo $khoroji;
}
echo '</tr>' . PHP_EOL;
echo '</table>' . PHP_EOL;
?>