डेटा odbc ड्राइवर का उपयोग करके php में ms एक्सेस डेटाबेस 2007 से पुनर्प्राप्त करें। सभी डेटा क्वेरी का उपयोग करके पुनर्प्राप्त करते हैं लेकिन इसका केवल एक रिकॉर्ड प्राप्त होता है अन्य डेटा पुनर्प्राप्त नहीं किया जाता है।

क्वेरी तीन रिकॉर्ड के नीचे लेकिन इसके केवल एक डेटा को पुनः प्राप्त किया। php में कोड के नीचे कौन सी समस्या है? इस कोड से क्वेरी का उपयोग करके सभी डेटा कैसे प्राप्त करें, इसमें क्या बदलाव आया है?

 <?PHP

    include 'Connection2.php';



    $sql = "select FYearID,Description,FromDate,ToDate  from mstFinancialyear";


    $stmt = odbc_exec($conn, $sql);
    //print_r($stmt);
    $rs = odbc_exec($conn, "SELECT Count(*) AS counter from mstFinancialyear");

    //print_r($stmt);

    $arr = odbc_fetch_array($rs);
    $arr1 = $arr['counter'];
    $result = array(); 

    //print_r($arr);


     if (!empty($stmt)) {

            // check for empty result
            if ($arr1 > 0) {
    // print_r($stmt);

                $stmt1 = odbc_fetch_array($stmt);




               $year = array();
                $year['FYearID'] = $stmt1['FYearID'];
                $year['Description'] = $stmt1['Description'];
                $year['FromDate'] = $stmt1['FromDate'];
                $year['ToDate'] = $stmt1['ToDate'];


                // success
                $result["success"] = 1;

                // user node
                $result["year"] = array();


                array_push($result["year"], $year); 

                echo json_encode($result);

                //return true;

            } else {
                // no product found
                $result["success"] = 0;
                $result["message"] = "No product found";




                echo json_encode($result);


            }


            odbc_close($conn); //Close the connnection first
    }

    ?>
0
Kanan 6 अप्रैल 2019, 10:00

1 उत्तर

सबसे बढ़िया उत्तर

आप JSON डेटा में केवल एक रिकॉर्ड लौटाते हैं क्योंकि आप रिकॉर्डसेट के माध्यम से पुनरावृति नहीं करते हैं। प्रारंभ में मैंने गलत पढ़ा था कि आपने एक ही रिकॉर्डसेट पर दो बार odbc_fetch_array को कॉल किया था, लेकिन करीब से निरीक्षण करने पर देखें कि जहां तक ​​​​मैं बता सकता हूं, एक क्वेरी का उपयोग किया जाता है, यह देखने के लिए कि क्या कोई रिकॉर्ड मुख्य से वापस आने की संभावना है जिज्ञासा। नीचे दिए गए पुन: लिखित कोड का परीक्षण नहीं किया गया है - मेरे पास ऐसा करने का कोई साधन नहीं है - और केवल एक ही प्रश्न है लेकिन लूप के माध्यम से पुनरावृति करने का प्रयास करता है।

मैंने count को मुख्य क्वेरी में उप-क्वेरी के रूप में शामिल किया था, अगर किसी कारण से रिकॉर्ड की संख्या की आवश्यकता थी - मुझे नहीं लगता कि यह है।

<?php

    include 'Connection2.php';

    $result=array();

    $sql = "select 
            ( select count(*) from `mstFinancialyear` ) as `counter`,
            `FYearID`, 
            `Description`,
            `FromDate`,
            `ToDate` 
        from 
        `mstFinancialyear`";

    $stmt = odbc_exec( $conn, $sql );

    $rows = odbc_num_rows( $conn );
    /* odbc_num_rows() after a SELECT will return -1 with many drivers!! */


    /* assume success as `odbc_num_rows` cannot be relied upon */
    if( !empty( $stmt ) ) {

        $result["success"] = $rows > 0 ? 1 : 0;
        $result["year"] = array();

        /* loop through the recordset, add new record to `$result` for each row/year */
        while( $row=odbc_fetch_array( $stmt ) ){ 

            $year = array();
            $year['FYearID'] = $row['FYearID'];
            $year['Description'] = $row['Description'];
            $year['FromDate'] = $row['FromDate'];
            $year['ToDate'] = $row['ToDate'];

            $result["year"][] = $year;

        }
        odbc_close( $conn );
    }

    $json=json_encode( $result );
    echo $json;
?>
0
Professor Abronsius 6 अप्रैल 2019, 07:52