Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP OO No funciona mi while

Estas en el tema de No funciona mi while en el foro de PHP en Foros del Web. Saludos cordiales, resumo, tenia mucho tiempo que no programaba, ahora php va por la version 7 y mysql en la version 5 y los metodos ...
  #1 (permalink)  
Antiguo 06/12/2016, 07:18
(Desactivado)
 
Fecha de Ingreso: septiembre-2008
Ubicación: Maracay edo Aragua Venezuela
Mensajes: 48
Antigüedad: 15 años, 7 meses
Puntos: 3
Pregunta No funciona mi while

Saludos cordiales, resumo, tenia mucho tiempo que no programaba, ahora php va por la version 7 y mysql en la version 5 y los metodos han variado mucho y he tratado de adaptarme y se me ha trancado el serrucho como decimos en venezuela con el siguiente codigo que posiblemente para muchos sera algo super sencillo pero a mi se me ha complicado.

Basicamente mi scrip realiza una busqueda en una base de datos mysql y muestra al visitante el resultado, la forma en la que he adaptado mi scrip funciona pero no se porque el while no esta presentando todo los resultados encontrados en la base de datos.

el script busca por numero de rif es una especie de id que posee cada cliente, tal cual como esta muestra solo 1 resultado por cada id buscada es decir y si hay 4 numero de rif iguales deberia de mostrarlos y no lo esta haciendo, espero puedan ayudarme a encontrar donde esta mi error.

de hecho la variable $registros muestra la cantidad real de registros encontrados pero la variable $texto solo muestra 1 resultado.

Gracias de Antemano a quienes se tomen la tarea de leer e intentar colaborarme

Código PHP:
<?php
//Variable que contendrá el resultado de la búsqueda
$texto '';
//Variable que contendrá el número de resgistros encontrados
$registros '';
if(
$_POST){
  
$busqueda trim($_POST['buscar']);
  if (empty(
$busqueda)){
      
$texto '<p>Busqueda sin resultados</p>';
  }
//AUTOR J.E SUMINISTROS Y MAS, C.A.
//ANALISIS DE CODIGO A BUSCAR
else if (strlen($busqueda)<7)

  
$texto "<p>ESTIMADO USUARIO, EL VALOR A BUSCAR DEBE CONTENER 7 O MAS DE 7 DIGITOS</p>";
}
else{
//MySQLi
require_once './admin/config/sql.php';
$mysqli = new mysqli($hostname$username,$password$database);
 
mysqli_set_charset$mysqli'utf8');
if (
$mysqli -> connect_errno) {
die( 
"Fallo la conexión a MySQL: (" $mysqli -> mysqli_connect_errno() 
") " $mysqli -> mysqli_connect_error());
}
else{
 echo 
"Conexión exitosa!";
//$mysqli -> mysqli_close();
}
//MySQLi
$query "SELECT * FROM ingreso WHERE rif LIKE '%" .$busqueda"%' ORDER BY nombre";
$resultado=$mysqli->query($query);
// CREACION DE LISTA DE RESULTADOS
         
while ($rows $resultado->fetch_assoc()) {
$texto =
'<tr><td>'.
$rows['rif'] .
'</td><td>'.
$rows['nombre'].
'</td><td>'.
$rows['sistema_enc'].
'</td><td>'.
$rows['nro_cupon'].
'</td><td>'.
$rows['fecha_envio'].
'</td></tr>';
  }
$registros '<p>HEMOS ENCONTRADO: ' mysqli_num_rows($resultado) . ' REGISTROS </p>';
} }
?>
<!DOCTYPE html>
<html lang="es-ES">
<head> 
<meta charset='utf-8'>
</head> 
<body>
<h1>Busqueda de Status de Envio</h1> 
<form id="buscador" name="buscador" method="post" action="<?php echo $_SERVER['PHP_SELF'?>"> 
    <input id="buscar" name="buscar" type="search" placeholder="Buscar aquí..." autofocus >
    <input type="submit" name="buscador" class="boton peque aceptar" value="buscar">
</form>
<table>
<?php 
// Resultado, número de registros y contenido.
echo strtoupper($registros);
echo 
strtoupper($texto);
?>
</table>
</body>
</html>
  #2 (permalink)  
Antiguo 06/12/2016, 14:53
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: No funciona mi while

La cosa está aquí

Código PHP:
Ver original
  1. $texto =
  2. '<tr><td>'.
  3. $rows['rif'] .
  4. '</td><td>'.
  5. $rows['nombre'].
  6. '</td><td>'.
  7. $rows['sistema_enc'].
  8. '</td><td>'.
  9. $rows['nro_cupon'].
  10. '</td><td>'.
  11. $rows['fecha_envio'].
  12. '</td></tr>';

En cada ciclo de dices a $texto que tenga ese valor y nada más. Debes concatenar... todo por un maldito punto

Código PHP:
Ver original
  1. $texto .=
  2. '<tr><td>'.
  3. $rows['rif'] .
  4. '</td><td>'.
  5. $rows['nombre'].
  6. '</td><td>'.
  7. $rows['sistema_enc'].
  8. '</td><td>'.
  9. $rows['nro_cupon'].
  10. '</td><td>'.
  11. $rows['fecha_envio'].
  12. '</td></tr>';

Ahí debería ir bien

P.S: Recomendación, formatea tu código

Última edición por alvaro_trewhela; 06/12/2016 a las 15:19
  #3 (permalink)  
Antiguo 06/12/2016, 18:49
(Desactivado)
 
Fecha de Ingreso: septiembre-2008
Ubicación: Maracay edo Aragua Venezuela
Mensajes: 48
Antigüedad: 15 años, 7 meses
Puntos: 3
Respuesta: No funciona mi while

Muchas Gracias, en efecto alli estaba el error. Y estare trabajando en ordenar el codigo como me lo sugiere, eso lo monte en una noche pero el php de hace unos años atras es bastante diferente, pero no le temo a las nuevas forma de hacer las cosas.
Nuevamente Gracias.

Etiquetas: mysqli
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 01:12.