2011-05-21 72 views
0

终于我找到了一些时间来编程我自己的网站。问题是,它不承认我给他的桌子。我正在写一个基于SQL的留言簿。它正在登录到SQL平台,但根本没有得到数据库...我给他的名字是100%拼写正确!我试过在我的脚本中不使用$ mysql_select_db,但在“选择” - 声明&“插入” - 声明中命名数据库。也不起作用。 <PHP脚本无法识别给定的表

我这里还有我的脚本:

addguestbook.php

<?php 

//******************************************************// 
//********************Database stuff********************// 
//******************************************************// 
$host="localhost";     // Host name 
$username="";      // Mysql username 
$password="";      // Mysql password 
$db_name="mywebsite";    // Database name 
//********************Tables***************************// 
$tbl_name="guestbook";    // Guestbook 

if ($_SERVER['REQUEST_METHOD'] == 'POST'){ 

    $name = $_POST['name']; 
    $email = $_POST['email']; 
    $website = $_POST['website']; 
    $comment = $_POST['comment']; 
    $datetime=date("y-m-d h:i:s"); //date time 

    // Connect to server and select database. 
    mysql_connect("$host", "$username", "$password")or die("cannot connect server "); 
    //mysql_select_db("$db_name")or die("cannot select DB"); 


    $sql="INSERT INTO $db_name.$tbl_name(name, email, website, comment, datetime)VALUES('$name', '$email', '$website', '$comment', '$datetime')"; 
    $result=mysql_query($sql); 

    mysql_close(); 
} 
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
</head> 
<body> 

    <table width="700" border="0" align="center" cellpadding="3" 
     cellspacing="0"> 
     <tr> 
      <td><strong>Test Sign Guestbook </strong> 
      </td> 
     </tr> 
    </table> 
    <table width="700" border="0" align="center" cellpadding="0" 
     cellspacing="1" bgcolor="#CCCCCC"> 
     <tr> 
      <form id="form1" name="form1" method="post" 
       action="index.php?mod=guestbook"> 
       <td> 
        <table width="400" border="0" cellpadding="3" cellspacing="1" 
         bgcolor="#FFFFFF"> 
         <tr> 
          <td width="117">Name</td> 
          <td width="14">:</td> 
          <td width="357"><input name="name" type="text" id="name" 
           size="65" /> 
          </td> 
         </tr> 
         <tr> 
          <td>Email</td> 
          <td>:</td> 
          <td><input name="email" type="text" id="email" size="65" /> 
          </td> 
         </tr> 
         <tr> 
          <td>Website</td> 
          <td>:</td> 
          <td><input name="website" type="text" id="website" size="65" /> 
          </td> 
         </tr> 
         <tr> 
          <td valign="top">Comment</td> 
          <td valign="top">:</td> 
          <td><textarea name="comment" cols="65" rows="3" id="comment"></textarea> 
          </td> 
         </tr> 
         <tr> 
          <td>&nbsp;</td> 
          <td>&nbsp;</td> 
          <td><input type="submit" name="Submit" value="Submit" /> <input 
           type="reset" name="Submit2" value="Reset" /> 
          </td> 
         </tr> 
        </table></td> 
      </form> 
     </tr> 
    </table> 
    <table width="700" border="0" align="center" cellpadding="3" 
     cellspacing="0"> 
     <tr> 
      <td><strong><a href="viewguestbook.php">View Guestbook</a> </strong> 
      </td> 
     </tr> 
    </table> 

</body> 
</html> 

viewguestbook.php

<table width="400" border="0" align="center" cellpadding="3" cellspacing="0"> 
<tr> 
<td><strong>View Guestbook | <a href="guestbook.php">Sign Guestbook</a> </strong></td> 
</tr> 
</table> 
<br> 

<?php 
//******************************************************// 
//********************Database stuff********************// 
//******************************************************// 
$host="localhost";     // Host name 
$username="";      // Mysql username 
$password="";      // Mysql password 
$db_name="mywebsite";    // Database name 
//********************Tables***************************// 
$tbl_name="guestbook";    // Guestbook 

