카테고리 없음

[PHP] OOP PHP MySQL은 여러 행과 변수를 반환합니다.

행복을전해요 2021. 1. 19. 16:05
  1. PHP4 OOP 스타일을 코딩하고 있습니다. 이것은 매우 구식입니다. 사용하지 마십시오 var, 사용 public, protected, private.

  2. $this->title = $rowmenu[title]여기서는 title상수 (따옴표 없음)로 사용됩니다. 적절한 : $this->title = $rowmenu['title'], 다음 과 동일$rowcategories[title]

  3. "SELECT * FROM $db"이 올바른지? 아니면 SELECT * FROM menu WHERE xxx='" . $db . "'조회가 실패하면 오류를 포착합니까?

개선하려면 PHP 디자인 패턴과 코드 스타일도 살펴 봐야합니다!

-------------------

PHP 코드를 따라보십시오

<?

class Menu {

var $title;
var $url;

    function setMenu($db) {
            $mydbMenu = new myDBC();
                    $resultmenu = $mydbMenu->runQuery("SELECT * FROM `$db`");
                            $resultmenurows = mysqli_num_rows($resultmenu);
                                    $this->title = array();
                                            $this->url = array();
                                                    while ($rowmenu = $mydbMenu->runFetchArray($resultmenu)) {
                                                                $this->title[] = $rowmenu['title'];
                                                                            $this->url[] = $rowmenu['url'];
                                                                                    }
                                                                                        }
                                                                                        
                                                                                            function getTitle($ind) {
                                                                                                    return $this->title[$ind];
                                                                                                        }
                                                                                                        
                                                                                                            function getUrl($ind) {
                                                                                                                    return $this->url[$ind];
                                                                                                                        }
                                                                                                                        
                                                                                                                        }
                                                                                                                        ?>
                                                                                                                        

그리고 HTML

<div id="categories">
    <ul>
            <?
                    $catmenu = new Menu();
                            $catmenu->setMenu('category');
                                    $i = 0;
                                            while ($catmenu->getTitle($i)) {
                                                        echo '<li><a href="' . ROOT_URL . $catmenu->getUrl($i) . '">' . $catmenu->getTitle($i) . '</a></li>';
                                                                    $i++;
                                                                            }
                                                                                    ?>
                                                                                        </ul>
                                                                                        </div>
                                                                                        
                                                                                        <div id="navigation">
                                                                                            <ul>
                                                                                                    <?
                                                                                                            $navmenu = new Menu();
                                                                                                                    $navmenu->setMenu('navigation');
                                                                                                                            while ($navmenu->getTitle($i)) {
                                                                                                                                        echo '<li><a href="' . ROOT_URL . $navmenu->getUrl($i) . '">' . $navmenu->getTitle($i) . '</a></li>';
                                                                                                                                                    $i++;
                                                                                                                                                            }
                                                                                                                                                                    ?>
                                                                                                                                                                        </ul>
                                                                                                                                                                        </div>
                                                                                                                                                                        


출처
https://stackoverflow.com/questions/22008799