2015-08-20 3 views
1

Я показываю таблицу данных из MySQL, скажем, в x.php какPHP и MySQL SESSION, принимая последний ряд

<?php $sql = "SELECT * FROM tblname"; 
$result = $conn->query($sql); 

if ($result->num_rows > 0) { 
    while($row = $result->fetch_assoc()) { 

     $id=$row["id"]; 
     echo "<tr><td>". $row["0"]. "</td><td>". $row["1"]."</td><td>".$row["2"]."</td><td>".$row["3"]."</td><td>"."<a href='y.php?=$id'>More details</a>"."</td></tr>"; 
     $_SESSION["id"]=$id; 

    } 
} else { 
}?> 

Но куда я иду в y.php класс, чтобы увидеть больше деталей он показывает данные только из последней строки записей MySQL. Как я могу это исправить?

+0

Я вижу только один '$ row'. У вас есть петля? Как насчет запроса? – Machavity

+0

'select ... order some something desc limit 1', тогда вы показываете только одну строку. –

+0

http://php.net/manual/en/function.mysql-data-seek.php, чтобы вернуться к началу данных SET mysql_data_seek – volkinc

ответ

2

Неправильно то, что вы используете $ _SESSION для получения деталей. Вы хотите не хранить идентификатор в $ _SESSION, вы хотите поместить его в каждую ссылку, так что когда пользователь нажимает на ссылку, у него есть доступ к детализации строки.

В общем, параметры, переданные по ссылке (например, index.php? Param1 = value1), находятся в глобальной переменной $_GET.

Итак, я думаю, что в y.php вы используете $_SESSION['id'], чтобы получить деталь строки, вместо этого используйте $_GET['id'].

Кроме того, в x.php Редактировать:

"<a href='y.php?=$id'>More details</a>" 

к:

"<a href='y.php?id=$id'>More details</a>" 

и удаления: $_SESSION['id'] = $id;

+0

Это сработало. Спасибо – arber