Ver Mensaje Individual
  #3 (permalink)  
Antiguo 02/11/2012, 23:30
Avatar de Triby
Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 5 meses
Puntos: 2237
Respuesta: [Ayuda]Problema con evaluacion if

No es correcto que en una función tengas conexión, consulta y desconexión de la base de datos, mucho menos cuando no sabes si realizarás dos o más consultas.

Aparte, hay la posibilidad de que la consulta no genere resultados, por lo que finalizaría el script cuando mysql_fetch_array() devuelva falso.

Código PHP:
Ver original
  1. // Primero estableces la conexión y seleccionas la base de datos
  2. $link = mysql_connect($host,$usuario,$clave);
  3. mysql_select_db($db_other,$link);
  4.  
  5. // Tu función quedaría más o menos así:
  6. // Cambié los nombres de variables, suponiendo la intención
  7. function Consulta($campos, $tabla, $filtro, $valor) {
  8.     global $link; // No es recomendable esto..., pero sólo vamos por la lógica
  9.     $sql = "SELECT $campos FROM $tabla WHERE $filtro = '$valor'";
  10.     $query = mysql_query($sql, $link) or die (mysql_error());
  11.     // Devuelves verdadero si ya existe o falso si no
  12.     if(mysql_num_rows($query) > 0) {
  13.           return true;
  14.     } else {
  15.           return false;
  16.     }
  17. }
  18.  
  19. // Ahora, la función devuelve solo verdadero o falso
  20. // Por cierto, no necesitas leer todo el registro (*), sólo un campo
  21. if(Consulta('cuenta', 'cuentas', 'cuenta', $rcuenta)) {
  22.      echo "La cuenta ya existe !";
  23. } else if(Consulta('apodo', 'cuentas', 'apodo', $rapodo)) {
  24.      echo "El apodo ya existe !";
  25. } else {
  26.      // Es una cuenta nueva
  27. }
  28.  
  29. // No es necesario cerrar la conexión a base de datos
  30. // Pero, si lo deseas, hazlo al final de tu script
__________________
- León, Guanajuato
- GV-Foto