2017-02-21 15 views
0

Я новичок в программировании на PHP.Отправить значения для переменной PHP в Wordpress.org

На самом деле, я разрабатываю веб-страницу в Wordpress, которая при выборе html выбирает и нажимает кнопку «Consultar» в форме, это должно отображаться в таблице ниже содержимого SQL-запроса.

Но, в данном случае, это не работает, потому что, когда я начинаю страницу, появляется предупреждение, как это:

Предупреждение: mssql_query(): сообщение: Неправильный синтаксис около ключевого слова «заказать ». (Тяжесть 15) в /var/www/html/intranetfeser/wp-content/plugins/exec-php/includes/runtime.php(42) : Eval() 'd кода на линии 92

Я знаю, что он появляется, потому что переменная имени неизвестна или не имеет значений в запросе SQL в первый раз. Я не знаю, как дать начальное значение в данный момент.

И когда я нажимаю кнопку «Консультант»> (это кнопка отправки), страница пересылается на страницу 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>"; 
?> 

ответ

0

Изменить эту строку:

<?php if(isset($_POST['name'])){ $name = $_POST['name']; } ?> 

To:

<?php $name = filter_input(INPUT_POST, 'name'); ?> 

... и переменная $name всегда будет иметь значение.


Изменить эту строку:

and month(asociados.fecha_nacimiento)=".$name." 

To:

and month(asociados.fecha_nacimiento)='".$name."' 

... процитировать значение. $name может быть пустым, и запрос просто ничего не вернет.

 Смежные вопросы

  • Нет связанных вопросов^_^