无法从mysql检索数据到我的网页

时间:2014-03-18 08:45:29

标签: php html sql

我想在我的网站上使用php和mysql创建一个自动cms 即我只是将数据提供给mysql表,它将生成结果。 所以我的代码是:

<!DOCTYPE html> 
<html> 
<head> 
  <?php 
    include 'head.php';
     include 'conct.php';
   ?> 
  <title>GIZMOMANIACS|DOWNLOADS</title> 
</head>
<body> 
   <div id="container" style="width:100%;height:100%;clear:both">
   <div id="header" style="background-color:#FFFFFF;"> 
   <div class="head" style="clear:both">
   <a href= "http://gizmomaniacs.site88.net">
   <img src="/GM%203D.gif" width= "200" height="100" alt='gizmomaniacs logo'></a></div> 
   <h1 style="margin-bottom:0; float:right"><font id="gmfont">GIZMOMANIACS</font></h1>
 </div> 
    <div id="menu" style="clear:both;background-color:#0762AE">
    <?php  include 'head.html'; ?></div> <div class="content" >  
    <?php include 'search.php'; ?> 
<ul>
<?php
  $sql = "SELECT * from downloads";
  $result = mysql_query($sql);
  if($result==false){
        $view = "error";
        $error = "Could not retrieve values";
    }
   else {
        $dload = $GET_['downloadname'];
        $imagelink = $GET_['imagelink'];
        $title =  $GET_['title'];
        while ($row = mysql_fetch_array($result)) 
        {
           echo "<li><a class =\"alldld\" href=\"$dload\" title=\"$title\"><img  class=\"downloads\" src =\"$imagelink\"/>$title</a><br></li>";
        }
   }
?>
</ul>
    </div> 
    <div class="social"> 
<?php 
   include 'social.php'; 
?></div> 
</div> 
</body> 
</html>
一切都很好,但有三件事没有发生:

  1. a href atrribute not retreiving from db
  2. 没有从db
  3. 中撤回的标题属性
  4. img src atrribute not retreiving from db
  5. 在实际来源中显示

    <a class ="alldld" href="" title=""><img class="downloads" src =""/></a><br></li>  
    
    <li><a class ="alldld" href="" title=""><img class="downloads" src =""/></a>
    

    src href title属性为空

    那该怎么办?

3 个答案:

答案 0 :(得分:2)

更改此部分代码

$dload = $GET_['downloadname'];
$imagelink = $GET_['imagelink'];
$title = $GET_['title'];
while ($row = mysql_fetch_array($result)) 
{
echo "<li><a class =\"alldld\" href=\"$dload\" title=\"$title\"><img class=\"downloads\" src =\"$imagelink\"/>$title</a><br></li>";
}

while ($row = mysql_fetch_array($result)) 
{
$dload = $row['downloadname'];
$imagelink = $row['imagelink'];
$title = $row['title'];
echo "<li><a class =\"alldld\" href=\"$dload\" title=\"$title\"><img class=\"downloads\" src =\"$imagelink\"/>$title</a><br></li>";
}

从DB中检索时,您需要使用获取值的数组而不是$_GET数组。也没有$GET_这样的东西。

重要提示:停止使用mysql_功能并开始使用mysqli_*函数或PDO。有关详细信息,请参阅here

答案 1 :(得分:1)

您输出的行如下:

$dload = $GET_['downloadname'];
$imagelink = $GET_['imagelink'];
$title = $GET_['title'];
while ($row = mysql_fetch_array($result)) 
{
echo "<li><a class =\"alldld\" href=\"$dload\" title=\"$title\"><img class=\"downloads\" src =\"$imagelink\"/>$title</a><br></li>";
}
}

有几个问题。首先,如果您想从查询字符串中检索它,您需要使用$_GET,而不是$GET_。其次,您不希望使用$_GET从查询字符串中检索它;你想从$row检索它。第三,你需要把它放在while循环中。一旦你修复了它,它应该可以工作。

答案 2 :(得分:0)

$_GET是包含在URL中传递的值的数组。

<?php
// Let's take the following URL
// http://localhost/index.php?name=John&age=20
echo $_GET["name"]; // Will display 'John'
echo $_GET["age"];  // Will display '20'
?>

当您从数据库中选择某些内容时,变量$row包含使用函数mysql_fetch_array获得的结果的每一行。试试这个来显示你的数据:

<?php
// ...

while ($row = mysql_fetch_array($result)) {
    $dload = $row["downloadname"];
    $imagelink = $row["imagelink"];
    $title = $row["title"];
    echo "<li><a class =\"alldld\" href=\"$dload\" title=\"$title\"><img  class=\"downloads\" src =\"$imagelink\"/>$title</a><br></li>";
}

?>