0 votos

Enviar y validar variables de PHP a una consulta

Cordial saludo. Estoy haciendo una página en PHP para wordpress que realiza una consulta en una base de datos, la muestra como tabla en la misma página y luego la exporta en excel. Cuando le doy clic en "Consultar" me redirecciona a una página 404, igualmente antes de validar cualquier cambio en el select me aparece un warning como si no encontrara el valor de la variable name.

Anexo el código en caso de que me puedan ayudar, y gracias.

<div>
    <form method="post" action="<?php echo $_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

if(isset($_POST['name'])){ $name = $_POST['name']; }

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("ECOSOL","logfuncionario","F3s3r2017_");

$msdb=mssql_select_db("solido",$msconnect);

$msquery = "Select codigo, apellidos, nombres, fecha_nacimiento, direccion_domicilio, ciudad from clientes where periodo=".$name." order by codigo";";

$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 votos

Hola ¿Podrias enseñarnos el error que te da? ¿y hacer un echo de la consulta? Un saludo.

0voto

fredy chango Puntos10

Saludos. El problema de warning ⚠️ de la variable $name se debe condicionar

Y la variable $name se debe declarar antes de la condición isset() al inicio de la siguiente forma $name = ""; con eso ya se soluciona todo el problema.

//pero esta estructura de codigo q has echo yo no te recomendaría. saludos y suerte

$name = $_POST['name'];

if( $name != 0 ){ // y la llave cierra después de echo "</table>";

ini_set('mssql.charset', 'UTF-8');

$msconnect=mssqlconnect("ECOSOL","logfuncionario","F3s3r2017");

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by: