2015-04-19 2 views
1

Невозможно отобразить таблицу из базы данных. Для каждой программы есть таблица, в которой сохраняются некоторые баллы. Кроме того, имеется таблица программ, в которой сохраняются program id и program name. Когда я выбрал программу и год я получил следующие ошибки: не найденыНе удается отобразить таблицу из базы данных

Нет данных

Примечание: Undefined переменной: результат в C: \ XAMPP \ HTDOCS \ статистики \ ac_directorPrograms.php на линии 61

Предупреждение: mysql_fetch_assoc() ожидает параметр 1, чтобы быть ресурсом, нуль приведены в C: \ XAMPP \ HTDOCS \ статистики \ ac_directorPrograms.php на линии 61

что-то пойдет не так с result из кода действия, и я думаю, с prog_name и program Форма формы.

форма

<?php 
     include 'connect.php'; 
    ?> 
    <form name="myform" action="ac_directorPrograms.php" method="POST"> 

     <b>Programs:<b/> 
     <select name="program"> 
     <option value="Choose">Please select..</option> 
     <?php 
       $sql = mysql_query("SELECT prog_name FROM program"); 
       while ($row = mysql_fetch_array($sql)) { 
       echo "<option value='" . $row['prog_name'] . "'>" . $row['prog_name'] ."</option>"; 
       } 
     ?> 
     </select><br/><br/> 

<b>Year:<b/> 
<select name="year"> 
<option value="Choose">Please select..</option> 
<option value="2005">2005</option> 
<option value="2006">2006</option> 
<option value="2007">2007</option></select><br/><br/> 


<br/> 
<input type="submit" value="submit" name="Submit"> 
<input type="reset" name="reset" value="Clear"> 

</form> 
</div> 

код действия

 <?php 

     include 'connect.php'; 

     $year = $_POST['year']; 
     $program = $_POST['program']; 
     $years  = array(
      2005, 
      2006, 
      2007 
     ); 
     $programs = array(
      'bsc computer science', 
      'bsc psychology', 
      'ba finance', 
      'ba marketing', 
      'ba management' 
     ); 

     if (in_array($program, $programs) && in_array($year, $years)) { 

      $sql = "SELECT a1,a2,a3,l1,l2,l3,l4,l5,l6,l7,lavg,r1,r2,u1,u2,u3 FROM $program WHERE year=$year"; 

      $result = mysql_query($sql); 
     } 

     else { 
      echo "No data found"; 
    } 
    ?> 
     <html> 
     <head> 
     <link rel="stylesheet" type="text/css" href="../../statistics/style.css"> 
     </head> 
      <body> 

      <div id="container"> 
      <table id="table" width="900" border="1" cellspacing="1"> 

      <tbody> 
       <tr> 
       <td>A1 </td> 
       <td>A2 </td> 
       <td>A3 </td> 
       <td>L1 </td> 
       <td>L2 </td> 
       <td>L3 </td> 
       <td>L4 </td> 
       <td>L5 </td> 
       <td>L6 </td> 
       <td>L7 </td> 
       <td>LAVG </td> 
       <td>R1 </td> 
       <td>R2 </td> 
       <td>U1 </td> 
       <td>U2 </td> 
       <td>U3 </td> 
     </tr> 
     </tbody> 
     <?php 
       while($program=mysql_fetch_assoc($result)){ 
        echo "<tr>"; 
        echo "<td>".$program['a1']."</td>"; 
        echo "<td>".$program['a2']."</td>"; 
        echo "<td>".$pprogram['a3']."</td>"; 
        echo "<td>".$pprogram['l1']."</td>"; 
        echo "<td>".$program['l2']."</td>"; 
        echo "<td>".$program['l3']."</td>"; 
        echo "<td>".$program['l4']."</td>"; 
        echo "<td>".$program['l5']."</td>"; 
        echo "<td>".$program['l6']."</td>"; 
        echo "<td>".$program['l7']."</td>"; 
        echo "<td>".$program['lavg']."</td>"; 
        echo "<td>".$program['r1']."</td>"; 
        echo "<td>".$program['r2']."</td>"; 
        echo "<td>".$program['u1']."</td>"; 
        echo "<td>".$program['u2']."</td>"; 
        echo "<td>".$program['u3']."</td>"; 
        echo "</tr>";  
       } 
      ?> 
     </table> 
    </div> 
    </body> 
    </html> 
+0

пытаются повторить SQL может быть, вы можете получить внутри, если условие, поэтому результат не определен, и вы получаете предупреждение. начните использовать mysqli или pdo. –

ответ

1

В коде действия и после include connect.php, добавьте этот ... $con=mysqli_connect("localhost","my_user","my_password","my_db"); и не забудьте заменить my_user, my_password, my_db с пользователем Yours, пароль и имя базы данных.

Также замените этот код $result = mysql_query($sql); с этим один $result=mysqli_query($con,$sql);

0

Это вопрос из области видимости переменной. Вы определили $ result внутри if condition и используете эту сторону if. Вам нужно определить $ result out of of if condition.

+0

Я отправил этот вопрос из первого ответа, поэтому у меня есть «$ result» внутри условия «if» [ссылка] http://stackoverflow.com/questions/29487723/cannot-display-the-proper- стол-в-PHP –

Смежные вопросы