#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 к каждому сообщению.. Если я это сделаю, ссылка на заголовок этой страницы сообщения должна быть простой, как вы упомянули выше.