2012-03-11 4 views
1

Я пытался исправить эту проблему навсегда сейчас и ее прослушивание. код должен отображать таблицу, выбранную из dropbox, которая работает нормально ... но когда я вставляю ее в свой макет/шаблон, он выдает ошибку &, я понятия не имею, почему!

Вот код:

<!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'])) 

Thanks

Редактировать: Новое сообщение об ошибке: Ошибка анализа: ошибка синтаксиса, неожиданный $ end в FILENAME в строке 128

+0

Полезно размещать ошибки, которые вы пытаетесь устранить, особенно учитывая, что в приведенном выше коде есть только несколько синтаксических ошибок. – bkconrad

+0

Ошибка, по-видимому, в строке с if (isset ($ _ POST ['tables'])) Я не понимаю, что код работает отлично, но когда ive добавил код формата выше и ниже этого раздела, он выкидывает ошибка – AisRuss

+0

Теперь у вас отсутствует одна закрывающая скобка в конце, которую я считаю :) – bkconrad

ответ

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


(После того, как приведенный выше код был обновлен) Обертывание все дело в Heredoc явно причина, и очень нужны. Просто используйте открытые и закрывающие теги 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 

Код внутри Heredoc не получает выполненной (хотя переменные замещаются), поэтому ни один из кода от <<< TEMPLATE к TEMPLATE; бежится. Только переменные должны идти внутри heredoc.

+0

Привет, спасибо за предложения, но те же ошибки отображаются. Непонятно, почему код работает на странице, но когда я добавляю его в свой шаблон, он беспорядочен ... – AisRuss

+0

Спасибо, изменили ошибку скобки - клерикальная опечатка при копировании рабочего кода к шаблону! – AisRuss

+0

mysql connect включен в начало страницы..и не был включен в вопрос, так как он не был частью проблемы – AisRuss

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']))