// Connect to server and select database. 
mysql_connect("$host", "$username", "$password")or die("cannot connect server "); 
//mysql_select_db("$db_name")or die("cannot select DB"); 

$sql="SELECT * FROM $db_name.$tbl_name"; 
$result=mysql_query($sql); 

while($rows=mysql_fetch_array($result)){ 
?> 
<table width="400" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC"> 
<tr> 
<td><table width="400" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF"> 
<tr> 
<td>ID</td> 
<td>:</td> 
<td><? echo $rows['id']; ?></td> 
</tr> 
<tr> 
<td width="117">Name</td> 
<td width="14">:</td> 
<td width="357"><? echo $rows['name']; ?></td> 
</tr> 
<tr> 
<td>Email</td> 
<td>:</td> 
<td><? echo $rows['email']; ?></td> 
</tr> 
<tr> 
<td valign="top">Comment</td> 
<td valign="top">:</td> 
<td><? echo $rows['comment']; ?></td> 
</tr> 
<tr> 
<td valign="top">Date/Time </td> 
<td valign="top">:</td> 
<td><? echo $rows['datetime']; ?></td> 
</tr> 
</table></td> 
</tr> 
<tr> 
<td>Website</td> 
<td>:</td> 
<td><? echo $rows['website']; ?></td> 
</tr> 
<tr> 
</table> 
<BR> 
<? 
} 
mysql_close(); //close database 
?> 

感谢您的帮助!

编辑:所述errormessage的:

警告:mysql_fetch_array()预计 参数1是资源,布尔 在 C中给出:\安德雷斯\ XAMPP-win32-1.7.4-VC6 \ XAMPP \ htdocs目录\ MyWorkspace \ MyWebsite \上线26

数据\ viewguestbook.php 我甚至把一些数据线到表手动,也不管用。

+0

您是否可以使用任何错误消息更新答案? – Kev 2011-05-21 09:23:17

+0

也许mysql不是由“/etc/init.d/mysqld start”启动的 – ibrahim 2011-05-21 09:25:33

+0

我会更新它。 – JustBasti 2011-05-21 09:27:47

回答

0

在您使用的两个文件中mysql_connect("$host", "$username", "$password")这是错误的,您应该使用mysql_connect($host, $username, $password)。那么它应该工作。

+0

它也按照我写的方式工作,但谢谢:)它现在正在工作 - 我只是不知道用户名已存在-.-' – JustBasti 2011-05-21 09:39:56

0

请尝试此更新的代码,并给出结果。

// Connect to server and select database. 
$conn = mysql_connect($host, $username, $password)or die(mysql_error()); 

$sql="INSERT INTO $db_name.$tbl_name(name, email, website, comment, datetime)VALUES('$name', '$email', '$website', '$comment', '$datetime')"; 
$result=mysql_query($sql,$conn); 

mysql_close(); 
1
$sql="SELECT * FROM $db_name.$tbl_name"; 

$sql="INSERT INTO $db_name.$tbl_name(name, email, website, comment, datetime)VALUES('$name', '$email', '$website', '$comment', '$datetime')"; 

应使用下列方式$ DB_NAME 和$ tbl_name是变量

$sql="SELECT * FROM `".$db_name."` .`".$tbl_name."`"; 

$sql="INSERT INTO `".$db_name."` .`".$tbl_name."`(name, email, website, comment, datetime)VALUES('$name', '$email', '$website', '$comment', '$datetime')"; 
+0

雅,感谢您的建议。我不熟悉语法风格的东西。 – JustBasti 2011-05-21 09:44:14

0

我假设你削除的用户名和密码值的安全性在这里。 代码看起来对我来说没问题,因为你拥有它。 在我的服务器上,数据库名称以我的主登录名为前缀。 所以“mywebsite”将是“myname_mywwebsite”。 确保您的数据库和表名拼写正确。