2015-03-15 7 views
0

У меня есть таблица базы данных с записями некоторых студентов, что выглядит следующим образом: таблицы = Название ID счет 1 Michael Smith 67 2 Lois Brown 72 3 Kate Smith 53 4 Nick Ross 56пытается получить данные из базы данных с помощью PHP

Что я хочу сделать, это использовать мой раскрывающийся список, который содержит имена учащихся, чтобы получить информацию об учениках и отображать их по одному. например, если я нажму на Ник Росс в раскрывающемся списке, я ожидаю, что он отобразит 4, Ник Росс и 56 в виде таблицы, но вместо этого я получу его, чтобы отобразить пустую страницу. любезную помощь. вот мои скрипты

<html> 
<body> 
<br><br><br> 
<form method = "POST" action = "students.php" > 
<select name="students"> 
    <option>Select a name:</option> 
    <option>Michael Smith</option> 
    <option>Lois Brown</option> 
    <option>Kate Smith</option> 
    <option>Nick Ross</option> 
    </select> 
    <br><br> 
    <input type = "submit" name "submit" value ="Process"> 
</form> 

<br> 


</body> 
</html> 

students.php

<?php 

$con = mysqli_connect('localhost','root','','school'); 
if(!$con) die('Could not connect: ' . mysql_error($con)); 

if(isset($_POST['submit'])) { 

     $students = $_POST['students']; 

    $result = mysqli_query($con,"SELECT *, FROM score WHERE students = $students"); 

    echo "<table align='center' width='340px' border='1'> 
    <tr> 
    <th>id</th> 
    <th>Name</th> 
    <th>Score</th> 
    </tr>"; 

    while($row = mysqli_fetch_array($result)) { 
     echo "<tr>"; 
     echo "<td>" . $row['id'] . "</td>"; 
     echo "<td>" . $row['name'] . "</td>"; 
     echo "<td>" . $row['score'] . "</td>"; 
     echo "</tr>"; 
    } 

    echo "</table>"; 
} 

mysqli_close($con); 


?> 
+0

У вас смешанные 'mysql' и' mysqli' - mysql_error –

+0

хорошим местом для начала с PHP является включение отчетов об ошибках. Я думаю, вы должны удалить запятую после * в своем запросе. Возможно, будет другая ошибка, но дайте это выстрел – ambe5960

+0

. Я удалил запятую после *, но все равно ничего. однако, когда я тестировал это на wamp, я получаю сообщение об ошибке: Warning: mysqli_fetch_array() ожидает, что параметр 1 будет mysqli_result, boolean задан в D: \ wamp \ – timmy

ответ

1

Вы должны передать идентификатор, который вы хотите получить из базы данных в качестве значения. В вашем HTML положить в <option> теге атрибут значения следующим образом:

<option value="1">Michael Smith</option> <option value="2">Lois Brown</option>

И, вероятно, вам нужно будет изменить ваш запрос, чтобы соответствовать изменениям. Я хотел бы сделать что-то вроде:

SELECT * FROM score WHERE id = $student_id 
0

Если вы хотите отобразить запись студент, вы можете использовать простую связь гипер с идентификатором этого студента InstEd формы, и когда пользователь нажимает на эту ссылку просто получить идентификатор из URL и выборки записей из база данных.

Например

<a href="students.php?id=1">Michael Smith</a>

Тогда в студенческой странице просто получить идентификатор

<?php 
    $id = $_GET['id']; 

    //Then use simple select query to fetch record from database 

    SELECT * FROM score WHERE id = $id; 
?> 

И если вы хотите использовать раскрывающийся список, я бы предпочел использовать Ajax с таким же способом, как и я описано выше.

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