PHP / MySQL - 尝试通过页面URL从MySQL获取数组传递查询变量

时间:2013-09-04 20:41:00

标签: php mysql arrays get

我正在运行一个脚本,该脚本从MySQL表中获取一行,然后应该将该行中的某些变量传递给下一页,以便在允许用户更新的表单中使用。

以下是试图将变量传递到下一页的脚本的摘录:

if ($row['home_score'] == '0' && $row['away_score'] == '0') {
        echo '<td><a href="report_score.html?league=test_league&game_id=" . $row['game_id']"><img src="images/report_icon.png" alt="Report Score" /></a></td>';        
    }

如果我在href中的“&amp; game_id =”之后省略了所有内容,则显示正常。但是,一旦我开始添加变量,它就会切断功能并停止显示页面。

我在语法上做了一些简单的错误吗?我试过用不同的方法来编写它,但无济于事。我是否需要利用http_build_query()来完成这项工作?

如果您需要更多信息,请参阅以下完整的脚本代码:

<?php

// Connect to the database:
require ('../mysqli_connect.php');

// Make the query for games from the schedule database and determine the game location:
$q = "SELECT tl.game_date, tl.game_time, tl.away_team, tl.home_team, tl.home_score,tl.away_score, tl.arbiter_id, us.football_location, us.football_map 
FROM test_league tl
    INNER JOIN user_schools us ON (tl.home_team = us.school_name)
ORDER BY tl.game_id";
$r = mysqli_query($db, $q);

// Declare two variables to help determine the background color of each row:
$i = 0;
$bgcolor = array('row1', 'row2');

// Begin function to print each game as a row:
while ($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) {

    echo '<tr class="' . $bgcolor[$i++ % 2] .'"><td>' . $row['game_date'] . '</td><td>' . $row['game_time'] . '</td><td class="alignleft"><a href="">' . $row['away_team'] . '</a> vs<br><a href="">' . $row['home_team'] . '</a></td>';

    // Determine if the score has been reported:
    if ($row['home_score'] == '0' && $row['away_score'] == '0') {
        echo '<td><a href="report_score.html?league=test_league&game_id=" . $row['game_id']"><img src="images/report_icon.png" alt="Report Score" /></a></td>';        
    } else {
        echo '<td>' . $row['home_score'] . '<br>' . $row['away_score'] . '</td>';
    }

    echo '<td><a href="' . $row['football_map'] . '" target="_blank">' . $row['football_location'] . '</a></td><td><a href="">' . $row['arbiter_id'] . '</a></td></tr>';

}

mysqli_free_result ($r);

mysqli_close($db);

?>

非常感谢任何建议!

2 个答案:

答案 0 :(得分:1)

试试这个,你的语音标记和点混合起来了:)

if ($row['home_score'] == '0' && $row['away_score'] == '0') {
    echo '<td><a href="report_score.html?league=test_league&game_id=' .$row['game_id']. '"><img src="images/report_icon.png" alt="Report Score" /></a></td>';        
}

希望这有帮助!

答案 1 :(得分:1)

$url = 'www.example.com?' . http_build_query($row,'','&amp;');