无法在我的数据库输出中显示第二个单词

时间:2013-05-02 16:51:58

标签: php

我这里有一个奇怪的问题。 我正在做一个管理页面来编辑电影信息。我的数据库中有一部名为“Blood Diamonds”的电影,但在电视上它只显示“Blood”而没有第二个字“diamond”,我找不到为什么。

require('../classes/movie_class.php');
$moviecinemas = movie::get_movie_info( $_GET['movie_id']);

foreach ($moviecinemas as $movie)
{
    $movie_id = $movie['movie_id'];
    $movie_name = $movie['movie_name'];
    $movie_category = $movie['movie_category'];
    $movie_display = $movie['movie_display'];


    echo "<input name='movieid' type='hidden' id='movieid' value=" . $movie_id . '><br/>';
    echo "Movie Name :";
    echo "<input name='moviename' type='text' id='moviename' value=" . $movie_name . '><br/>';
    echo "Movie Category :";
    echo "<input name='moviecategory' type='text' id='moviecategory' value=" . $movie_category . '><br/>';}
    ?>

在课程页面中:

public static function get_movie_info($movie_id)
{
    $query = mysql_query(
        "SELECT *
        FROM movie
        WHERE movie_id = {$movie_id}"
    );

    while( $movie =  mysql_fetch_assoc( $query ) )
    {
        $results[] = $movie;
    }

    return $results;        


}

2 个答案:

答案 0 :(得分:1)

value标记中的input属性应该包含电影名称的引号。否则,当有空格时,它会将下一个单词解释为input的更多属性。

echo "<input name='moviename' type='text' id='moviename' value='" . $movie_name . "'><br/>";

答案 1 :(得分:0)

您的HTML代码设置不正确,缺少“值属性: 取代

echo "<input name='moviename' type='text' id='moviename' value=" . $movie_name . '><br/>';

通过

echo "<input name='moviename' type='text' id='moviename' value=" . $movie_name . '"><br/>';

此外,您应该对值进行编码,以便“在数据库值中不会损坏您的html代码(例如,htmlentities)。”