2013-05-24 11 views
9

मैं तैयार बयानों के बारे में सीख रहा हूं और एक क्वेरी के साथ काम करने की कोशिश कर रहा हूं जो परिणामों की कई पंक्तियां उत्पन्न करता है। अभी, मैं बस यह पता लगाने की कोशिश कर रहा हूं कि पंक्तियों की संख्या कैसे निर्धारित करें और फिर उस नंबर को HTML में प्रदर्शित करें।तैयार वक्तव्य - पंक्तियों की संख्या

if($stmt = $mysqli -> prepare("SELECT field1, field2, field3 FROM table WHERE id= ?ORDER BY id ASC")) 
    { 
    /* Bind parameters, s - string, b - blob, i - int, etc */ 
    $stmt -> bind_param("i", $id); 
    $stmt -> execute(); 

    /* Bind results */ 
    $stmt -> bind_result($testfield1, $testfield2, $testfield3); 

    /* Fetch the value */ 
    $stmt -> fetch(); 

    /* Close statement */ 
    $stmt -> close(); 
    } 

मैं समझता हूँ कि मैं पहले परिणाम को बचाने के लिए माना जाता रहा हूँ, तो इस तरह num_rows उपयोग करते हैं,:

$stmt->store_result(); 
$stmt->num_rows; 

हालांकि, मैं कर रहा हूँ

मेरे तैयार बयान इस तरह दिखता है जब मैं उस कोड को वहां डालता हूं तो पेज को घुमाने और जारी करने के साथ समस्या उत्पन्न होती है। मैं

की संख्या को प्रदर्शित करने के अगले चरण तक पहुंचने में भी सक्षम नहीं हूं, इसलिए सवाल यह है कि: तैयार कथन के अंदर पंक्तियों की संख्या की गणना करने के मामले में मुझे क्या याद आ रही है, फिर कैसे क्या मैं इसे <?php echo '# rows: '.$WHATGOESHERE;?>

धन्यवाद के साथ प्रदर्शित करूंगा !!

उत्तर

12

num_rows संख्या देता है, आपको इसे एक चर में स्टोर करना होगा।

if($stmt = $mysqli -> prepare("SELECT field1, field2, field3 FROM table WHERE id= ? ORDER BY id ASC")) 
    { 
    /* Bind parameters, s - string, b - blob, i - int, etc */ 
    $stmt -> bind_param("i", $id); 
    $stmt -> execute(); 

    /* Bind results */ 
    $stmt -> bind_result($testfield1, $testfield2, $testfield3); 

    /* Fetch the value */ 
    $stmt -> fetch(); 
    $numberofrows = $stmt->num_rows; 

    /* Close statement */ 
    $stmt -> close(); 
    } 
echo '# rows: '.$numberofrows; 
+0

कहाँ यह तैयार बयान मैं पोस्ट में जाना है:

/*.....other code...*/ $numberofrows = $stmt->num_rows; /*.....other code...*/ echo '# rows: '.$numberofrows; 

तो पूर्ण कोड कुछ इस तरह होना चाहिए? निष्पादित करने के बाद()? Bind_result के बाद, या लाने के बाद? फर्क पड़ता है क्या? – Kevin

+0

@ केविन मुझे विश्वास नहीं है। बस सुनिश्चित करें कि यह निष्पादन के बाद चला जाता है और यह –

+0

ठीक होना चाहिए और जिस तरह से आप '?' और 'ORDER BY' के बीच एक जगह भूल गए हैं। मैं –

-2

बाहर चेक उदाहरण # 2 यहाँ: PHP.net

उपयोग पीडीओ :: क्वेरी() अपने इच्छित SELECT कथन के रूप में ही विधेय के साथ एक COUNT का चयन करें (*) बयान जारी करने के लिए है, तो PDOStatement का उपयोग करें: : fetchColumn() पंक्तियों की संख्या को पुनर्प्राप्त करने के लिए जो वापस किया जाएगा। आपका आवेदन तब सही कार्रवाई कर सकता है।

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