首页 > 解决方案 > 如何将 MySQL 表记录变成 PHP 参数

问题描述

我想从从while循环中获取的单选按钮中检索值,其中name属性是$row['id_question'],然后我想计算该值,所以我需要array_count_value(),我不知道如何将其更改$row['id_question']为参数array_count_value()

我收到错误:

未定义索引:& array_count_values() 中的答案期望参数 1 为数组,给定 null

我试图把它变成一个变量 $answer = $_POST['answer']

但我认为它不会起作用(有效)

这是代码:

<?php
    while ($row = mysqli_fetch_array($result)) {
        echo "<br/>" . $row['question'];
        echo "<br/>";
        echo "
        <label class='radio-inline'><span>YES</span>
            <input type='radio' class='form-check-label' name= 'answer[".$row['id_question']."]' checked value='1'/>
        </label>
        <label class='radio-inline'><span>NO</span>
            <input type='radio' class='form-check-label' name= 'answer[".$row['id_question']."]' checked value='2'/>
        </label>
        ";
    }
    $answer = $_POST['answer'];
    if (isset($_POST['submit']) ){
        print_r($answer); 
    }
    print_r(array_count_values($answer));

?>

标签: phpmysql

解决方案


嗯......似乎你有一条公平的路要走,在这之前它会起作用。:-/

我想我会从打印出$rows 开始 - 确保你实际上在那个while-loop 中得到了一些东西。

请记住,在 while 循环之前实例化一个变量,然后在 while 循环中填充它。像这样的东西:

<?php
$answer = '';
while ($row = mysqli_fetch_array($result)) {

    // What happens here? :-)
    echo "<pre";
    print_r( $row );
    echo "<pre";

    echo "<br/>" . $row['question'];
    echo "<br/>";
    echo "
    <label class='radio-inline'><span>YES</span>
        <input type='radio' class='form-check-label' name= 'answer[".$row['id_question']."]' checked value='1'/>
    </label>
    <label class='radio-inline'><span>NO</span>
        <input type='radio' class='form-check-label' name= 'answer[".$row['id_question']."]' checked value='2'/>
    </label>
    ";
}

$answer = $_POST['answer'];

// FALLBACK SO IT DOESN'T CRASH AND BURN
if( ! $answer ){
  echo '$answer was null again! I'll save you, by assigning it an empty array. :-) ';
  $answer = []; 
}
// END OF FALLBACK

if (isset($_POST['submit']) ){
    print_r($answer); 
}
print_r(array_count_values($answer));
?>

而你得到的错误('Undefined index: answer in'...) - 那是因为$_POST['answer']没有定义, - 因此$answer将设置为null。并且array_count_values需要一个数组作为输入,它不能为空。

我希望这有帮助。:-)


推荐阅读