使用php和mysql在url中设置变量

时间:2014-01-29 07:25:48

标签: php mysql variables url

我需要在url,$ id和$ job中设置两个变量。数据应来自mysql select语句,[id]和[job_number_id]。我的页面显示客户端作业提议,如果有多个提案显示,但[id]和[job_number_id]确定网页上显示的内容。我不知道如何做到这一点。任何帮助将不胜感激。这是代码:

<?php

$url = 'http://localhost/estimate_lar/homepage.php';
$id = $_SESSION['id'];

$query =    "SELECT id, client_job_name, job_number_id
            FROM `job_name`
            WHERE `id`='$id'";
$allJobs = $db->query($query);

?>

<?php foreach ($allJobs as $site_title) : ?>
 <p> 
  <tr><?php echo '<a href="'.$url.'">'.$site_title['client_job_name'],$site_title['job_number_id']. '<br />'.'</a>'; ?>
    <td></td>
  </tr>
</p>
<?php endforeach; ?>

2 个答案:

答案 0 :(得分:3)

如果您希望变量在网址中可用,则需要使用$_GET阅读它们。

index.php?id=1&job_number_id=3等网址获取参数将如下所示:

if (isset($_GET['id']) && isset($_GET['job_number_id'])) {//make sure both arguments are set
    $id = $_GET['id'];
    $job_number_id = $_GET['job_number_id'];
}

在foreach声明中设置它:

<?php foreach ($allJobs as $site_title) : ?>
 <p> 
      <tr><?php 

$url = "http://localhost/estimate_lar/homepage.php?id=" . $site_title['id'] . "&job_number_id=" . $site_title['job_number_id'];

echo '<a href="'.$url.'">'.$site_title['client_job_name'],$site_title['job_number_id']. '<br />'.'</a>'; 

    ?>
    <td></td>
  </tr>
</p>
<?php endforeach; ?>

请记得阅读有关SQL注入的信息并确保您正在逃避输入。甚至更好 - 使用准备好的声明。

目前您的脚本是可以使用的,因为每个人都可以更改URL并操纵您的数据库。

希望这有帮助!

答案 1 :(得分:0)

试试这个。

<?php
session_start();
$id = $_SESSION['id'];
$url = 'http://localhost/estimate_lar/homepage.php';
if($id){

$query =    "SELECT id, client_job_name, job_number_id  FROM `job_name`  WHERE `id`='$id'";
$allJobs = $db->query($query);

}else{
echo "Id not in session";
}
?>
 <table>
<?php if ($allJobs)  { foreach ($allJobs as $site_title) : ?>

  <tr>
  <td>
 <a href="<?php echo $url; ?>?client_job_name=<?php echo $site_title['client_job_name'];?>&job_number_id=<?php echo $site_title['job_number_id'];?> "> <?php echo $site_title['job_number_id']. " ".$site_title['job_number_id']; ?></a>
  </td>

 </tr>

<?php endforeach; ?>
</table>

 <?php }else{ echo 'No results Found' ;} ?>

这可能会对你有帮助。