Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] mysqli_fecht_array no recibe parametro

Estas en el tema de mysqli_fecht_array no recibe parametro en el foro de PHP en Foros del Web. hola a todos y gracias por su apoyo de forma anticipada tengo una funcion que lo que hace es ver que el registro que se ...
  #1 (permalink)  
Antiguo 09/12/2015, 12:41
Avatar de herzbazi  
Fecha de Ingreso: febrero-2012
Mensajes: 612
Antigüedad: 12 años, 9 meses
Puntos: 36
mysqli_fecht_array no recibe parametro

hola a todos y gracias por su apoyo de forma anticipada

tengo una funcion que lo que hace es ver que el registro que se esta metiendo no exista ya en db.

la funcion la tengo asi

Código PHP:
Ver original
  1. $sql = "SELECT * FROM ".$this->table." WHERE ";
  2.       foreach($this->data_form as $key=>$value){
  3.           if (is_array($value)){
  4.               $key;
  5.           }else{
  6.              $sql.= " AND ";
  7.              $sql .= $key." = '".$value."'" ;
  8.           }
  9.        }

si la mando a imprimir con un echo me da esto

echo $sql = SELECT * FROM usuarios WHERE AND nombre = 'gd' AND apellido = 'dd' AND telefono = 'dd' AND correo = '[email protected]' AND contrasena = '123' AND tipo_usuario = '1'

luego de esto la ejecuto

Código PHP:
Ver original
  1. $registros=mysqli_query(Conectar::con(),$sql);

luego quiero pasarla por un mysqli_num_rows pero noo me dice que espera un parametro el cual imagino $registros no tiene nada y por eso me dice eso ,

mande a hacerle un echo y un print_r() a $registros y no imprime nada , alguien me puede ayudar gracias, es que ya tengo tiempo de revisar y revisar y no lo logro
__________________
Enseña todo lo que sepas...
Aprende todo lo que puedas..
  #2 (permalink)  
Antiguo 09/12/2015, 13:45
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: mysqli_fecht_array no recibe parametro

Sería 1000 veces mejor si compartes el código y mensaje de error completo, tu interpretación está lejos de ser útil.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 09/12/2015, 16:30
Avatar de herzbazi  
Fecha de Ingreso: febrero-2012
Mensajes: 612
Antigüedad: 12 años, 9 meses
Puntos: 36
Respuesta: mysqli_fecht_array no recibe parametro

muchas gracias por tu respuesta ahi mando el codigo completo

Código PHP:
Ver original
  1. class Insertando{
  2.  
  3.     private $table;
  4.     private $data_from;
  5.     private $url;
  6.  
  7.     public function __construct(){
  8.       $this->table = mysqli_real_escape_string(Conectar::con(),$_POST['table']); // recibe el nombre de la tabla
  9.       $this->data_form =$_POST['data']; // recibe los datos del formulario como un array
  10.       $this->url =$_POST['url']; // recibe la url a redireccionar
  11.  
  12.     }
  13.  
  14.     public function insert(){
  15.  
  16.       $verifica = "SELECT * FROM ".$this->table." WHERE ";
  17.       foreach($this->data_form as $key=>$value){
  18.             if (is_array($value)){
  19.               $key;
  20.             }else{
  21.              $verifica.=$key." = '".$value."' " ;
  22.              $verifica.=" && ";
  23.           }
  24.        }
  25.  
  26.         $verifica= substr($verifica, 0, -3);
  27.         $result = mysqli_query(Conectar::con(),$verifica);
  28.  
  29.         if(mysqli_num_rows($result) == 0){   // aqui es donde tengo el problema (abajo explico )
  30.  
  31.         $sql="INSERT INTO ".$this->table."(";
  32.  
  33.         foreach(array_keys($this->data_form) as $key){
  34.           $sql .= $key." , ";
  35.         }
  36.  
  37.         $sql= substr($sql, 0, -2);
  38.         $sql .= ") VALUES (";
  39.  
  40.         foreach($this->data_form as $key){
  41.           $sql .= " ' ".$key."' , ";
  42.         }
  43.  
  44.         $sql= substr($sql, 0, -2);
  45.         $sql .= ")";
  46.  
  47.         mysqli_query(Conectar::con(),$sql);
  48.         header('Location: principal.php?page='.$this->url."&m=1");
  49.  
  50.         }elseif(mysqli_num_rows($result) == 1){
  51.         header('Location: principal.php?page='.$this->url."&m=2");
  52.         }
  53.     }
  54.  
  55.  
  56.   }

el num_rows siempre queda con valor cero y por ese motivo siempre inserta y no me detecta que ese registro ya existe y que no deberia de insertar si no lanzar mensaje diciendo que ese registro ya existe. pero siempre pasa de largo y no entindo por que por que cuando como dije antes imprimo $verifica me da = SELECT * FROM usuarios WHERE nombre = 'gd' &&apellido = 'dd' && telefono = 'dd' && correo = '[email protected]' && contrasena = '123' && tipo_usuario = '1' y al pasarlo por mysqli_query deberia de tomar ya un valor.

gracias por la ayuda
__________________
Enseña todo lo que sepas...
Aprende todo lo que puedas..
  #4 (permalink)  
Antiguo 10/12/2015, 07:16
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 9 meses
Puntos: 69
Respuesta: mysqli_fecht_array no recibe parametro

Copia esto

SELECT * FROM usuarios WHERE nombre = 'gd' AND apellido = 'dd' AND telefono = 'dd' AND correo = '[email protected]' AND contrasena = '123' AND tipo_usuario = '1'

Y pégalo en myphpadmin para ver que error te muestra porque yo creo que el problema está en la sintaxis sql que no está devolviendo un objeto result y por eso no puedes usar num rows.
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #5 (permalink)  
Antiguo 10/12/2015, 09:39
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: mysqli_fecht_array no recibe parametro

Código SQL:
Ver original
  1. SELECT *
  2. FROM usuarios
  3. WHERE nombre = 'gd'
  4.     AND apellido = 'dd'
  5.     AND telefono = 'dd'
  6.     AND correo = '[email protected]'
  7.     AND contrasena = '123'
  8.     AND tipo_usuario = '1'
Eso no tiene errores sintácticos, pero ten en cuenta que todas las condiciones que están en el WHERE son mandatorias (obigatorias), así que si la consulta en phpMyadmin no devuelve datos, es porque no hay registros que cumplan esas condiciones, todas al mismo tiempo.
Sería un problema de datos, no de SQL.

En ese caso lo que te conviene es verificar ocn las condiciones fundamentales solamente:
Código SQL:
Ver original
  1. SELECT *
  2. FROM usuarios
  3. WHERE nombre = 'gd'
  4.     AND apellido = 'dd'
  5.     AND contrasena = '123'
para ver cual es la que se cumple y cual no.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 10/12/2015, 09:48
Avatar de herzbazi  
Fecha de Ingreso: febrero-2012
Mensajes: 612
Antigüedad: 12 años, 9 meses
Puntos: 36
Respuesta: mysqli_fecht_array no recibe parametro

muchas gracias hice lo que me dijieron la pase por mysql y me devolvia siempre cero , y era por que no se cumplian todos los datos , asi que tome 3 datos y funciono ,,

muchas gracias a todos
__________________
Enseña todo lo que sepas...
Aprende todo lo que puedas..

Etiquetas: data, variable
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 14:14.