Foros del Web » Programando para Internet » PHP »

mi basica funcion no funciona

Estas en el tema de mi basica funcion no funciona en el foro de PHP en Foros del Web. Hola, estoy tratando de familiarizarme un poco con mysqli, dado que he visto por ahí que no es recomendable seguir utilizando mysql, y no es ...
  #1 (permalink)  
Antiguo 05/08/2015, 10:39
 
Fecha de Ingreso: noviembre-2012
Mensajes: 97
Antigüedad: 11 años, 4 meses
Puntos: 1
mi basica funcion no funciona

Hola, estoy tratando de familiarizarme un poco con mysqli, dado que he visto por ahí que no es recomendable seguir utilizando mysql, y no es que me resulte dificil, pero es distinto...

El caso es que he hecho una pequeña función muy muy simple, y no tira. Me paso a explicar:

He aqui un pequeño formulario que pide un id, para mostrar el nombre de un usuario con ese id en concreto que tengo en una bd.
Código HTML:
Ver original
  1. <form name="user" action="index.php" method="post">
  2.         <input type="text" value="" name="id" placeholder="introduzca id">
  3.         <input type="submit" name="boton"  value="Enviar"><br> 
  4.         <label>El usuario con id:<?php echo $id;?> es:<?php echo $u;?></label>
  5.         <?php
  6.             $u = get_user($id);
  7.             var_dump($u);
  8.         ?>
  9.     </form>

y he aquí la función que debe hacer la consulta a la bd:
Código PHP:
Ver original
  1. function get_user($id){
  2.         extract($_POST);
  3.         require("conect.php");
  4.  
  5.         $user=$conexion->$query("select nombre from usuario where id='$id'");
  6.  
  7.         return $user;
  8.     }

Veis como trato de volcar el resultado en la variable $u, pero esta no hace nada, de hecho var_dump no me muestra nada de nada...

Gracias!
  #2 (permalink)  
Antiguo 05/08/2015, 10:55
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: mi basica funcion no funciona

yo lo haria de esta manera:
Código PHP:
Ver original
  1. <?php include('../Connections/conexion.php'); ?>
  2.  
  3. <?php
  4. if(empty($_GET['usuario']))
  5. {
  6. }else{
  7.     $busca = $_GET['usuario'];
  8.    
  9.     $user = $db->query("SELECT nombre_completo FROM usuarios WHERE usuario = '$busca'");
  10.     $row = $user->fetch_assoc();
  11.     $total_filas = mysqli_num_rows($user);
  12.     if($total_filas >=1)
  13.     {
  14.         $u = $row['nombre_completo'];
  15.    
  16. } else{
  17.     $u = "No existe el registro";
  18.     }
  19. }
  20. ?>
  21.  
  22. <form name="user" action="test9.php" method="get">
  23.         <input type="text" value="" name="usuario" placeholder="introduzca id">
  24.         <input type="submit" name="boton"  value="Enviar"><br>  
  25.         <?php if($total_filas>=1){ echo "<label>El usuario con el id: ".$busca." es: ".$u."</label>";} else {}?>
  26.     </form>
__________________
[email protected]
HITCEL
  #3 (permalink)  
Antiguo 05/08/2015, 11:17
 
Fecha de Ingreso: noviembre-2012
Mensajes: 97
Antigüedad: 11 años, 4 meses
Puntos: 1
Respuesta: mi basica funcion no funciona

ya , pero tengo un archivo index.php donde esta el formulario y otro que es function.php donde esta mi función... queria pasarlo por post, así la url está limpia y no envia datos y devolver el resultado en un return... que está mal en mi función?
  #4 (permalink)  
Antiguo 05/08/2015, 11:44
 
Fecha de Ingreso: noviembre-2012
Mensajes: 97
Antigüedad: 11 años, 4 meses
Puntos: 1
Respuesta: mi basica funcion no funciona

Solucionado, así queda la cosa:

function.php:
Código PHP:
Ver original
  1. function get_user($id){
  2.        
  3.         require("conect.php");
  4.        
  5.         $user = $conexion->query("select nombre from usuario where id='$id'");
  6.  
  7.         return $user;
  8.     }

index.php:
Código HTML:
Ver original
  1. <form name="user" action="index.php" method="post">
  2.         <input type="text" value="" name="id" placeholder="introduzca id">
  3.         <input type="submit" name="boton"  value="Enviar"><br> 
  4.        
  5.         <?php
  6.             $u = get_user($_POST['id']);
  7.             $cont=$u->num_rows;
  8.  
  9.             if($cont>=1){
  10.                 foreach ($u as $cont => $value) {              
  11.                         ?>
  12.                         <input type="text" name="resul" value="El usuario con id<?php echo $id;?> es: <?php echo $value['nombre'];?>" disabled>
  13.                         <?php  
  14.                    
  15.                 }
  16.  
  17.             }
  18.             elseif ($cont==0) {
  19.                 ?>
  20.                     <input type="text" name="resul" value="El usuario con id<?php echo $id;?> no existe" disabled>
  21.                 <?php
  22.             }
  23.            
  24.            
  25.         ?>
  26.     </form>

Si no meto el resultado devuelto con el return y lo convierto en una matriz associativa, no es capaz de evaluarla.

Ahora, si el id no existe, me deja un mensaje de que no existe diho id, el problema es que al iniciar el programa, como no he metido ningún id me muestra el mensaje igualmente. Lo que quiero hacer es que la primera vez no muestre ningun mensaje de que no existe, me explico?
  #5 (permalink)  
Antiguo 05/08/2015, 11:51
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: mi basica funcion no funciona

prueba asi a ver:
Código PHP:
Ver original
  1. <?php
  2.             if(empty($_POST['id'])){}
  3.             else{
  4.             $u = get_user($_POST['id']);
  5.             $cont=$u->num_rows;
  6.  
  7.             if($cont>=1){
  8.                 foreach ($u as $cont => $value) {              
  9.                         ?>
  10.                         <input type="text" name="resul" value="El usuario con id<?php echo $id;?> es: <?php echo $value['nombre'];?>" disabled>
  11.                         <?php  
  12.                    
  13.                 }
  14.  
  15.             }
  16.             elseif ($cont==0) {
  17.                 ?>
  18.                     <input type="text" name="resul" value="El usuario con id<?php echo $id;?> no existe" disabled>
  19.                 <?php
  20.             }
  21. }
  22.            
  23.         ?>
__________________
[email protected]
HITCEL

Etiquetas: formulario, funcion, mysql, select, 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 11:35.