Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/07/2012, 15:20
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: validar que no exista documento

Si haces la consulta correcta, a nivel de SQL, el código PHP se te simplificará:
Código SQL:
Ver original
  1. SELECT COUNT(per_documento) docs
  2. FROM personas
  3. WHERE per_documento = valorbuscado
Eso devolvería uno (1) o cero (0) dependiendo si encuentra o no el documento.
Ergo, el código se simplifica:

Código PHP:
Ver original
  1. <?php
  2.     $nombre= $_POST["txtnombre"];
  3.     $apellido= $_POST["txtapellido"];
  4.  
  5.     $doc= $_POST["txtdocumento"];
  6.     $cat= $_POST["sltcategoria"];
  7.     $qry = "SELECT COUNT(per_documento) docs FROM personas WHERE per_documento = $doc";
  8.  
  9.     $consultaD=mysql_query($qry);
  10.     if($consultaD)
  11.         {
  12.         $rowD=mysql_fetch_array($consultaD);
  13.         if($rowD["docs"] > 0)
  14.             {
  15.             echo "Ya existe una persona con ese número de DNI: <b>$doc</b><br>";
  16.             echo "Haga <a href=usuarios.php>click</a> para volver a intentarlo";
  17.             break;
  18.             }
  19.         }
  20.     else
  21.         {
  22.         $qry = "INSERT INTO personas (per_nombre, per_apellido, per_documento, cat_codigo) ");
  23.         $qry .= "VALUES ('$nombre', '$apellido', '$doc', '$cat')"
  24.         mysql_query($qry);
  25.         }
  26.     echo "<br>";
  27. ?>

Tip 1: Usa variables para cargar las sentencias. Resulta mucho más simple modificar una variable, que buscar el bloque completo donde está el error. Además, mantiene más limpio el código PHP. Lo hace más legible.
Tip 2: Trata de armas las consultas de SQL en varios renglones, de modo que resulten más simples de leer.
Tip 3: Escribe los códigos de forma estructurada. Facilita la lectura.
Tip 4: Usa las etiquetas (Highlights) que provee el bloque de escritura para hacer que en el Foro el código se vea mejor.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 07/07/2012 a las 15:27