如何在mysql中调用该值然后变成一个变量

时间:2014-01-13 01:24:59

标签: php mysql

这是我的代码

<?php
require("db.php");
$datetoday = date("Y-m-d");
if (isset($_POST['submit']))
    {      
    include 'db.php';
    $loginid =$_REQUEST['loginid'];

$result = mysql_query("SELECT * FROM info WHERE id  = '$loginid'");
$test = mysql_fetch_array($result);
$testid=$test['id'];
$fnameloginsuccess1=$test['firstname'];
$mnameloginsuccess1=$test['middlename'];
$lnameloginsuccess1=$test['lastname'];
$departmentloginsuccess1=$test['department'];
echo'<input type="text" name="fname" value="<?php echo $fnameloginsuccess1 ?>"/></td>';
if (!$loginid)
{header("location:../index.php");   }






    $natureofleave =$_POST['group1'];
    $datestart=$_POST['startofleave'];
    $dateend=$_POST['endofleave'];
    $reason=$_POST['reason'];
    $status= 'pending';





    mysql_query("INSERT INTO `request`(id,natureofleave,dateofleavestart,dateofleaveend,reasons,datesubmitted,department,status,firstname,middlename,lastname)
         VALUES('$log','$natureofleave','$datestart','$dateend','$reason','$datetoday','$departmentloginsuccess1','$status','$fnameloginsuccess1','$mnameloginsuccess1','$$lnameloginsuccess1')");





    }

我的主要问题是我无法在我的数据库中放入$ fnameloginsuccess1,$ mnameloginsuccess1','$ lnameloginsuccess1',$ departmentloginsuccess1的值。 但我可以“回声”他们..一些价值观正在发挥作用,但4个值不起作用!! 我已经尝试过fname = $ fnameloginsuccess1';可悲的是说它不起作用.. HELP !!

2 个答案:

答案 0 :(得分:0)

<?php
    require("db.php");
    $datetoday = date("Y-m-d");
    if (isset($_POST['submit']))
    {      
        include 'db.php';
        $loginid =$_REQUEST['loginid'];

        if (!$loginid) {header("location:../index.php");   }    

        $result = mysql_query("SELECT * FROM info WHERE id  = '$loginid'");
        $test = mysql_fetch_array($result);
        $testid=$test['id'];
        $fnameloginsuccess1=$test['firstname'];
        $mnameloginsuccess1=$test['middlename'];
        $lnameloginsuccess1=$test['lastname'];
        $departmentloginsuccess1=$test['department'];
        echo'<input type="text" name="fname" value="'.$fnameloginsuccess1.'"/></td>';

        $natureofleave =$_POST['group1'];
        $datestart=$_POST['startofleave'];
        $dateend=$_POST['endofleave'];
        $reason=$_POST['reason'];
        $status= 'pending';

        mysql_query("INSERT INTO `request` (id, natureofleave, dateofleavestart, dateofleaveend, reasons, datesubmitted,department,status,firstname,middlename,lastname) VALUES('$log','$natureofleave','$datestart','$dateend','$reason','$datetoday','$departmentloginsuccess1','$status','$fnameloginsuccess1','$mnameloginsuccess1','$lnameloginsuccess1')");

    }

?>

答案 1 :(得分:0)

<?php
require_once("db.php");
$datetoday = date("Y-m-d");

if ($_SERVER['REQUEST_METHOD'] == "POST")
{
    $loginid = $_REQUEST['loginid'];
    if (!$loginid)
    {
        header("Location: ../index.php");
        exit;
    }

    $result = mysql_query("SELECT * FROM `info` WHERE `id`  = '$loginid'");
    $user   = mysql_fetch_array($result);
    $id     = $user['id'];
    $first  = $user['firstname'];
    $middle = $user['middlename'];
    $last   = $user['lastname'];
    $dept   = $user['department'];
    $nature = $_POST['group1'];
    $start  = $_POST['startofleave'];
    $end    = $_POST['endofleave'];
    $reason = $_POST['reason'];
    $status = 'pending';

    $sql = <<<SQL
        INSERT INTO `request` 
            (`id`, `natureofleave`, `dateofleavestart`, `dateofleaveend`, `reasons`, `datesubmitted`, `department`, `status`, `firstname`, `middlename`, `lastname`)
        VALUES 
            ('$id', '$nature', '$start', '$end', '$reason', '$datetoday', '$department', '$status', '$first', '$middle', '$last');
SQL;
    mysql_query($sql) or die ('There was an error processing your data.');
}
?>

我觉得有必要指出几点:

  1. 当你“需要”db.php时,你不需要“包含”它。
  2. 命名变量时,最好保持简单。更容易调试和追踪。
  3. 标题重定向后退出脚本。标头中的延迟可能允许执行更多代码。
  4. 你不能在PHP标签中使用PHP标签 - 它只是不解析那种方式
  5. 我建议在mysql_query()包装器之外写SQL,因为你可以回显出SQL
    • 如果直接在mysql_query()
    • 中编写,则无法完成
  6. 日志未定义,因此不会输入。我假设应该是用户ID并编辑以适应。
  7. 您在查询中有2个美元符号(lnameloginsuccess1)

  8. 无论如何,如果你运行上面的代码并得到“处理你的数据时出错了。”,你可以很容易地调试它。

    1. 更改 mysql_query($ sql)或die('处理数据时出错。'); 至 mysql_query($ sql)或die(mysql_error());
    2. 如果它报告的错误含糊不清,那么您可以将查询直接运行到管理面板(PhpMyAdmin等)中,从而获得更好的结果,这样做;

      1. 在mysql查询之前的行上,只需添加“echo $ sql;”并再次运行该页面。复制查询的整个输出并在数据库管理面板中运行。
      2. 如果那里没有错误,您需要查看连接问题 - 例如连接数据中的错误