اشکال در آرایه ها

M_cover

Member
با سلام و درود
من یک Data Grids نوشتم البته با استفاده از خواندن از یک فایل نه SQL
چند تا مشکل دارم:
1-می خواهم هر 10 تا از داده ها را توی یک صفحه مجازی نمایش بده مثلا خاصیت ترتیبی صفحه که توی button تعداد داده را بگیره و بعد تقسیم 10 کنه و شماره صفحه را به ترتیب توی هر button بریزه تا طبقه بندی شوند و بعد با زدن هر button به داده های مورد نظر داده شوند البته راهش را پیدا کردم اما زمانی که می خواهم 10 تا 10 نمایش بدم یا اضافه می سازد یا توی صفحه بندی دچار مشکل می شود البته من فکر می کنم این مشکل از استفاده همزمان و نادرست من در خط 38 از for , foreach است

2-آیا استفاده جایگاه کد ها و طبقه بندی من طبق استاندارد است یا نه؟ اگر نیست استاندارد و شیوه کد نویسی استاندارد آن چگونه است؟

PHP:
$basefile = 'file.txt'; //EXP
touch($basefile);
$page = 0;
$kbg0 = $kbg = '#f2f2f2';//EXP
$kbg1 = '#dbdbdb';//EXP
$font   = 'Times New Roman';//EXP
$f_size = '16px';//EXP
$readbase = file($basefile);
$cbt = '#047BAD';//EXP//EXP
$cbt1 = '#047BAD';//EXP
$cbt2 = '#047BAD';//EXP
$htd = "'#feffe5'";//EXP
$bg_ht = '#000000';//EXP
$t0_ht = '#ffffff';//EXP
$t1_ht = '#ffffff';//EXP
$t2_ht = '#ffffff';//EXP
$t3_ht = '#ffffff';//EXP
$rel = $_GET['s'];
$page_num = (int)$_GET['p'];
if ($page_num >= 0){
    $page = 10 * $page_num;
}
echo '<div style="width:100%;height:100%;overflow:auto">
<table width="100%" border="0" cellpadding="4" cellspacing="0">'."\n";
echo '<thead align="Left" style="background-color:'.$bg_ht.';" background="bg-td.jpg"><tr><th><font face="'.$font.'" color="'.$t0_ht.'">ID&nbsp;</th><th><font face="'.$font.'" color="'.$t1_ht.'"><a href="?s=ip" target="_self">IP&nbsp;</th><th><font face="'.$font.'" color="'.$t2_ht.'"><a href="?s=time" target="_self">Time&nbsp;</th><th><font face="'.$font.'" color="'.$t3_ht.'"><a href="?s=ps" target="_self">PS&nbsp;</th><th>&nbsp;</th><th>&nbsp;</th></tr></thead><tbody>'; 
$page = 0;
$page_num = (int)$_GET['p'];
if ($page_num >= 0){
    $page = 10 * $page_num;
}
foreach ($readbase as $kc=>$db) {//EXP
list ($I1,$I2,$I3)=explode('|', trim($db));
$IPReport[] = $I1; //$IPReport
$TimeReport[] = $I2; //$TimeReport
$PS[] = $I3;  //log EXP
}
for ($i=$page; $i<($page+10); $i++){
?
?
?
}
foreach ($ds as $kc=>$line) {
  $id=$kc+1;//EXP
  $kbg = ($kbg == $kbg0) ? $kbg1 : $kbg0;
  $std="'".$kbg."'";
  echo ' <tr onMouseOut="this.style.backgroundColor = '.$std.'" onMouseOver="this.style.backgroundColor ='.$htd.'" style="background-color:'.$kbg.';font:'.$f_size.' '.$font.'">'.
 '<td align="Left" bgcolor="'.$sid.'"><font face="'.$font.'" color="'.$cbt1.'"><img src="ipv.png" id="img"></a>&nbsp;'.$id.'&nbsp;<td align="Left" bgcolor="'.$sip.'"><font face="'.$font.'" color="'.$cbt1.'"><img src="ipv.png" id="img"></a>&nbsp;'.$IPReport[$kc].'&nbsp;</td><td align="Left" bgcolor="'.$stm.'"><font face="'.$font.'" color="'.$cbt2.'"><img src="timr.png" id="img">&nbsp;'.$TimeReport[$kc].'&nbsp;</td><td align="Left" bgcolor="'.$sps.'"><font face="'.$font.'" color="'.$cbt3.'"><img src="prs.png" id="prs"><b>&nbsp;'.$PS[$kc].'&nbsp;</b></td><td align="Left"><a href="?del='.$id.'" target="_self" title=" حذف اطلاعات"><img src="timr.png" id="img"></td><td align="Left"><a href="?del='.$id.'" target="_self" title=" حذف اطلاعات"><input type="button" id="del_'.$id.'" name="'.$id.'" value="Del" class="S1"></td>
  </tr>'."\n"; } echo '</table></div></tbody>';


با تشکر
 

Cyletech

Member
1. به قسمت اول میگن pagination یعنی صفحه بندی. اگر سرچ کنی مطالب بیشتری پیدا می کنی.
2. من مشکل حادی تو کد نویسیت نمیبینم.
 

M_cover

Member
2. من مشکل حادی تو کد نویسیت نمیبینم.
من از نظر استاندارد در کد نویسی یعنی حذف کد های اضافی -به کار بردن جایگاه اشتباه کد ها -کاربرد اشتباه و ...
با تشکر
 

Domanjiri

Well-Known Member
سلام
این کد رو جایگزین قسمت های مربوط به این کد کنید(!!) [ اجرا نکردمش ، اگه ارور داد ببینید چی میگه و سعی کنید رفعش کنین]
PHP:
/** **************************************  */
$page = 0;
$page_num = (int)$_GET['p'] - 1;
if ($page_num >= 0) {
    $page = 10 * $page_num;
}

foreach ($readbase as $kc => $db) {
    list($I1, $I2, $I3) = explode('|', trim($db));
    $my_array[] = array($I1, $I2, $I3); //push
}

for ($i = $page; $i < ($page + 10); $i++) {
    print_r($my_array[$i]);
    echo '<hr>';
}

در این صورت اون foreach آخر هم به نظر بی استفاده میاد و خروجی ها رو باید توی همین for چاپ کنید.
لینک صفحه دوم هم میشه همچین چیزی: example.com/index.php?p=2

موفق باشین
 

جدیدترین ارسال ها

بالا