2012-03-11 89 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'])) 
相关问题