2012-07-10 48 views
0

我刚开始用PHP交手,也做了一些MySQL作为下面它的接口。我无法使这个脚本工作,因为它部分来自一本书,我认为在某些地方我出错了。这让我疯狂!更新和删除信息从一个MySQL表

任何帮助,将不胜感激&感谢。

<?php 

require_once "login.php"; 

$db_server = mysql_connect($db_hostname,$db_username,$db_password); 

if(!$db_server) 
{ 
die("Couldn't connect to MySql" . mysql_error()); 
} 

mysql_select_db($db_database,$db_server) 
or die("Sorry, couldn't connect to database" . mysql_error()); 

if(isset($_POST['delete']) && isset($_POST['isbn'])) 
{ 
$isbn = get_post('isbn'); 
$query="DELETE FROM classics WHERE isbn='$isbn'"; 

if(!mysql_query($query,$db_server)){ 
echo "Delete failed: $query ". mysql_error() . "<br/><br/>";  
} 

if(isset($_POST['author']) && 
    isset($_POST['title']) && 
    isset($_POST['category']) && 
    isset($_POST['year']) && 
    isset($_POST['isbn'])){ 

    $author = get_post('author'); 
    $title= get_post('title'); 
    $category = get_post('category'); 
    $year = get_post('year'); 
    $isbn = get_post('isbn'); 


    $query="INSERT INTO classics VALUES". 
    "('$author','$title','$category','$year','$isbn')"; 

    if(!mysql_query($query,$db_server)){ 
    echo "Update content of table failed: ". mysql_error() . "<br/><br/>"; 
    } 
    } 
echo <<<_SOQ 

<form action="sqltest.php" method="post"> 
    <pre> 
    Author <input type="text" name="author"/> 
    Title <input type="text" name="title"/> 
    Category <input type="text" name="category"/> 
    Year <input type="text" name="year"/> 
    ISBN <input type="text" name="isbn"/> 
    <input type="submit" value="ADD RECORD"/> 
    </pre> 
</form> 
_SOQ; 

    $query = "SELECT* FROM classics";  
    $result = mysql_query($query); 

    if(!$result) die("Database access failed: " .mysql_error()); 
    $rows = mysql_num_rows($result); 

    for($i=0;$i<$rows;++$i){ 

    $row = mysql_fetch_row($query); 
    echo <<<_SOQ 

    <pre> 

    Author $row[0]; 
    Title $row[1]; 
Category $row[2]; 
    Year: $row[3]; 
    ISBN: $row[4]; 

    </pre> 

<form action="sqltest.php" method="post">  
<input type="hidden" name="delete" value="yes"/> 
<input type="hidden" name="isbn" value="$row[4]"/>  
<input type="submit" value="DELETE RECORD"/>  
</form> 
_SOQ; 

}  

mysql_close($db_server);  

function get_post($var){ 
return mysql_real_escape_string($_POST[$var]); 
} 

>

+0

哪一部分无法正常工作? – andrewsi 2012-07-10 17:05:58

+0

我在最后一行发生错误。 – 2012-07-10 17:06:19

+0

解析错误:语法错误,H中意想不到的$结束:\ XAMPP \ htdocs中\ PHP_testers \ Accessing_Mysql_in_php \ sqltest.php上线93 – 2012-07-10 17:06:35

回答

1

我想你需要一个额外的大括号:

if (isset($_POST['delete']) && isset($_POST['isbn'])) { 
    $isbn = get_post('isbn'); 
    $query="DELETE FROM classics WHERE isbn='$isbn'"; 

    if(!mysql_query($query,$db_server)){ 
     echo "Delete failed: $query ". mysql_error() . "<br/><br/>";  
    } 
} 

我添加了第二个右括号 - 它现在编译?

Editted补充:

您收盘HEREDOC引用(_SOQ)都用空格缩进 - 你不能在与结束标记线的起点任何空白。

+0

谢谢,但没有,不就解决了。 – 2012-07-10 17:15:52

+0

你是否得到相同的错误? – andrewsi 2012-07-10 17:21:40

+0

@MikeThornley - 我在回答中添加了另一个问题 – andrewsi 2012-07-10 17:38:44

1

看起来你没有一个右括号您:

if(isset($_POST['delete']) && isset($_POST['isbn'])) 
+0

已关闭它,但尚未排序。不管怎么说,还是要谢谢你。 – 2012-07-10 18:42:15

0

非常感谢大家的帮助下,昨日,大家好。我现在设法对这个脚本进行排序。各种各样的错字和轻微错误都是这个问题,主要是为了达成谅解。再次感谢。

<?php 

require_once "login.php"; 

$db_server = mysql_connect($db_hostname,$db_username,$db_password); 
if(!$db_server) die("Sorry, MySql connection failure: " . mysql_error()); 

mysql_select_db($db_database, $db_server) 
    or die("Sorry, DB connection failure: " . mysql_error()); 

/*Code to test for deletion of a field of the table*/ 

if(isset($_POST['delete']) && isset($_POST['isbn'])) 
{ 
$isbn = get_post('isbn'); 
$query = "DELETE FROM classics WHERE isbn='$isbn'"; 

if(!mysql_query($query)) die("Sorry, deletion failed: $query" . "<br/><br/>"); 
} 


/*Code to enter fields of the table*/ 

if(isset($_POST['author']) && 
isset($_POST['title']) && 
isset($_POST['category']) && 
isset($_POST['year']) && 
isset($_POST['isbn'])) 
{ 

$author = get_post('author');  
$title = get_post('title');   
$category = get_post('category');  
$year = get_post('year');  
$isbn = get_post('isbn'); 

$query = "INSERT INTO classics VALUES". 
     "('$author','$title','$category','$year','$isbn')"; 

if(!mysql_query($query)) die("Update: $query failed" . mysql_error()); 

} 


echo<<<_SOQ 
<form action="sqltest.php" method="post"><pre> 
Author: <input type="text" name="author"/> 
Title: <input type="text" name="title"/>  
Category: <input type="text" name="category"/> 
Year:  <input type="text" name="year"/> 
ISBN:  <input type="text" name="isbn"/> 
<input type="submit" value="ADD RECORD"/> 
</pre></form> 

_SOQ;

$query = "SELECT* FROM classics"; 
$result = mysql_query($query); 

if(!$result) die("Sorry couldn't get the resource" . mysql_error()); 

$rows = mysql_num_rows($result); 

for($j=0;$j<$rows;++$j){ 
$row = mysql_fetch_row($result); 

echo<<<_SOQ 
<pre> 
Author $row[0] 
Title $row[1] 
Category $row[2] 
Year $row[3] 
ISBN $row[4] 

<form action="sqltest.php" method="post"><pre> 
<input type="hidden" name="delete" value="yes"/> 
<input type="hidden" name="isbn" value="$row[4]"/> 
<input type="submit" value="DELETE RECORD"/> 
</pre></form> 

_SOQ; }

mysql_close($db_server); 

function get_post($var){ 
    return mysql_real_escape_string($_POST[$var]); 
} 

?>