2016-01-06 49 views
-4

我想从数据库获取数据并使用contacts.php文件在表中显示它们。我曾在几个文件中分离项目并没有在我的codes.Here错误是我的代码: -
1的index.php如何使用PHP将数据从数据库显示到html表中

<html> 
<head><meta charset="UTF-8"> 
</head> 
<body> 
<?php 
require_once 'controller/ContactsController.php'; 
$controller = new ContactsController(); 
$controller -> listContacts(); 
?> 
</body></html> 

2.ContactsController.php

<? 
require_once 'model/ContactsServices.php'; 
class ContactsController { 
public function __construct() { 
    $this->contactsService = new ContactsService(); 
} 
public function listContacts() { 
    //get all the details using : getAllContacts(); 
    $list1 = $this->contactsService-> getAllContacts(); 
    include 'view/contacts.php'; 
} 
} 

3。 ContactServices.php

<? 
require_once 'model/ContactsGateway.php'; 
class ContactsService { 
public function __construct() { 
    $this->contactsGateway = new ContactsGateway(); 
} 
private function openDb() { 
    //Connection to the data base 
    $username = "root"; 
    $password = ""; 
    $database = "contacts"; 
    $server = "localhost"; 
    $conn = mysql_connect($server, $username, $password); 
    if(!$conn){ 
     die("could not connect: ". mysql_error()); 
    } 
    //select database 
    $select_Db = mysql_select_db($database, $conn); 
} 
private function closeDb() { 
    //close the data base 
    mysql_close($conn); 
} 
public function getAllContacts() { 
    //open database 
    $this->openDb(); 
    //select all detail :: selectAll(....); 
    $list = $this->contactsGateway->selectAll(); 
} 
} 
?> 

4.ContctsGateway.php

<? 
    class ContactsGateway { 
    public function selectAll() { 
     //query to get the detail 
     $sql = mysql_query("SELECT * FROM list"); 
    } 
    } 
    ?> 

5.Contacts.php

<table border = "1"> 
<thead> 
<tr> 
    <td>Name</td> 
    <td>Phone</td> 
    <td>Email</td> 
    <td>Address</td> 
</tr> 
</thead> 
<tbody> 
<?php 
require_once 'model/ContactsServices.php'; 
$service = new ContactsService(); 
$service -> getAllContacts(); 
    $name = 'Name'; 
    $phone = 'Phone'; 
    $add = 'Address'; 
    $email = 'Email'; 
    while($rows = mysql_fetch_assoc($sql)){echo 3; 
     echo 
     "<tr> 
      <td>{$rows['name']}</td> 
      <td>{$rows['phone']}</td> 
      <td>{$rows['email']}</td> 
      <td>{$rows['add']}</td> 
     </tr>\n";  
    }  
?> 
</tbody> 
</table> 

当我尝试这个代码,只用了错误的表头。 contacts.php文件中的错误说$ sql变量未定义。我已经在contactsGateway.php中定义并继承到contacts.php。这是什么原因,还有什么其他的方式来做到这一点?

+5

那又怎么了? – Jon

+0

将SELECT *列表更改为SELECT * FROM列表 –

+0

我有正确的,但它仍然给出了相同的错误。 –

回答

3

看来你的SQL查询无效。

SELECT * list 

应该是:

SELECT * FROM list 

此外,在使用直接MySQL的函数(被弃用的PHP 5.5,并删除在PHP 7,顺便说一句),可以使用的情况下, mysql_error()如果mysql_query()功能的结果等于-1。

例如:

$sql = mysql_query("SELECT * FROM list") or die(mysql_error()); 

将停止在错误的脚本,并显示MySQL错误信息。

+1

感谢您的编辑@Qirel我没有可用的PHP版本号。 – Danoweb

+0

没问题:)是一个很好的答案,你张贴! – Qirel

+0

我已经修复了我的查询中的错误,但仍然发生相同的错误。当我运行我的脚本时,它会显示“未定义的变量:contacts.php中的sql” –

相关问题