2012-03-11 87 views
1

我一直在試圖解決這個問題,現在我的問題已經解決了。該代碼是顯示從保險箱中選擇的工作正常..但是當我把它放在我的佈局/模板它會拋出一個錯誤&我不知道爲什麼!

下面的代碼:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta name="keywords" content="" > 
<meta name="description" content="" > 
<meta http-equiv="content-type" content="text/html; charset=utf-8" > 
<title>SNYSB Archive</title> 
<link href="style.css" rel="stylesheet" type="text/css" media="screen" > 
<!-- Location of javascript. --> 
<script language="javascript" type="text/javascript" src="swfobject.js" ></script> 
</head> 
    <div id="wrapper"> 
    <div id="header"> 
    <!-- KEEP THIS BIT [ITS FORMATTING] --> 
    </div> 
    <!-- end #header --> 
    <div id="menu"> 
      <ul> 
      <li><a href="Hpage.php">Home</a></li> 
      <li><a href="Register.php">Register</a></li> 
     </ul> 
    </div> 
    <!-- end #menu --> 
    <div id="page"> 
    <div id="page-bgtop"> 
    <div id="page-bgbtm"> 
    <div id="content"> 
      <div class="post"> 
      <div class="post-bgtop"> 
      <div class="post-bgbtm"> 
<h1 class="title">PUT HEADING HERE!</h1> 
       <div class="entry"> 
        <p class="Body"> 
<?php 
$dbname = 'snysbarchive'; 
$conn= mysql_connect('localhost', 'root', 'usbw'); 
if (!$conn) { 
    echo 'Could not connect to mysql'; 
    exit; 
} 

$sql = "SHOW TABLES FROM $dbname"; 
$result = mysql_query($sql); 

if (!$result) { 
    echo "DB Error, could not list tables\n"; 
    echo 'MySQL Error: ' . mysql_error(); 
    exit; 
} 
if (mysql_select_db($dbname, $conn)) 
{ 
?> 
    <form method="post" action="new 2.php"> 
    <select name="tables"> 
    <?php 
    while ($row = mysql_fetch_row($result)) { 
    ?>  
    <?php 
     echo '<option value="'.$row[0].'">'.$row[0].'</option>'; 
    } 
    ?> 
    </select> 
    <input type="submit" value="Show"> 
</form> 
<?php 
//mysql_free_result($result); 
if (isset($_POST) && isset($_POST['tables'])) 
{ 
    $tbl=$_POST['tables']; 
    //echo $_POST['tables']."<br />"; 
    $query="SELECT * from $tbl"; 
    $res=mysql_query($query); 
    echo $query; 
    if ($res) 
    { 
    ?> 
    <table border="1"> 
    <?php 
     while ($row = mysql_fetch_array($res)) 
     { 
      echo "<tr>"; 
      echo "<td>".$row[0]."</td>"; 
      echo "<td>".$row[1]."</td>"; 
      echo "<td>".$row[2]."</td>"; 
      echo "<td>".$row[3]."</td>";   
      echo "</tr>"; 
     } ?> 
    </table> 
    <?php 
    } 
} 
?> 
</div> 
</div> 
      </div> 
      </div> 

     <div style="clear: both;">&nbsp;</div> 
     </div> 
     <!-- end #content --> 
     <div id="sidebar"> 
      <ul> 
       <li> 
        <h2>Welcome!</h2> 
        <p>Welcome to SNYSBs archive! 
         </p> 
       </li> 
       <li> 
        <h2>SNYSB</h2> 
        <p> 
      <a href="Contact.php">Contact Us!</a> 
        </p> 
       </li> 
      </ul> 
     </div> 
     <!-- end #sidebar --> 
     <div style="clear: both;">&nbsp;</div> 
    </div> 
    </div> 
    </div> 
    <!-- end #page --> 
    <div id="footer"> 
     <p>Copyright (c) 2008 Sitename.com. All rights reserved. Design by <a href="http://www.freecsstemplates.org/">Free CSS Templates</a>.</p> 
    </div> 
    <!-- end #footer --> 
</div> 
</body> 
</html> 

(只粘貼了整個頁面的代碼從原來的我開始和底部模板)

這是該行它不喜歡:

if (isset($_POST['tables'])) 

謝謝

編輯:新錯誤信息: 解析錯誤:語法錯誤,在第128行的FILENAME中出現意外的$ end

+0

發佈您嘗試排除故障的錯誤很有用,尤其是考慮到上述代碼中存在多個語法錯誤。 – bkconrad 2012-03-11 17:55:53

+0

這個錯誤顯然是與if(isset($ _ POST ['tables'])) 這一行我不明白的是,代碼工作完全罰款..但是,當我添加格式代碼上面和下面這一節它的嘔吐錯誤 – AisRuss 2012-03-11 18:14:18

+0

現在你在結尾缺少一個右括號:)我相信:) – bkconrad 2012-03-11 19:38:00

回答

5

你看到的錯誤可能是因爲$ _ POST沒有一個叫「表」的關鍵。

echo"<form method="post" action="show_tabs.php">"; 
echo"<select name="tables">"; 

當我運行它們時都會產生錯誤。注意語法突出顯示SO上的顏色變化,表明並非所有語句都被解釋爲字符串文字。您需要可以逃脫內報價或外部的切換到單引號:

echo '<form method="post" action="show_tabs.php">'; 
echo '<select name="tables">'; 

echo "<form method=\"post\" action=\"show_tabs.php\">"; 
echo "<select name=\"tables\">"; 

這同樣適用於

echo"<input type="submit" value="Show">"; 
... 
echo"<table border="1">"; 

此外,

if ($res) 
} 

應該讀取

if ($res) 
{ 

此外,您在使用mysql_ *函數時出現錯誤。我可以看到你只在運行查詢後才選擇你的db,並且我沒有看到mysql_connect的調用。順序是連接,select_db,查詢,提取,自由,親如在http://www.php.net/manual/en/mysql.examples-basic.php


(上面的代碼進行了更新後) 結束語整個事情的定界符看到明顯的原因,是非常必要的。只需使用php打開和關閉標籤在文本和代碼之間切換。例如,而不是

echo <<< TEMPLATE 
<h1 class="title">PUT HEADING HERE!</h1> 
<div class="entry"> 
<p class="Body"> 

使用

?> 
<h1 class="title">PUT HEADING HERE!</h1> 
<div class="entry"> 
<p class="Body"> 
<?php 

守則定界符沒有得到執行(雖然變量取代)內,所以沒有代碼從<<< TEMPLATETEMPLATE;正在運行。只有變量應該在heredoc裏面。

+0

嗨,感謝您的建議,但同樣的錯誤顯示..不知道爲什麼代碼在頁面上工作,但是當我將它添加到我的模板它混亂起來... – AisRuss 2012-03-11 17:46:36

+0

謝謝更改括號錯誤 - 抄送工作代碼到模板! – AisRuss 2012-03-11 18:02:03

+0

mysql連接被包含在頁面頂部..它不包含在問題中,因爲它不是問題的一部分 – AisRuss 2012-03-11 18:06:44

1

您的錯誤實際上是3行;

echo"<input type="submit" value="Show">"; 

它應該可能使用單引號與字符串中的雙引號不衝突;

echo '<input type="submit" value="Show">'; 

和另外幾行;

echo"<form method="post" action="show_tabs.php">"; 
... 
echo"<table border="1">"; 

應該以相同的方式修復。

-1

我想你應該試試這個...

if (isset($_POST) && isset($_POST['tables'])) 
相關問題