微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在PHP中使数组的静态索引

我正在尝试将值从表单收音机存储到数组.但是我面临的问题是每次数组第一个索引都被新值替换.我相信这是范围问题.我也尝试声明全局数组,但没有成功.

这是代码

<?PHP
include_once("connection.PHP");
$c = new DBcon();
$c->startcon();
global $array; // not effecive
//  $q = $_POST['t'];
//  echo 'fff', $q;


$page = $_GET['page'];
echo 'pagesss', $page, 'ppp';
if ($page == "") {

    $page = "1";
} else {

    // If page is set, let's get it
    $page = $_GET['page'];
}

// Now lets get all messages from your database
$sql = "SELECT * FROM quizes";
$query = MysqL_query($sql);

// Lets count all messages
$num = MysqL_num_rows($query);

// Lets set how many messages we want to display
$per_page = "2";

// Now we must calculate the last page
$last_page = $num;

echo 's', $num;

// And set the first page
$first_page = "1";

// Here we are making the "First page" link
echo "<a href='?page=" . $first_page . "'>First page</a> ";

// If page is 1 then remove link from "PrevIoUs" word
if ($page == $first_page) {

    echo "PrevIoUs ";
} else {

    if (!isset($page)) {

        echo "PrevIoUs ";
    } else {

        // But if page is set and it's not 1.. Lets add link to prevIoUs word to take us back by one page
        $prevIoUs = $page - 1;

        echo "<a href='?page=" . $prevIoUs . "'>PrevIoUs</a> ";
    }
}

// If the page is last page.. lets remove "Next" link
if ($page == $last_page) {

    echo "Next ";
} else {

    // If page is not set or it is set and it's not the last page.. lets add link to this word so we can go to the next page
    if (!isset($page)) {

        $next = $first_page + 1;
        echo "<a href='?page=" . $next . "'>Next</a> ";
    } else {

        $next = $page + 1;
        echo "<a href='?page=" . $next . "'>Next</a> ";
    }
}

// And Now lets add the "Last page" link
echo "<a href='?page=" . $last_page . "'>Last page</a>";

// Math.. It gets us the start number of message that will be displayed
$start = ($page * ($page - 1)) / $page;
echo 'start', $start;
echo 'page', $page;
// Now lets set the limit for our query
$limit = "LIMIT $start, $per_page";

// It's time for getting our messages
$sql = "SELECT * FROM quizes $limit";

$query = MysqL_query($sql);

echo "<br /><br />";

// And lets display our messages

$i = 0;
$l = 0;

while ($row = MysqL_fetch_array($query) or die(MysqL_error())) {
    $a = $row['A'];
    echo '<form method="get" action="?page=".$next."">';
    while ($row = MysqL_fetch_array($query)) {

        echo '<div class="Boxed" >';

        echo "\t" . '<tr><th>' .
        $row['question'] . "<br>" .
        '</th><th>' . "<input type='radio' name= 't[]' value='{$row['A']}'>" . $row['A'] . "<br>" .
        '</th><th>' . "<input type='radio' name='t[]' value='{$row['B']}'>" . $row['B'] . "<br>" .
        '</th><th>' . "<input type='radio' name='t[]' value='{$row['C']}'>" . $row['C'] . "<br>" .
        '</th><th>' . "<input type='radio' name='t[]' value='{$row['D']}'>" . $row['D'] . '</th>
                </tr>';
        echo '<input type="hidden" name="page" value="' . $next . '">';
        echo '<input type="submit" name="submit"/>';
        $i++;

        echo '</div>';


        echo '</div>';
    }
    echo '</form>';
    if (isset($_GET['submit'])) {
        $example = $_GET['t'];
        foreach ($example as $value) {
            $array[$i++] = ($value);

            echo "$array[0] <br>"; // printing correct statement but replacing old values with new value everytime.
            echo "$array[1] <br>"; // 0 values
            echo "$array[2] <br>"; // 0 values
        }
    }
}
?>

我看过这些帖子:PHP array indexing: $array[$index] vs $array[“$index”] vs $array[“{$index}”],PHP – define static array of objects但没有帮助.请帮助我该怎么办?

解决方法:

你做不到

$array[$i++]

这将始终是$array [1]
代替做

$i++;
$array[$i]= $value;

附言$array是一个可怕的变量名…

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