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

अक्षम SQL क्वेरी

आप इस क्वेरी को चला सकते हैं:

SELECT c.id AS cid, c.slug AS cslug, c.name AS cname,
    s.id AS sid, s.name AS sname
FROM categories AS c
    LEFT JOIN snippets AS s ON s.category = c.id
WHERE c.live=1
ORDER BY c.name, s.name

फिर उचित शीर्षक बनाने के लिए परिणामों के माध्यम से पुनरावृति करें जैसे:

// last category ID
$lastcid = 0;
while ($r = $navQuery->fetch_object ()) {

    if ($r->cid != $lastcid) {
        // new category

        // let's close the last open category (if any)
        if ($lastcid)
            printf ('</li></ul>');

        // save current category
        $lastcid = $r->cid;

        // display category
        printf ('<li><a href="/%s">%s</a>', $r->cslug, $r->cname);

        // display first snippet
        printf ('<li><a href="/%s/%s">%s</a></li>', $r->cslug, $r->sname, $r->sname);

    } else {

        // category already processed, just display snippet

        // display snippet
        printf ('<li><a href="/%s/%s">%s</a></a>', $r->cslug, $r->sname, $r->sname);
    }
}

// let's close the last open category (if any)
if ($lastcid)
    printf ('</li></ul>');

ध्यान दें कि मैंने printf . का उपयोग किया है लेकिन आपको इसके बजाय अपने स्वयं के फ़ंक्शन का उपयोग करना चाहिए जो प्रिंटफ के चारों ओर लपेटता है, लेकिन चलता है htmlspecialchars मापदंडों के माध्यम से (पहले पाठ्यक्रम को छोड़कर)।

अस्वीकरण:मैं जरूरी नहीं कि <ul> . के इस तरह के उपयोग को प्रोत्साहित करता हूं स.

यह कोड केवल एक क्वेरी के साथ प्राप्त पदानुक्रमित डेटा को संसाधित करने के मूल विचार को दिखाने के लिए यहां है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP रीयलटाइम का उपयोग कर MySQL से डेटा हथियाना?

  2. MySQL में प्रारूप दिनांक आईएसओ 8601 के रूप में चुनें

  3. मेरे बैकअप सर्वर पर MySQL और FTP बैकअप का बैकअप लेने के लिए क्रॉन जॉब कैसे बनाएं?

  4. sqljocky डेटाबेस को समकालिक रूप से क्वेरी कर रहा है

  5. php और MySQL का उपयोग करके टेबल अकॉर्डियन