• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل کد نویسی در ارتباط با پایگاه داده
#1
سلام

من یک select از جدول mysql زدم نتیجشو ریختم تو یک شی از یک کلاس ، اون کلاس اشیا رو بصورت آرایه می ساره ، که هر خونه ارایه خودش یک شی از یک کلاس دیگه بعبازتی یه سطر جدوله ، چطور می تونم واسه نتایج select مشخص کنم مثلا فقط رکورد یک تا پنج رو چاپ کنه ؟؟؟؟؟؟ یا مثلا رکورد ده تا پونزده رو چاپ کنه؟؟ در ضمن نمتونم از limit واسه select استفاده کنم ، نمونه شی ساختم بصورت زیره با دستور foreach مثل زیر همه سطرهای جدول رو داره ،
کد پی‌اچ‌پی:
$cat_book=new validate_cat_books();
                                
$cat_books=$cat_book->call_action('select','','','');
 
                         foreach(
$cat_books as $re=>$row)
                         {

اینم کلاس validate_cat_books()

کد پی‌اچ‌پی:
<?php

include "cat_books.php";
include 
"cat_books_query.php";

class 
validate_cat_books
    
{
        static  function 
call_action ($action,$id,$cat_books,$img_id)
            
        { 
        
           switch(
$action
            { 
            case 
'select':
                    
                
$book=validate_cat_books::set_fields($id,$cat_books,$img_id);
                
$cat_books_query=new cat_books_query();
                
$selresult=$cat_books_query->select($book,$id);
               
                
                return 
$selresult;
            break;                
.........}}

static  function 
set_fields($id,$cat_books,$img_id){
    
        
$cat=new cat_books();
        
$cat->set_id($id);
        
$cat->set_cat_books($cat_books);
        
$cat->set_img_id($img_id);
        
        
        return 
$cat;    
    } 

و کلاس cat_books_query()
کد پی‌اچ‌پی:
<?php
//require( "../tree_layer/config.php");


 
class cat_books_query
     
{
        
     
         public function 
select($cat,$id)
         { 
         
$pdo=config::connect();
            
             
$sql="select * from cat_books";
             
             if(
$id !="")
             {
                  
$sql.=" where id=".$id;
             }
             
$stmt $pdo->prepare($sql);
             
$stmt->execute();
             
             
             
           
//while($row = mysql_fetch_assoc($resultt)){
              
$row=$stmt->fetchAll(PDO::FETCH_ASSOC);    
            
//while($row=mysql_fetch_array($resultt)){
        
foreach ($row as $key=>$value)
        {
            
            
            
$cat=new cat_books();
        
$cat->set_id($value['id']);
        
$cat->set_cat_books($value['cat_books']);
        
$cat->set_img_id($value['img_id']);
        
        
                    
            
$sel_result[]=$cat;
        }
        return 
$sel_result;
            
             
         
        
         } 
  پاسخ
تشکر شده توسط :
#2
نقل قول:در ضمن نمتونم از limit واسه select استفاده کنم

چرا؟
هنگام select از چه روشی برای محدود کردن تعداد رکورد های دریافتی استفاده میکنید؟ خوندن تمام اطلاعات یک جدول شاید در این مورد مشکلی ایجاد نکنه اما موضوعی نیست که بشه ساده ازش گذشت.

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

پ.ن: استفاده از limit offset برای جداول کوچک مناسبه.
هر چیزی که در جستن آنی آنی...
غایب
  پاسخ
تشکر شده توسط :
#3
اخه من میخوام ا واسه سمت مدیر طلاعات رو تو یک جدول بریزم بعد جدول رو صفحه بندی کردم ، عکس page هم فرستادم ، صفحه اول رکورد یک تا پنج صفحه دوم رکورد پنج تا ده حالا اگه هربار بخوام برا هر صفحه به mysql وصل شم فکر کردم چون جدولم خیلی رکورد داره و بزرگه هزینه بر باشه هزینه بره بنظرشما ؟؟؟؟؟؟؟ نمدونم بخداHuhHuh


فایل‌های پیوست تصاویر بندانگشتی
   
  پاسخ
تشکر شده توسط :
#4
نقل قول:حالا اگه هربار بخوام برا هر صفحه به mysql وصل شم فکر کردم چون جدولم خیلی رکورد داره و بزرگه هزینه بر باشه هزینه بره بنظرشما ؟؟؟؟؟؟؟ نمدونم بخدا

روش شما مشکل رو برطرف نمیکنه.
از طرفی، شما میخوایید در هر صفحه 5 رکورد رو به کاربر نشون بدین، بعد از خوندن تمام اطلاعات یک جدول اونارو کجا نگه داری میکنید؟ در هنگام کلیک روی صفحه ی بعد چه اتفاقی میوفته؟
برای کاهش فشار پایگاه داده میتونید اطلاعات رو کش کنید

اگر جدول شما بزرگه و شامل اطلاعات زیادی میشه بهتره برای صفحه بندی اینجا رو مطالعه کنید

فراموش نکنید ما به اطلاعات بیشتر از یک میلیون رکورد میگیم جدول بزرگ. که صفحه بندی به روش limit offset میتونه براتون مشکل ساز باشه.
هر چیزی که در جستن آنی آنی...
غایب
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان