2015-12-14 2 views
3

Я использую PHO PDO и получаю его, чтобы вернуть ассоциативный массив.Как получить содержимое ассоциативного массива, возвращаемого pdo в массив

Я могу пропустить ассоциативный массив, созданный PDO, но я не могу решить, как вернуть массив из функции.

function wantedrentals($provence, $country, $dbh) 
    { 
     echo "Now in wanted wanted rentals function<br><br>"; 

     $journeyrentalssarray = array(); 

     $sth = $dbh->query("SELECT summary, url, provence, country from tblAccomadation WHERE country = $country "); 

    # setting the fetch mode 
    $sth->setFetchMode(PDO::FETCH_ASSOC); 

    while($row = $sth->fetch()) 
     { 
      echo $row['summary'] . "\n"; 
      echo $row['url'] . "\n"; 
      echo $row['provence'] . "\n"; 
      echo $row['country'] . "\n"; 
     } 

    return $journeyrentalssarray; 
    } 

Я очень новичок в PHP и PDO и буду признателен за любую помощь.

+0

то, что вы получаете за 'var_dump ($ строки);'? –

+0

Возможно, вы захотите посмотреть: [PDOStatement :: fetchAll] (http://php.net/manual/en/pdostatement.fetchall.php). Эта функция возвращает весь результат как массив. –

ответ

0
function wantedrentals($provence, $country, $dbh) 
    { 
     echo "Now in wanted wanted rentals function<br><br>"; 

     $journeyrentalssarray = array(); 

     $sth = $dbh->query("SELECT summary, url, provence, country from  tblAccomadation WHERE country = '$country' "); 

    # setting the fetch mode 
    $sth->setFetchMode(PDO::FETCH_ASSOC); 

    while($row = $sth->fetch()) 
     { 
      $journeyrentalssarray[] = $row; // add $row to $journeyrentalssarray array 
      echo $row['summary'] . "\n"; 
      echo $row['url'] . "\n"; 
      echo $row['provence'] . "\n"; 
      echo $row['country'] . "\n"; 
     } 

    return $journeyrentalssarray; 
    } 
+0

Большое спасибо. – Mesogi

+0

Благодарим вас за отзыв. Если опубликованное решение работает для вас, вы должны отметить его как «Решение», чтобы начислять баллы за ответ. – maxhb

-1

Вы можете это так

function wantedrentals($provence, $country, $dbh) 
    { 
     echo "Now in wanted wanted rentals function<br><br>"; 

     $journeyrentalssarray = array(); 

     $sth = $dbh->query("SELECT summary, url, provence, country from tblAccomadation WHERE country = $country "); 

    # setting the fetch mode 
    //$sth->setFetchMode(PDO::FETCH_ASSOC); 

    return $sth->fetch(PDO::FETCH_ASSOC); 
    } 

PDO :: FETCH_ASSOC будет возвращает массив индексированных по имени столбца, возвращаемые в результирующем наборе.

Возвращаемое значение функции выборки при успешном выполнении зависит от типа выборки в вашем случае, когда FETCH_ASSOC и FALSE возвращаются при ошибке.

Для получения дополнительной информации, пожалуйста, прочитайте here

Мы также можем использовать fetchAll, чтобы получить массив всех результирующих наборов строк. Таким образом, функция может выглядеть так.

function wantedrentals($provence, $country, $dbh) 
     { 
      echo "Now in wanted wanted rentals function<br><br>"; 

      $journeyrentalssarray = array(); 

      $sth = $dbh->query("SELECT summary, url, provence, country from tblAccomadation WHERE country = $country "); 


     return $sth-> fetchAll(PDO::FETCH_ASSOC); 
     } 

Для получения дополнительной информации, пожалуйста, прочитайте here

+0

Это вернет только 1 строку, а затем остановится. – Rizier123

+0

Большое спасибо. – Mesogi

+0

Вам это помогает? : D –

Смежные вопросы