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


Couldn't display a second word in my database output

我这里有一个奇怪的问题。我正在做一个管理页面来编辑电影信息。例如,我的数据库中有一部名为"Blood Diamonds"的电影,但在age上它只显示"Blood"而没有第二个单词"Diamonds",我找不到原因。

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/>';}
    ?>

在class页面:

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;        

}

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

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

你的HTML标签设置不正确,缺少" in value "属性:替换

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)。