Как я могу вернуть весь набор результатов MySQL, и по одному установить каждую строку в виде массива? - PullRequest
0 голосов
/ 18 апреля 2010
foreach($scraperSites as $site) {

    //$scraperWriter->addSite( new ScraperSite($site) );
    print_r($site);

}

scraperSites - это массив всех сайтов из базы данных mySQL; Я пытаюсь сохранить $ site в виде массива (но только с данными из одной строки), добавить его к объекту, а затем перейти к следующей строке.

1 Ответ

1 голос
/ 18 апреля 2010

После просмотра вашего кода я думаю, что это ваша проблема:

public static function getScrapedSites($db) {

    $query = "select * from sites";
    $result = $db->query($query);
    $scrapedSites = $result->fetch_assoc();

    return $scrapedSites;

}

Я полагаю, что всегда вернет одну строку. Вам нужно перебрать результаты с помощью fetch_assoc() и добавить результаты в массив.

public static function getScrapedSites($db) {

    $query = "select * from sites";
    $result = $db->query($query);

    $scrapedSites = array();

    foreach($result->fetch_assoc() as $site) {
      $scrapedSites[] = $site;
    }

    return $scrapedSites;
}

Вы сказали, что $site выводит строку в вашем примере. Это потому, что ваш цикл foreach итерируется по полям БД в ассоциативном массиве.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...