Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过php在oracle数据库中按日期搜索_Php_Html_Sql_Select_Oracle11g - Fatal编程技术网

通过php在oracle数据库中按日期搜索

通过php在oracle数据库中按日期搜索,php,html,sql,select,oracle11g,Php,Html,Sql,Select,Oracle11g,我的任务是为我的站点的用户创造机会来更改间隔日期,以便从Oracle数据库中查看所需的信息,但问题是,当我在Oracle的SQL select查询中更改某些内容时出错了,您能给我一些指导吗。我不知道我必须改变什么;;这是代码 <html> <head> </head> <body> <form> From:<input name="Date_1" type="Date" value="<%=Date_1%>"

我的任务是为我的站点的用户创造机会来更改间隔日期,以便从Oracle数据库中查看所需的信息,但问题是,当我在Oracle的SQL select查询中更改某些内容时出错了,您能给我一些指导吗。我不知道我必须改变什么;;这是代码

<html>
<head>
</head>
<body>    
<form>
From:<input name="Date_1" type="Date" value="<%=Date_1%>" size="15" />
To:<input name="Date_2" type="Date" value="<%=Date_2%>" size="15" />
<input name="Submit" type="submit" />
</form>     
<?php
$conn = oci_connect('scott', 'tiger', '(DESCRIPTION= (ADDRESS= (PROTOCOL=) (HOST=) (PORT=)) (CONNECT_DATA= (SERVICE_NAME=)))');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
//----------------------------------------------------------------------------------
$sql = "SELECT * from somewhere WHERE name_date between '{$Date_1}' AND '{$Date_2}'";    
if (empty($_GET['name_date']))
$sql = "SELECT * FROM name_date WHERE 1 = 2 ";
$res = mysql_query($sql);
?>    
</body>
</html>

发件人:
致:

所以看起来php代码和sql需要放在不同的文件中。看起来包含表单的同一页在实际拥有$Date_1和$Date_2的值之前也尝试进行sql连接。如果查看发送到Oracle的查询,则对于导致错误的变量,查询可能为空:

从name_日期介于“”和“”之间的位置选择* 按TRUNC分组(a.CTS,'DD') TRUNC订购(a.CTS,'DD') 相反,您可能希望尝试以下两个文件:

第1.php部分:

<html>
<head>
</head>
<body>    
<form action="part2.php" method="post">
From:<input name="Date_1" type="Date" size="15" />
To:<input name="Date_2" type="Date"size="15" />
<input name="Submit" type="submit" />
</form>     
</body>
</html>

发件人:
致:
第2.php部分

<?php
$Date_1 = $_POST['Date_1'];
$Date_2 = $_POST['Date_2'];
$conn = oci_connect('scott', 'tiger', '(DESCRIPTION= (ADDRESS= (PROTOCOL=) (HOST=) (PORT=))    (CONNECT_DATA= (SERVICE_NAME=)))');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
//----------------------------------------------------------------------------------
$sql = "SELECT * from somewhere WHERE name_date between '{$Date_1}' AND '{$Date_2}'
group by TRUNC(a.CTS,'DD')
order by TRUNC(a.CTS,'DD')";    
if (empty($_GET['name_date']))
$sql = "SELECT * FROM name_date WHERE 1 = 2 ";
$res = mysql_query($sql);
?>    

发生这种情况是因为变量是在使用它们的点之后定义的

如果在代码顶部定义一个变量,那么所有部分都可以访问它(当然,如果它有值的话),但是如果在底部定义它并在定义之前使用它(这是您正在做的),那么该变量还不存在,请记住:PHP在执行时逐行运行

要解决此问题,请剪切并粘贴整个PHP代码:

<?php
 $conn = oci_connect('scott', 'tiger', '(DESCRIPTION= (ADDRESS= (PROTOCOL=) (HOST=) (PORT=))      (CONNECT_DATA= (SERVICE_NAME=)))');
 if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
 }
 //----------------------------------------------------------------------------------
 $sql = "SELECT * from somewhere WHERE name_date between '{$Date_1}' AND '{$Date_2}'";    
 if (empty($_GET['name_date']))
 $sql = "SELECT * FROM name_date WHERE 1 = 2 ";
 $res = mysql_query($sql);
?>  

谢谢,我试过了,有新的错误;;注意:第2行C:\xampp\htdocs\part2.php中未定义索引:Date_1注意:第3行C:\xampp\htdocs\part2.php中未定义索引:Date_2;你知道有什么问题吗?是的,对不起,你想要$u POST['Date\u 1'];不是你得到的。我更新了上面的代码。请注意,这与html代码中的方法相同。另外,您必须先运行part1.php,并让它正确地将您重定向到part2.php,否则您将得到错误。这不会起作用,他没有在php中定义要打印到html中的变量,他希望使用html获取变量并将其传递给php。