Foros del Web » Programando para Internet » PHP »

comprobar si no existe inserte

Estas en el tema de comprobar si no existe inserte en el foro de PHP en Foros del Web. Lectores del foro tengo el siguiente problema al hacer la comprobacion de que si un dato no existe inserte en este caso $var1 expongo el ...
  #1 (permalink)  
Antiguo 21/09/2011, 09:01
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
comprobar si no existe inserte

Lectores del foro tengo el siguiente problema al hacer la comprobacion de que si un dato no existe inserte en este caso $var1 expongo el codigo haber si me pueden ayudar ,

Código PHP:
Ver original
  1. if(isset($_GET['var1'])&&(isset($_GET['var2']))){
  2.         $var1=mysql_real_escape_string($_GET['var1']); 
  3.         $var2=mysql_real_escape_string($_GET['var2']);
  4.        
  5. $sql = mysql_query("SELECT id_encuesta FROM bouchers WHERE id_encuesta = ".$_GET['var1']."")or die (mysql_error());
  6.  
  7. # Si el dato no existe inserta
  8. if (!mysql_num_rows($sql)){
  9.                
  10.         $sql="INSERT INTO bouchers (id_encuesta,survey_id,identificador_usuario,fecha_hora,ip) VALUES ('$var1','$var2','".$_SERVER['PHP_AUTH_USER']."',NOW(),'".$_SERVER['REMOTE_ADDR']."')";
  11.         $resultado=mysql_query($sql,$link);
  12.        
  13.         $var3= "Encuesta subida correctamente";
  14.        
  15.         }
  16.         }
  17.         else $var3= "Falla en encuesta";

saludos y gracias
  #2 (permalink)  
Antiguo 21/09/2011, 09:12
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: comprobar si no existe inserte

Saludos

mysql_num_rows, te indica el numero de filas, por lo tanto podrias manejarlo de la siguiente manera:

Código PHP:
Ver original
  1. if (mysql_num_rows($sql)==0)
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #3 (permalink)  
Antiguo 21/09/2011, 09:20
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
Respuesta: comprobar si no existe inserte

Nano_ ,

gracias por comentar realice el cambio que me indicas pero aun asi no funciona , nose donde esta fallando mi script .

Saludos
  #4 (permalink)  
Antiguo 21/09/2011, 09:30
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: comprobar si no existe inserte

Saludos

Te indica algún error?
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #5 (permalink)  
Antiguo 21/09/2011, 09:33
 
Fecha de Ingreso: septiembre-2011
Ubicación: DF
Mensajes: 26
Antigüedad: 12 años, 7 meses
Puntos: 6
Respuesta: comprobar si no existe inserte

Te falta el enlace de conexión en el query en donde haces el primer select


Código PHP:
if(isset($_GET['var1'])&&(isset($_GET['var2']))){
* * * * 
$var1=mysql_real_escape_string($_GET['var1']);* 
* * * * 
$var2=mysql_real_escape_string($_GET['var2']);
* * * * 

$sql mysql_query("SELECT id_encuesta FROM bouchers WHERE id_encuesta = ".$_GET['var1'].""$link)or die (mysql_error());
*
# Si el dato no existe inserta 
if (mysql_num_rows($sql)==0){
* * * * * * * * 
* * * * 
$sql="INSERT INTO bouchers (id_encuesta,survey_id,identificador_usuario,fecha_hora,ip) VALUES ('$var1','$var2','".$_SERVER['PHP_AUTH_USER']."',NOW(),'".$_SERVER['REMOTE_ADDR']."')";
* * * * 
$resultado=mysql_query($sql,$link);
* * * * 
* * * * 
$var3"Encuesta subida correctamente";
* * * * 
* * * * }
* * * * }
* * * * else 
$var3"Falla en encuesta"
  #6 (permalink)  
Antiguo 21/09/2011, 09:38
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
Respuesta: comprobar si no existe inserte

Nano _

no me indica ningun error y no inserta nada , si saco la consulta y actulizo la pagina me duplica el registro .

Saludos y gracias
  #7 (permalink)  
Antiguo 21/09/2011, 11:15
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
Respuesta: comprobar si no existe inserte

intente hacer algo como esto , pero me duplica el registro

Código PHP:
Ver original
  1. if(isset($_GET['var1'])&&(isset($_GET['var2']))){
  2.         $var1=mysql_real_escape_string($_GET['var1']); 
  3.         $var2=mysql_real_escape_string($_GET['var2']);
  4.        
  5. $sql = mysql_query("SELECT id_encuesta FROM bouchers WHERE id_encuesta = ".$_GET['var1']."")or die (mysql_error());
  6. $total_encontrados = mysql_num_rows ($sql);  
  7. if ($total_encontrados != 0) {  
  8.                
  9.         $sql="INSERT INTO bouchers (id_encuesta,survey_id,identificador_usuario,fecha_hora,ip) VALUES ('$var1','$var2','".$_SERVER['PHP_AUTH_USER']."',NOW(),'".$_SERVER['REMOTE_ADDR']."')";
  10.         $resultado=mysql_query($sql,$link);
  11.        
  12.         $var3= "Encuesta subida correctamente";
  13.        
  14.         }
  15.         }
  16.         else {$var3= "Falla en encuesta";}

saludos
  #8 (permalink)  
Antiguo 21/09/2011, 11:49
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
Respuesta: comprobar si no existe inserte

ya encontre cual era mi problema era el select que no sabia identificar ambos parametros lo solucione de la siguiente forma

Código PHP:
Ver original
  1. $sql = "SELECT bouchers.survey_id, bouchers.id_encuesta FROM bouchers WHERE bouchers.survey_id =  ".$_GET['var2']." AND bouchers.id_encuesta =  ".$_GET['var1']."";
  2. $ejecutar = mysql_query($sql,$link)or die(mysql_error());
  3. $total = mysql_num_rows($ejecutar);
  4.  
  5. # Si el dato no existe inserta
  6. if($total == 0){

saludos y gracias por comentar

Etiquetas: mysql, sql, usuarios
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 02:24.