[英]Send values for a PHP variable in Wordpress.org
我是PHP编程的新手。
实际上,我在wordpress中开发了一个网页,当选择html select并单击表单中名为“ Consultar”的按钮时,该页面应显示在SQL查询内容下方的表格中。
但是,在这种情况下,它不起作用,因为当我启动页面时,会出现如下警告:
警告:mssql_query():消息:关键字“ order”附近的语法不正确。 (严重性15)在/var/www/html/intranetfeser/wp-content/plugins/exec-php/includes/runtime.php(42)中:第92行上的eval()代码
我知道它的出现是因为名称变量是未知的,还是第一次在SQL查询中没有值。 我现在不知道如何给出初始值。
然后,当我单击按钮“ Consultar”>(即提交按钮)时,页面将重新发送到404页面。 它应该重新发送到同一页面,因为其中显示了查询结果。
这是代码:
<?php if(isset($_POST['name'])){ $name = $_POST['name']; } ?>
<div>
<form method="post" action="<?php echo htmlentities($_SERVER['PHP_SELF']) ?>">
<div>
Seleccione periodo:
<select name="name">
<option value="0" selected>Haga clic aquí</option>
<option value="1" <?php if($_POST['name']=='1') echo 'selected="selected" ';?>> ENERO</option>
<option value="2" <?php if($_POST['name']=='2') echo 'selected="selected" ';?>>FEBRERO</option>
<option value="3" <?php if($_POST['name']=='3') echo 'selected="selected" ';?>>MARZO</option>
<option value="4" <?php if($_POST['name']=='4') echo 'selected="selected" ';?>>ABRIL</option>
<option value="5" <?php if($_POST['name']=='5') echo 'selected="selected" ';?>>MAYO</option>
<option value="6" <?php if($_POST['name']=='6') echo 'selected="selected" ';?>>JUNIO</option>
<option value="7" <?php if($_POST['name']=='7') echo 'selected="selected" ';?>>JULIO</option>
<option value="8" <?php if($_POST['name']=='8') echo 'selected="selected" ';?>>AGOSTO</option>
<option value="9" <?php if($_POST['name']=='9') echo 'selected="selected" ';?>>SEPTIEMBRE</option>
<option value="10" <?php if($_POST['name']=='10') echo 'selected="selected" ';?>>OCTUBRE</option>
<option value="11" <?php if($_POST['name']=='11') echo 'selected="selected" ';?>>NOVIEMBRE</option>
<option value="12" <?php if($_POST['name']=='12') echo 'selected="selected" ';?>>DICIEMBRE</option>
</select>
<input type="submit" name="submit" value="Consultar">
<input type="button" onclick=" generateexcel('testTable') " value="Exportar a Excel">
</div>
</form>
</div>
<?php
echo "<table class='peq' id='testTable'>";
echo "<tr>";
echo "<th class='peq'>Codigo</th>";
echo "<th class='peq'>Apellidos</th>";
echo "<th class='peq'>Nombres</th>";
echo "<th class='peq'>Fecha_nacimiento</th>";
echo "<th class='peq'>Direccion_domicilio</th>";
echo "<th class='peq'>Ciudad</th>";
echo "</tr>";
$name = $_POST['name'];
ini_set('mssql.charset', 'UTF-8');
$msconnect=mssql_connect("myserver","myuser",mypassword");
$msdb=mssql_select_db("solido",$msconnect);
$msquery = "Select
asociados.codigo,
asociados.nombre,
asociados.apellido,
(CONVERT (char(10),asociados.fecha_nacimiento, 103)) as fecha_nacimiento,
asociados.direccion,
asociados.ciudad
from (
SELECT
CAST(CAST(sys_maenit.CODIGOTER AS float(53)) AS decimal(10, 0))as codigo,
sys_maenit.APELLIDO AS apellido,
sys_maenit.NOMBRE AS nombre,
sys_maenit.DIRECCION AS direccion,
sys_ciudad57.NOMBRE_CIUDAD AS ciudad,
sys_maenit.FECNACEM as fecha_nacimiento,
sys_maenit.empresa as empresa
FROM (solido.dbo.sys_maenit
CROSS JOIN solido.dbo.sys_ciudad57)
WHERE (
(sys_maenit.ESTADO = 'A') AND
(sys_maenit.CLASE = '5') AND
(sys_maenit.DPTO_CIUDAD = sys_ciudad57.CIUDAD))
) as asociados
where asociados.empresa != '0099'
and month(asociados.fecha_nacimiento)=".$name." order by day(asociados.fecha_nacimiento);";
$msresults= mssql_query($msquery);
while ($row = mssql_fetch_array($msresults)){
echo "<tr>";
echo "<td class='peq'>$row[0]</td>";
echo "<td class='peq'>$row[1]</td>";
echo "<td class='peq'>$row[2]</td>";
echo "<td class='peq'>$row[3]</td>";
echo "<td class='peq'>$row[4]</td>";
echo "<td class='peq'>$row[5]</td>";
echo "</tr>";
}
echo "</table>";
?>
更改此行:
<?php if(isset($_POST['name'])){ $name = $_POST['name']; } ?>
至:
<?php $name = filter_input(INPUT_POST, 'name'); ?>
...并且$name
变量将始终被设置。
更改此行:
and month(asociados.fecha_nacimiento)=".$name."
至:
and month(asociados.fecha_nacimiento)='".$name."'
...报价值。 $name
可以为空,查询将不会返回任何内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.