Foros del Web » Programando para Internet » PHP »

Problemas Sql En Php

Estas en el tema de Problemas Sql En Php en el foro de PHP en Foros del Web. Tengo el siguiente problema. Estoy empezando a programar con php y en un formulario, despuès de una consulta dependiendo del resultado, debo realizar otro sql, ...
  #1 (permalink)  
Antiguo 22/03/2008, 10:19
 
Fecha de Ingreso: marzo-2008
Mensajes: 2
Antigüedad: 16 años
Puntos: 0
Problemas Sql En Php

Tengo el siguiente problema. Estoy empezando a programar con php y en un formulario, despuès de una consulta dependiendo del resultado, debo realizar otro sql, la primera vez me muestra el mensaje correcto. Pero despues de pulsar el boton nuevamente seva siempre por el lado falso. Necesito ayuda urgente.... Este es el còdigo.

$opt = $HTTP_POST_VARS ["opt"];
if ($opt == 1) {
$opt = 0;
$codigo = $HTTP_POST_VARS["codigo"];
$estrategia = $HTTP_POST_VARS["estrategia"];
$sql = "SELECT * FROM estrategia WHERE cod_estrategia = $codigo.";
if (mysql_query($sql, $conex)) {
print "<tr><td>CODIGO YA EXISTE</tr></td>";
$SI = 0;
} else {
$SI = 1;
}
if ($si == 1) {
$sql1 = "INSERT INTO estrategia (cod_estrategia, estrategia) values ('".$codigo."' , '".$estrategia."')";
if (mysql_query($sql1, $conex)) {
print "<tr><td>INSCRIPCIÓN REALIZADA</tr></td>";
} else {
print "<tr><td>INSCRIPCIÓN NO REALIZADA</tr></td>";
}
}
}
mysql_close($conex);
  #2 (permalink)  
Antiguo 22/03/2008, 11:40
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 22 años, 7 meses
Puntos: 9
Re: Problemas Sql En Php

Es lógico, se va del lado falso porque como ya se habia insertado ese registro, no te permite repetirlo. Esta bien así no?
  #3 (permalink)  
Antiguo 22/03/2008, 13:40
 
Fecha de Ingreso: marzo-2008
Mensajes: 2
Antigüedad: 16 años
Puntos: 0
Re: Problemas Sql En Php

Lo que pasa es que si hace el insert, pero el mensaje no muestra el mensaje de grabado
  #4 (permalink)  
Antiguo 23/03/2008, 09:43
Avatar de erlingfiallos  
Fecha de Ingreso: febrero-2005
Ubicación: Mexico ahora
Mensajes: 499
Antigüedad: 19 años, 1 mes
Puntos: 9
Re: Problemas Sql En Php

Una forma sencilla seria hacer la consulta y ver si retorna filas o no con mysql_num_rows.. eso traducido a php+mysql seria algo como:

Código PHP:
$opt $HTTP_POST_VARS ["opt"];
if (
$opt == 1) {
    
$opt 0;
    
$codigo $HTTP_POST_VARS["codigo"];
    
$estrategia $HTTP_POST_VARS["estrategia"];
    
// cadena de la consulta
    
$sql "SELECT * FROM estrategia WHERE cod_estrategia = $codigo.";
    
// el resultado almacenado en $result
    
$result mysql_query($sql$conex);
    
// si hay resultados es porque ya existe
    
if (mysql_num_rows($result) > 0)
        print 
"<tr><td>CODIGO YA EXISTE</tr></td>";
    
// de lo contrario insertarlo porq es nuevo
    
else {
        
$sqlinsert "INSERT INTO estrategia (cod_estrategia, estrategia) values ('".$codigo."' , '".$estrategia."')";
        if (
mysql_query($sqlinsert$conex))
            print 
"<tr><td>INSCRIPCIÓN REALIZADA</tr></td>";
        else
            print 
"<tr><td>INSCRIPCIÓN NO REALIZADA</tr></td>";
    }
}
mysql_close($conex); 
y no entendi porq haces $opt = 0;
  #5 (permalink)  
Antiguo 23/03/2008, 10:25
Avatar de Bellenger  
Fecha de Ingreso: noviembre-2004
Ubicación: En un lugar del Mundo...
Mensajes: 599
Antigüedad: 19 años, 4 meses
Puntos: 4
Re: Problemas Sql En Php

Parece que ese {opt}, es una variable de acceso que envia para ver la accion a realizar, ahora te recomendaria que usaras las sintaxis de acceso corto, es decir:
En ves de esto:
Código PHP:
  $HTTP_POST_VARS ["opt"]; 
Esto..
Código PHP:
  $_POST["opt"]; 
Otra sugerencia seria que los nombres de las variables post, si sabes que nunca van a cambiar{digo nunca durante el proceso del programa}, pues solo usa apostrofes y no comillas dobles, asi:
Código PHP:
  $_POST['opt']; 
Puesto que las comillas dobles, siempre son parseadas, los apostrofes no lo son, por lo cual son mas rapidos... Solo sugerencia...
__________________
Un Caballero Jura Lealtad. Usa su espada para suprimir la Injusticia No Conoce el Odio y Tampoco el AMOR...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:59.