создание классифицированного застрявшего

#php #mysql

#php #mysql

Вопрос:

Я новичок в веб-дизайне (php, mysql). Я создаю классифицированный, похожий на Craigslist, но не такой сложный.

Мне удалось получить ввод пользовательских объявлений, а также вставить фотографии в базы данных mysql, и все работает отлично.

Мне также удалось получить данные, когда пользователь выполняет поиск по определенной категории, например, по автомобилям

     $query="SELECT city, title, price FROM md_post WHERE category='cars'";

$result= mysql_query($query) or die (mysql_error());

while($row = mysql_fetch_array($result)){
echo "<a href='XXXX.php'>". $row['title']. " - ". $row['price']." - ".$row['city']."</a>";
echo "<br /><br />";
  

ВЫВОД:
Шарлотта — NISSAN — $ 9000
Шарлотта — BMW — $ 11000

теперь я хочу, чтобы, когда пользователь нажимает на заголовок объявления, пользователь перенаправлялся на саму страницу объявления. (точно так же, как это сделал бы Craigslist или любой другой classified)

как я могу это сделать? Я знаю, что это общие вопросы, и я не ожидаю, что кто-нибудь предоставит весь код, но мне нужны подсказки и идеи, пожалуйста.

Я буду очень благодарен. Спасибо

Ответ №1:

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

http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html

Когда вы выбираете свои объявления из базы данных, вы можете одновременно удалить идентификатор для этого объявления из базы данных

 $query="SELECT ad_id, city, title, price FROM md_post WHERE category='cars'";
  

Затем получите ad_id таким же образом $row['ad_id'] .

Затем вы можете опубликовать это прямо в своем HTML-теге, чтобы сформировать URL-адрес, подобный: ad.php?id={ID OF AD HERE}

 echo "<a href='ad.php?id=' . $row['ad_id'] . '>". $row['title']. " - ". $row['price']." - ".$row['city']."</a>";
  

Затем в вашем ad.php вы можете представить этот идентификатор с помощью

 echo $_GET['id'];
  

Вы можете использовать этот идентификатор в запросе, чтобы выбрать правильное объявление … но убедитесь, что вы выбираете из своей базы данных для использования mysql_real_escape_string($_GET['id']) , чтобы предотвратить внедрение SQL.

Комментарии:

1. Большое спасибо за ваш подробный ответ. извините, я забыл включить и упомянуть свой post_id автоматического увеличения. У меня это есть, и каждая строка в mysql имеет post_id. Но у меня возникают трудности с назначением страницы, подобной www.x.com/?id=xxx к каждому сообщению. Я попробую использовать метод, который вы упомянули. Я ценю вашу помощь.

2.@МохаммедА.AlJama Отличная штука, попробуй! Для начала создайте новую страницу PHP, затем просто вставьте <?php echo $_GET['id']; ?> , затем посетите phppage.php?id=hello phppage.php?id=12345 , и тогда вы увидите, что указанное вами значение будет передано скрипту. Удачи!

3. Большое спасибо. Я неделю как сумасшедший программировал, чтобы создать этот веб-сайт, и каждый день я многому учусь. Спасибо за вашу поддержку и помощь. Это позволит мне всегда двигаться вперед.

Ответ №2:

Если вы знаете адрес ad_page, просто поместите его в свой href

 $query="SELECT city, title, price FROM md_post WHERE category='cars'";

$result= mysql_query($query) or die (mysql_error());

while($row = mysql_fetch_array($result)){
    $ad_page = ..;
    echo "<a href="'.$ad_page.'">". $row['title']. " - ". $row['price']." - ".$row['city']."</a>";
    echo "<br /><br />";
}
  

если это происходит из вашей базы данных, просто поместите это в свой запрос .. или что еще..

Комментарии:

1. Спасибо за ваш ответ. У меня все еще нет моей страницы ad_page. По какой-то причине у меня возникают трудности с назначением страницы, подобной www.x.com/?id=xxx к каждому сообщению.. Если я это сделаю, ссылка на заголовок этой страницы сообщения должна быть простой, как вы упомянули выше.