Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problemas con función de insertar

Estas en el tema de Problemas con función de insertar en el foro de PHP en Foros del Web. Esta es la función con la que estoy teniendo problemas, tengo una tabla con las siguientes columnas a llenar idContacto que es un autoincrement, Cliente_idCliente ...
  #1 (permalink)  
Antiguo 30/10/2013, 00:40
 
Fecha de Ingreso: octubre-2013
Ubicación: Loreto, Zacatecas
Mensajes: 24
Antigüedad: 10 años, 6 meses
Puntos: 0
Pregunta Problemas con función de insertar

Esta es la función con la que estoy teniendo problemas, tengo una tabla con las siguientes columnas a llenar idContacto que es un autoincrement, Cliente_idCliente que es fk de la tabla Cliente, Nick, Correo y Texto.

Lo que quiero hacer es que al mandar los datos del formulario se haga la consulta donde se pueda obtener el idCliente de la tabla cliente donde el el Nick de esa tabla sea igual al que se esta mandando del formulario, ya llevo tiempo intentando como hacerlo y no me ha dado el resultado que espero, no soy muy espero en php y agradecería bastante que alguien me orientara en como realizar bien esta función por que al imprimir la cadena del insert solo me esta dando 3 valores y no los 4 que espero. Gracias.

Código PHP:
function registrar($nick$correo$texto)
{                                    
$idCliente ="select idCliente from cliente where Nick =".$nick;
$Cliente_idCliente =mysqli_query($this->conn$idCliente);               
                    
$queryRegistrar "insert into contacto (Cliente_idCliente Nick, Correo, Texto)  
            
values ('"
.$Cliente_idCliente."','".$nick."', '".$correo."', '".$texto."')";
            
echo 
$queryRegistrar;

  #2 (permalink)  
Antiguo 30/10/2013, 03:43
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Problemas con función de insertar

mysqli_query

Cita:
Retorna FALSE si hay fallas. Si una consulta del tipo SELECT, SHOW, DESCRIBE o EXPLAIN es exitosa la funcion mysqli_query() retornara El objeto de la clase mysqli_result. Para otras consultas mysqli_query() retornara TRUE si tiene exito.
Te faltan pasos primero lanzas la query y obtienes un objeto el cual debes leer....



Código PHP:
Ver original
  1. function registrar($nick, $correo, $texto)
  2. {                                    
  3. $idCliente ="select idCliente from cliente where Nick =".$nick;
  4. $Cliente_idCliente =mysqli_query($this->conn, $idCliente);              
  5.  
  6. //Si nick es único solo tendras un registro
  7.  
  8. $row = mysqli_fetch_assoc($Cliente_idCliente);
  9.                    
  10. $queryRegistrar = "insert into contacto (Cliente_idCliente, Nick, Correo, Texto) ".        
  11.                                        "values ('".$row["idCliente"]."','".$nick."', '".$correo."', '".$texto."')";
  12.            
  13. echo $queryRegistrar;
  14.  
  15. if(mysqli_query($this->conn, $queryRegistrar)){
  16.    echo "Correcto!!!!";
  17. }eles{
  18.    echo "Ha habido un error!!!!"
  19. }
  20. }

No deberias duplicar información si el nik lo tienes en la tabla cliente no lo guardes otravez en la contactos.... con el id es suficiente. Es peligros por que si un dia se modifica el nick en cliente tendrás que modificar la otra tabla o quedara información incoherente.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 30/10/2013, 08:12
 
Fecha de Ingreso: octubre-2013
Ubicación: Loreto, Zacatecas
Mensajes: 24
Antigüedad: 10 años, 6 meses
Puntos: 0
De acuerdo Respuesta: Problemas con función de insertar

Muchas gracias por tu ayuda y por corregir mi error tanto en la función como en la base de datos, vaya que me has sacado de un apuro. Saludos

Etiquetas: formulario, mysql, select, tabla
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 17:12.