mmm puede ser que no te entienda o tu no me entiedas , vuelvo a explicarte:
Cuando vos intentas acceder a un indice no declarado en un arreglo te dara undefined index bla bla bla , hasta ahi todo bien , ahora el trucho es ver como podemos evitar que nos de este error , ya que como tu me dices haces la consulta y el listado en la misma pagina.
La idea que te mostre , se pasa en que controlamos mediante isset si esta declarado el arreglo $_POST , si no esta declarado no ejecuto la sección de codigo donde haces la consulta , si esta declarado , quiere decir que vos mandaste datos via el formulario , ya que el areglo post no es como una sesion , no permanece en lugares a donde vos no mandaste información , solo existe en la pagina que defines en tu method como encargada de procesar los datos que enviaras con ese formulario.Por ende , la idea vuelvo a repetir es ver si esta declarado ese arreglo , si no esta declarado no ejecutas nada que intente acceder a $_POST['el indice que sea'] , xq si lo haces te dara error , entonces la unica manera de saber esto es mediante un if con isset o sino ver si en un arreglo se paso el nombre del formulario o existe algun campo con valor submit ,pero a mi me gustaria hacerlo mas de otro modo.
Si queres , pasame el codigo php de tu pagina y te muestro como hacerlo , pero de todas formas te hago un ejemplo sencillo.
formulario.php
Código php:
Ver original<?php
<html>
<head>
<title>Formulario</title>
</head>
<body>
<form id='form' name='formulario' method='post' action='procesa.php'>
<input type='text' name='nombre'/>
<input type='submit' name='envio' value='Enviar' />
</form>
</body>
</html>
?>
procesa.php
Código php:
Ver original<?php
echo "Mi nombre es : <b>".$_POST['nombre']."</b>";
}else{
echo "No puedo acceder al indice nombre del arreglo post debido a que no mande los datos , usted esta accediendo en forma directa a este fichero";
}
?>
Si no entiendes algo me decis y te ayudo :).
Saludos