मैं एक SQL क्वेरी चला रहा हूं जो 18 परिणाम देता है फिर मैं उन्हें फंसाने की कोशिश करता हूं। जब मैं सही समय के बाद आदेश का उपयोग करें mysqli_fetch_array
फंसाना mysqli_fetch_array
परिणाम, मुझे केवल सरणी का पहला तत्व मिलता है। हालांकि जब मैं थोड़ी देर के लूप के साथ ऐसा करता हूं तो यह ठीक काम करता है।
यहाँ मेरा कोड है: (यह समझने में आसानी के लिए सरलीकृत है)
$q = "SELECT id from sr WHERE m_id = "4";";
$my_query = mysqli_query($conn, $q);
$records = mysqli_num_rows($my_query);
echo "records=" . $records;
$result = mysqli_fetch_array($my_query, MYSQLI_ASSOC);
print_r ($result);
$imploded_result = implode(",", $result);
echo "imploded_result=" . $imploded_result;
यहाँ मुझे क्या मिलेगा:
records=14
Array ( [id] => 14 )
imploded_result=14
अब, जब मैं प्रत्यारोपण () के बजाय थोड़ी देर के लूप का उपयोग करता हूं, तो मुझे सही परिणाम मिलते हैं:
$imploded_result = "";
while ($result = mysqli_fetch_array($my_query, MYSQLI_ASSOC))
$imploded_result .= $result["id"] . ",";
echo "imploded_result=" . $imploded_result;
मुझे मिला:
imploded_result=14,21,24,27,28,30,31,32,37,152,155,154,156,157,158,159,181,196,
आपका अग्रिम में ही बहुत धन्यवाद!
उत्तर:
जवाब के लिए 0 № 1मामले में किसी और को एक समान परिणाम प्राप्त करने की आवश्यकता है। मैंने अपनी क्वेरी लाइन में GROUP_CONCAT का उपयोग करने का निर्णय लिया। इसलिए मैंने अपनी क्वेरी लाइन को यहां से बदल दिया:
$q = "SELECT id from sr WHERE m_id = "4";";
सेवा मेरे:
$q = "SELECT GROUP_CONCAT(id ORDER BY id ASC SEPARATOR ",") AS id from sr WHERE m_id = "4";";
जो मुझे मेरा वांछित परिणाम देगा।