Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

PHP/mySQL - नेस्टेड पंक्तियों को बहुआयामी सरणी में कैसे लाया जाए

क्वेरी कुछ इस तरह दिखनी चाहिए:

SELECT * FROM scales
INNER JOIN items ON scales.id = items.scale_id

यदि आप नेस्टेड लूप के माध्यम से पुनरावृति करना चाहते हैं, तो आपको इस डेटा को एक सरणी में खींचने की आवश्यकता होगी - उम्मीद है कि आप इतना पीछे नहीं खींच रहे हैं कि यह बहुत अधिक मेमोरी को खा जाएगा।

$scales = array();

while ($row = mysql_fetch_assoc($data))
{
    if (!isset($scales[$row['scale_id']]))
    {
        $row['items'] = array();
        $scales[$row['scale_id']] = $row;
    }

    $scales[$row['scale_id']]['items'][] = $row;
}

फिर आप इसके माध्यम से लूप कर सकते हैं:

foreach ($scales as $scale)
{
    foreach ($scale['items'] as $item)
        ; //... do stuff
}

नोट:यह उस $scale में कुछ हद तक भोला है और $item दोनों में BOTH टेबल के फ़ील्ड होंगे ...>

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 30 सेकंड का अधिकतम निष्पादन समय पार हो गया

  2. MySQL - कॉलम से पंक्तियाँ

  3. varchar में कास्ट करें

  4. मैं पायथन में डेटाबेस से CSV फ़ाइल कैसे बनाऊँ?

  5. सभी प्रकार की संभावित भाषाओं का उपयोग करने के लिए मुझे कौन सा COLLATE सेट करना चाहिए?