Включить различные данные MySQL на странице в зависимости от выбора пользователя - PullRequest
1 голос
/ 26 марта 2012

У меня есть проблема, которую я не могу решить. У меня есть база домов с указанием страны, местоположения, цены и т. Д. Я печатаю только страны в таблице, используя: while ($data = mysql_fetch_array($select)) где $ select - это запрос, который выбирает конкретные данные из БД. Я хочу отобразить полную информацию о выбранных данных БД на другой странице, которую я создал. Проблема в том, что я не знаю, как определить цену данных, выбранных пользователем. Когда я получаю цену $_SESSION['counter'], это номер последней сущности БД. , Я не хочу использовать JavaScript и т. Д. Вот код страницы:

<?php
require_once 'php/core.php';    // opens the database
require_once 'php/openDB.php';  // starts the new session


$select = mysql_query("SELECT ID, Country, City FROM Houses");
$counter = 1;

echo "<form action='house_profile.php' method='get'> 
    <table width='400'>
    <tr>
    <td>No.</td>
    <td>Country</td>
    <td>City</td>";
    echo "<tr>";

while ($data = mysql_fetch_array($select))
{
    echo "<tr>";
    echo "<td>" . $counter . "</td>";
    echo "<td>" . $data['Country'] . "</td>";
//  echo "<td>" . "<a href='house_profile.php' type='submit' value='$counter'>" . $data['City'] . "</a>" . "</td>";
    echo "<td>" . $data['City'] . "</td>";
    echo "<td><input type='submit' value='info' name='" . $counter . "'></td>";
    echo "</tr>";
    $_SESSION['counter'] = $counter;
    $counter++;
}
echo "</table>
    </form>";
    ?>`

Ответы [ 2 ]

0 голосов
/ 26 марта 2012

Уточнение: вы можете передать любое значение в house_profile.php, добавив?чтобы запустить строку запроса, затем имя переменной и значение.Если вы хотите передать идентификатор в house_profile, то ссылка должна выглядеть следующим образом.

    "<a href='house_profile.php?ID=" . $data['ID'] . "'>"

, затем в house_profile.php обновите ваш запрос следующим образом:

    $select = mysql_query("SELECT * FROM Houses where ID = " . $_GET['ID']);

Теперь только сущность, которую ониНажатие будет доступно.

FYI $ counter это просто счетчик, это не обязательно ID объекта.например, если вы удалите идентификатор 1, ваши записи начнутся с идентификатора 2, но счетчик всегда будет начинаться с 1. Таким образом, чтобы правильно ссылаться на свои объекты, используйте идентификатор базы данных.

0 голосов
/ 26 марта 2012

Ваш запрос извлекает ID каждого дома из базы данных, но не отображает его (если я не понимаю ваш код).Когда пользователь выбирает дом, вы должны получить идентификатор, а затем использовать его в отдельном запросе, например

select price
from houses
where id = :ID

. В настоящее время в форме отображается счетчик строк, а не идентификатор дома.- который объясняет, почему вы пишете ...

Когда я получу цену $ _SESSION ['counter'], это номер последней сущности БД.

Вы передаете значение счетчика строк во второй запрос вместо идентификатора дома.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...