преобразовать столбец в базе данных в массив Php

#php

#php

Вопрос:

Я хочу добавить столбец в mysql в массив.

я хочу таким образом

 $php_framework = array("Stack", "Over", "Flow", "Php", "Sql");
  

я пробовал это, но не работает

 $cek = $db->query("select * from anket order by cevap_id desc ",PDO::FETCH_ASSOC);
            
if(empty($cek)){echo "<br/><center><p><h1>Aradığın ile ilgili bişey yok.</h1><p></center>";}              

foreach($cek as $m){  
    $php_framework = array($m['cevap']);
} 
  

я хочу создать систему опроса. в $php_framework перечислены результаты

большое вам спасибо

Ответ №1:

Похоже, вы перезаписываете массив на каждой итерации. Сложно сказать наверняка, но попробуйте добавить элементы в массив.

 <?php

...

// Initialize the array
$php_framework = array();

foreach($cek as $m){  
    // Keep appending elements to the array. 
    $php_framework[] = $m['cevap'];
} 

var_dump($php_framework);
  

Ответ №2:

сначала вы не должны проверять результат запроса, проверяя его с помощью пустой функции

даже запросы, в которых нет ни одной записи, возвращают экземпляр класса PDOStatements, поэтому, даже если результат вашего запроса пуст, проверяя переменную запроса, вы не можете указать, имеет ли запрос какую-либо запись или нет

для проверки того, что в вашем запросе есть какая-либо запись, лучшим способом является использование rowCount, которое показывает вам количество строк результата вашего запроса. поэтому проверьте, что rowCount больше 0 или нет.

 <?php
// query
$cek = $db->prepare('SELECT * FROM `anket` ORDER BY `cevap_id` DESC');
$cek->execute();

// checking query has any record or not
if($cek->rowCount() < 1){
    print 'no record found!';
}else{
    // your process
}
  

и, наконец, для сохранения значений столбца в массиве, вы должны создать его и в циклах помещать значение вашего столбца для каждой строки в каждом цикле итерации

 <?php
// query
$cek = $db->prepare('SELECT * FROM `anket` ORDER BY `cevap_id` DESC');
$cek->execute();

// checking query has any record or not
if($cek->rowCount() < 1){
    print 'no record found!';
}else{
    
    // your array
    $php_framework = [];
    
    // your process
    while($row = $cek->fetch(PDO::FETCH_ASSOC)){
        $php_framework[] = $row['amirali']; // put your column name instead of "amirali"
    }
    
    print_r($php_framework);
    
    // or
    
    var_dump($php_framework);
}