Создание динамических ссылок с PHP / MySQL - PullRequest
0 голосов
/ 19 июня 2011

Я создаю свой первый сайт на PHP / MySQL, и мне трудно разобраться, как генерировать динамические ссылки, и создать новую страницу для этих ссылок.

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

Код на моей странице указателя для отображения превью приведен ниже, любая помощь по изменению его для создания ссылки и страницы будет принята с благодарностью.

<?php
$query="SELECT * FROM $tbl_name ORDER BY job_id DESC";
$result=mysql_query($query);

$num=mysql_numrows($result);

mysql_close();

$i=0;
while ($i < $num) {

$f1=mysql_result($result,$i,"company_name");
$f2=mysql_result($result,$i,"job_title");
$f3=mysql_result($result,$i,"city");
$f4=mysql_result($result,$i,"country");
$job_id=mysql_result($result,$i,"job_id");
?>

<div class = "hjl">
<ul>
<li id = "jobtitle"><?php echo $f2; ?></li><br />
<li id = "compname"><?php echo $f1; ?></li>
</ul>

<ul>
<li id = "city"><?php echo $f3; ?>, <?php echo $f4; ?></li><br />
</ul>

</div>

<?php
$i++;
}
?>

Я почти уверен, что то, о чем я спрашиваю, действительно просто, я просто не могу понять, как это сделать.

Ответы [ 3 ]

1 голос
/ 19 июня 2011

поставить mysql_close после вы используете mysql_result, но как только вы его заработаете, вы можете взглянуть на более современный подход, такой как PDO.

1 голос
/ 21 июня 2011

Спасибо вам обоим за ваши ответы, но мне удалось это исправить (или обойти) с помощью этого на моей странице указателя:

<?php

$query="SELECT * FROM $tbl_name ORDER BY job_id DESC";
$result=mysql_query($query) or die(mysql_error());
$rsjobinfo=mysql_fetch_assoc($result);

mysql_close();

do {?>
<div class = "hjl"><a href="paging.php?job_id=<?php echo $rsjobinfo['job_id'];?>">
<ul>
<li id = "jobtitle"><?php echo $rsjobinfo['job_title'];?></li><br />
<li id = "compname"><?php echo $rsjobinfo['company_name'];?></li>
</ul>
<ul>
<li id = "city"><?php echo $rsjobinfo['city'];?>, 
    <?php echo    $rsjobinfo['country'];?></li>
</ul>
</a>
</div>
<?php } while ($rsjobinfo=mysql_fetch_assoc($result))?>

</div>

После этого на моей странице содержимого:

<?php
$job_id = $_GET['job_id'];

$query="SELECT * FROM $tbl_name WHERE job_id = $job_id";
$result=mysql_query($query) or die(mysql_error());
$rsjobinfo=mysql_fetch_assoc($result);

mysql_close();

?>

Спасибо за вашу помощь всем.

Дан

0 голосов
/ 19 июня 2011

к вашему коду добавьте ссылку (которая, я думаю, у вас уже есть):

//...................
<li id = "jobtitle">
   <a href="<?php echo '?id='.$job_id; ?>">
       <?php echo $f2; ?>
   </a>
</li>
//...................
<a href="<?php echo '?id='.$job_id; ?>">Read more...</a>
//...................

тогда ваш код должен проверить переменную $ _GET ['id'], поэтому поставьте IF в начале вашегокод:

$where = '';

if( isset($_GET['id']) && strlen($_GET['id']) > 0 ) {
    $where = ' job_id = "'. mysql_real_escape_string( $_GET['id'] ) .'"' ;
}

<?php
$query="SELECT * FROM $tbl_name $where ORDER BY job_id DESC";
$result=mysql_query($query);

$num=mysql_numrows($result);

mysql_close();

$i=0;
while ($i < $num) {

$f1=mysql_result($result,$i,"company_name");
$f2=mysql_result($result,$i,"job_title");
$f3=mysql_result($result,$i,"city");
$f4=mysql_result($result,$i,"country");
$job_id=mysql_result($result,$i,"job_id");
?>

<div class = "hjl">
  <ul>
    <li id = "jobtitle">
        <a href="<?php echo '?id='.$job_id; ?>">
              <?php echo $f2; ?>
        </a>
    </li><br />
    <li id = "compname"><?php echo $f1; ?></li>
  </ul>

<ul>
   <li id = "city"><?php echo $f3; ?>, <?php echo $f4; ?></li><br />
</ul>

<a href="<?php echo '?id='.$job_id; ?>">Read more...</a>

</div>

<?php
$i++;
}
?>

изменить: Попробуйте изменить следующую строку:

$where = " job_id = '". mysql_real_escape_string( $_GET['id'] ) ."'" ;
...