Как мне составить список со ссылками?

Я делаю список с именами и ссылками на полную информацию о них. Итак, у меня есть простая поисковая система, которая осуществляет поиск по именам или конкретным номерам. Я использую $ _SESSION, чтобы идентифицировать людей. Проблема в том, что когда существует более 1 имени и я перехожу на страницу конкретного человека, появляется страница последнего человека в списке!
Итак, код поисковой системы:

    if(isset($_POST['search'])){
$searchq = $_POST['search'];
$searchq = preg_replace("#[^0-9_a-z A-Z]#i","",$searchq);

$query = mysql_query("SELECT * FROM contract WHERE name LIKE '%$searchq%' OR student_code LIKE '%$searchq%'") or die("could not search");

$count = mysql_num_rows($query);
if($count == 0){
$output = 'There was no such results!';
}
else{
while($row = mysql_fetch_array($query)){

$name = $row['name'];
$student_code = $row['student_code'];
$_SESSION['users_id'] = $row['users_id'];
$output = '<table border ="1"><tr><td>'.$name.' '.$student_code.'
</td>
<td>
<form action="cont.php" method="post">
<label>Look at the contract:</label>
<input type="submit" name="submit" value=">>">
</form>
</td>
</tr>
</table><br \>

И еще один скрипт в файле подкачки:

$users_id = $_SESSION['users_id'];
$result =  mysql_query("SELECT * FROM contract WHERE users_id = $users_id");
while($myrow = mysql_fetch_array($result)){
$output1 =

0

Решение

Насколько я понял ваш вопрос, у вас есть две страницы. Одна страница, которая выполняет поиск, а другая страница, которая показывает «дополнительную информацию» о конкретном результате.

Что вы в основном делаете в поиске:
Предположим, у вас есть три результата, которые получили Id 1,4,7.

Это то, что произойдет в вашем цикле

  1. Установите $ name $ student_code и $ _SESSION [‘user_id’] ($ _SESSION [‘user_id’] теперь равно 1)
  2. Подготовьте первый результат
  3. Установите $ name $ student_code и $ _SESSION [‘user_id’] ($ _SESSION [‘user_id’] теперь 4)
  4. Подготовьте второй результат
  5. Установите $ name $ student_code и $ _SESSION [‘user_id’] ($ _SESSION [‘user_id’] сейчас 7)
  6. Подготовьте третий результат

Как вы можете видеть, вы всегда перезаписываете сеансовый ключ и, следовательно, только последний будет доступен, когда вы попадете на страницу «cont.php» (где, я полагаю, другой код?)

Одним из простых решений было бы запечь идентификатор в форме и отправить его вместе с запросом на страницу cont.php. Что-то вроде этого:

<form action="cont.php" method="post">
<label>Look at the contract:</label>
<input type="submit" name="submit" value=">>">
<input type="hidden" name="user_id" value="' . $row['users_id'] . '">
</form>

И тогда в cont.php вы просто измените это:

$users_id = $_SESSION['users_id'];

к этому

$users_id = $_POST['users_id'];

Надеюсь, это поможет 🙂

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]