簡體   English   中英

在Wordpress.org中發送PHP變量的值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM