2017-02-10 10 views
5

मेरे पास एक संपत्ति तालिका है और इसमें छह कॉलम हैं। उपयोगकर्ता अपलोड फोटो और छवि नाम कॉलम में संग्रहीत किया जाता है।पंक्तियों में खाली कॉलम की गणना

अब मैं खाली प्रत्येक पंक्ति के लिए कॉलम की संख्या गिनना चाहता हूं।

मैं पहले से ही ऐसा करने में सक्षम हूं लेकिन कोड बहुत लंबा दिखता है, मैं कुशल कोड लिखना चाहता हूं, क्या निम्न कुशलता से फिर से लिखने का कोई तरीका है।

while($data=$select->fetch()){ 

    $imagecounter=0; 
    if ($data['property_image1'] !== "" && $data['property_image2'] !== "" && $data['property_image3'] !== "" && $data['property_image4'] !== "" && $data['property_image5'] !== "" && $data['property_image6'] !== "") { 
    echo $imagecounter=6; 
    } else if ($data['property_image1'] !== "" && $data['property_image2'] !== "" && $data['property_image3'] !== "" && $data['property_image4'] !== "" && $data['property_image5'] !== "") { 
    echo $imagecounter=5; 
    } else if ($data['property_image1'] !== "" && $data['property_image2'] !== "" && $data['property_image3'] !== "" && $data['property_image4'] !== "") { 
    echo $imagecounter=4; 
    } else if ($data['property_image1'] !== "" && $data['property_image2'] !== "" && $data['property_image3'] !== "") { 
    echo $imagecounter=3; 
    } else if ($data['property_image1'] !== "" && $data['property_image2'] !== "") { 
    echo $imagecounter=2; 
    } else if ($data['property_image1'] !== "") { 
    echo $imagecounter=1; 
    } 

} 

उत्तर

2

आप नीचे दिए गए है जैसे कि यह कर सकते हैं: -

while($data=$select->fetch()){ 
    $data1 = array($data['property_image1'],$data['property_image2'],$data['property_image3'],$data['property_image4'],$data['property_image5'],$data['property_image6']); 
    $count = count($data1); // count of original array 
    $count1 = count(array_filter($data1)); // remove empty indexes and count the values 

    echo "empty columns number is :-".($count-$count1); 
} 

नोट: - $count1 गैर खाली मान

+0

बहुत अधिक डेटा आ रहा है, वहां कई और कॉलम हैं, लेकिन मैं केवल इन छह कॉलमों को देखना चाहता हूं ... – DragonFire

+0

यह भी काम कर रहा है – DragonFire

+0

क्या होगा यदि हम प्राप्त करना चाहते हैं नतीजतन - कितने फ़ील्ड खाली नहीं हैं ... – DragonFire

1

की गिनती है इस कोड की कोशिश

while($data=$select->fetch()): 
    $imagecounter = 0; 
    for($i=1; $i<=6; $i++) 
     if(!empty($data["property_image$i"])) 
      $imagecounter++; 

    echo $imagecounter; 
endwhile; 
+0

@ ड्रैगनफायर: इस कोड के बारे में क्या? – bfahmi

+0

दो लूप –

+0

की वजह से समय लेने की भावना में अच्छा कोड नहीं है यह – DragonFire

1

कॉलम नाम एच करता है इसके नियम के रूप में?

यह मानते हुए कि 'property_image {संख्या}'

while($row=$result->fetch()) { 
    $count = 0; 
    for($i=0; $i<6; $i++) { 
     if($row['property_image'.$i]==NULL) 
      $count++; 
    } 
    echo "empty columns number is :-".($count); 
} 

कोड का परीक्षण नहीं किया गया है। मुझे यह बताएं कि यह

संबंधित मुद्दे