-5

当我点击任何链接时,它会打开我数据库中的所有电影。我只想要以那封信开头的那部电影,我不知道我在哪里犯了错误。这是我的代码:

$azRange = range('A', 'Z');
foreach ($azRange as $letter){
    echo '<a href="index.php?naslov='.$letter.'&task=view">'.$letter.'</a> | ';
}

if(isset($_GET["task"]) && $_GET["task"] == "view"){
    $naslov = $_GET['naslov'];

$query  = "SELECT filmovi.naslov, filmovi.godina, filmovi.trajanje, filmovi.slika
           FROM filmovi
           ORDER BY naslov";

$result = mysql_query($query) 
          or die ('SQL Greska: '.mysql_error());

if($result){
    while($filmovi = mysql_fetch_array($result)){   
        echo '<center><b>';
        echo '<td><img src="img/'.$filmovi["slika"].'" border="0" width="100" /></td>';
        echo '</br>';   
        echo '<td>'.$filmovi["naslov"].'</td>';
        echo '<td> ('.$filmovi["godina"].')</td>';
        echo '<br>';
        echo '<td>Trajanje: '.$filmovi["trajanje"].' min</td>'; 
        echo '</b></center>';
    echo '</tr>';
}
4

5 回答 5

3

您在任何时候都没有将这封信传递给数据库查询。

于 2012-09-03T13:08:54.760 回答
2
$query  = 
    "SELECT filmovi.naslov, filmovi.godina, filmovi.trajanje, filmovi.slika
    FROM filmovi
    WHERE naslov LIKE '$naslov%'
    ORDER BY naslov";
于 2012-09-03T13:09:29.863 回答
1

您的查询

$query  = "SELECT filmovi.naslov, filmovi.godina, filmovi.trajanje, filmovi.slika
    FROM filmovi
    ORDER BY naslov";

正在从数据库中获取所有电影。这里没有过滤。where向该查询添加一些条件,您将获得预期的结果。

于 2012-09-03T13:09:42.240 回答
1

更改为此查询可能会有所帮助:

SELECT filmovi.naslov, filmovi.godina, filmovi.trajanje, filmovi.slika
FROM filmovi
WHERE `naslov` LIKE '{$naslov}%'
ORDER BY naslov
于 2012-09-03T13:11:39.383 回答
0

由于其他人已经回答了您的问题(缺少 WHERE 子句),我只想提一下<center>HTML 标签已被弃用,您应该改用CSS

PHP 的 mysql 驱动程序也已过时,因此不要使用:

mysql_query($query);

你应该使用

mysqli_query($link, $query);

为了更好的安全性、OOP 支持、准备好的语句和事务。

你可以在这里阅读

即使您是初学者并且您不关心这些功能的含义,您也应该尝试养成使用mysqli的习惯,这样当您学会欣赏它的那一天时,您就不必返回并更新您的所有代码。

于 2012-09-03T14:22:14.713 回答