2015-01-04 63 views
-2

这是我在这个社区的第一篇文章。我是PHP和MySQL的新手。这是我试图运行的代码。PhP的MySQL - 如何显示数据库中的记录?

我正在使用MAMP。我测试了我能够建立与“宠物”数据库的连接。检查了我的用户名和密码,这也是正确的。我在数据库中有“petType”字段中的“horse”数据。

下面的代码中有一些错误。我抓了我的脑袋,看了书和网上,但无法弄清楚我做错了什么?使用下面的代码,我的网页空白。

我试图显示数据库中的记录作为第一部分,并担心后面的格式。


<?php 

$host = 'localhost'; 
$username = ' '; 
$password = ' '; 
$database = 'pet'; 

$conn = mysqli_connect($host, $username, $password, $database); 

$query= "SELECT * FROM pet WHERE petType = 'horse'"; 

while($row = mysqli_fetch_array($query)): 
{ 
$petDescription = $query [$petDescription]; 
$petName = $query [$petName]; 
$petType = $query [$petType]; 

echo "$petType <br> <br> $petName <br> $petDescription"; 

} 

?> 
+0

你只在'$ query'中有一个字符串。在任何时候你都不会执行那个针对你的数据库的查询。 – deceze

+0

你不是在查询。在这里,请阅读http://php.net/manual/en/mysqli.query.php –

+1

另外,* ahem *是'$ petDescription = $ query [$ petDescription]; $ petName = $ query [$ petName]; $ petType = $ query [$ petType];'? –

回答

3

好吧,这里的破败。

  • 你不是在查询。这意味着您需要使用mysqli_query()函数,该函数需要成功DB connection建立并通过作为第一个参数。

  • 然后你在while循环分配$row获取数组,但你使用$query作为其替代品的预期行进行回显。它应该是$row而不是$query

(编辑),您也可以在while($row = mysqli_fetch_array($query)): <冒号=删除。

现在很难确定你的表中实际的列名是什么,所以我现在只用普通的column_x,column_ycolumn_z来代替它们。

您可以用那些在您的表中替换那些。更多这一点在下面。

用以下替换您当前的代码块:

$petType = $row['petType']; 
$petName = $row['petName']; 
$petDescription = $row['petDescription']; 

$query = mysqli_query($conn, "SELECT * FROM pet WHERE petType = 'horse'"); 

    while($row = mysqli_fetch_array($query)) 
    { 
     $petType = $row['column_x']; 
     $petName = $row['column_y']; 
     $petDescription = $row['column_z']; 

     echo "$petType <br> <br> $petName <br> $petDescription"; 

    } 

如果你的其他各列确实叫petTypepetNamepetDescription,那么你就可以代替上面它的工作方式是这样的,我会以图形方式向您展示:

$petType = $row['petType']; 
    ^ ^ ^
    |  |  | column name in table 
    |  | 
    |  | variable in loop 
    | 
    | variable to echo 

但是,有些东西似乎有点不清楚,并且您的数据库和表格都保留着相同的名称pet

确保事实确实如此。

or die(mysqli_error($conn))加到mysqli_query()

旁注:错误报告只能在分期中完成,而不能生成。


脚注:

+0

嘿,你们真棒。我尝试了你给我的建议,代码不起作用。我的数据库和表都是“宠物”,字段如下所示。新代码 - $ host ='localhost'; $ username =''; $ password =''; $ database ='pet'; $ conn = mysqli_connect($ host,$ username,$ password,$ database); $ query = mysqli_query($ conn,“SELECT * FROM pet WHERE petType ='horse'”); while($ row = mysqli_fetch_array($ query)):{ $ petType = $ row ['$ petType']; $ petName = $ row ['$ petName']; $ petDescription = $ row ['petDescription'];回声“$ petType

$ petName
$ petDescription”; } <? – divinelotus

+0

@divinelotus不客气。但您需要定义“不工作”。再次仔细检查我的整个答案。 –

+0

@divinelotus你的代码的最后一部分读为
$ petName
$ petDescription “;} <'应该读为
$ petName
$ petDescription?”;我注意到'while($ row = mysqli_fetch_array($ query))中的一个冒号:''不应该在那里''注意'<?'应该是'?>' –

相关问题