PHP / MySQL Sorunu

1 Cevap php

Neden bu sadece ilk site altında siteler belirli içeriği yazdırmak etmez ve diğer 2 için bunu yapmaz?

<?php
        echo 'NPSIN Data will be here soon!';

        // connect to DB
        $dbhost = 'localhost';
        $dbuser = 'root';
        $dbpass = 'root';

        $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to DB');

        $dbname = 'npsin';

        mysql_select_db($dbname);

        // get number of sites
        $query = 'select count(*) from sites';
        $result = mysql_query($query) or die ('Query failed: ' . mysql_error());

        $resultArray = mysql_fetch_array($result);
        $numSites = $resultArray[0];

        echo "<br><br>";

        // get all sites
        $query = 'select site_name from sites';
        $result = mysql_query($query);

        // get site content
        $query2 = 'select content_name, site_id from content';
        $result2 = mysql_query($query2);

        // get site files


        // print info
        $count = 1;
        while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
                echo "Site $count: ";
                echo "$row[0]";
                echo "<br>";
                $contentCount = 1;
                while ($row2 = mysql_fetch_array($result2, MYSQL_NUM)) {
                        $id = $row2[1];
                        if ($id == ($count - 1)) {
                                echo "Content $contentCount: ";
                                echo "$row2[0]";
                                echo "<br>";
                        }

                        $contentCount++;
                }

                $count++;
        }
?>

1 Cevap

Sorun varsayalım olmasıdır kez bu başlangıcına $result2 sorgu sıfırlamak edeceğiz, site satır olarak aynı kimliğe sahip satırın arıyor tamamladı. Bu, (Eğer iki sorgu sıralamak olmadıkça) senden sonra while döngüsünün ikinci geçiş kalan herhangi bir sonuç olmazdı ki, ilk satırı bulmak anlamına gelir. Sen değerini almak için bir dizi arama kullanarak önce ve sonra iç while döngüsü önbelleğe alma düşünmelisiniz.

Daha iyi bir çözüm yer alacağı bir sites bu karmaşık eşleştirme işlemi gerektirmez hangi content ila katılın. Katıldı SQL ÇOK önemli bir parçası olan, son derece bunları nasıl kullanacağınızı öğrenmek öneririz. http://dev.mysql.com/doc/refman/5.0/en/join.html