last day (16 days later) » 

17:03
2
A: Problema con el ciclo while en PHP y SQL Server

DjCrazyOk, después de notar mi garrafal error de usar un motor de BD diferente, trato de corregir... Para hacer una consulta a sql server, te falta: Agregar el segundo parámetro en la consulta SQLSRV_FETCH_ASSOC. Aquí la documentación Nombrar las variables de forma diferente en cada uno de los ciclos...

Muchas gracias por la ayuda DjCrazy pero con el foreach no me funcionó,me tiro errores por todos los lados en que probé el código, que mas puedo hacer??, sigo diciendo que el while funciona para esto pero lo que no se es como hacer que los dos ciclos funcionen de manera correcta....
Acabo de editar la respuesta con un ejemplo completo y una captura del resultado. Te dejo las dos opciones foreach y while para que escojas la que mejor se acomode a tus gustos.
Uy! compa, no había notado que es en sqlserver y mi respuesta está orientada a mysql. Te dejo el link de la documentación de php para sqlserver. La verdad cambia muy poco respecto a mi respuesta. Intenta hacerlo y si no te funciona, comenta y elimino mi respuesta. Mil disculpas por no leer el encabezado de la pregunta y ten en cuenta para futuras preguntas, agregar una etiqueta del motor de BD que usas.
Bien, espero redimirme con esta última edición. Adáptalo a tu código y si aún así no te funciona, comenta por favor.
Ya he visto la documentación de sql server días atrás y nada.... sigue igual...se supone que con la lógica que se esta usando debería funcionar, lo que me di cuenta es que ese mismo error ha pasado usando mysql y tienen una función de nombre mysql_data_seek, esta función hace que el puntero interno al siguiente resultado, cabe aclarar que ya esa función está obsoleta, pero me doy cuenta que los que necesito es hacer que el puntero interno apunte al siguiente resultado,al saben de alguna función en sql server que funcione o como resolver este problema con los while??? gracias DjCrazy!!
Por cierto, la imagen que puso como resultado del código usan mysql es el mismo que deseo sacar con sql server!!
Cambiaste el nombre de las variables también en MuestraFamilia.php y en ProductoXFamiliaSelect.php?.
ya las cambie!
17:07
Adjunta por favor una imagen de tu bloque de código o tu código
como texto
<div class="container">
<h1 class="TDTQVS">Productos</h1>
<br>
<?php
include("../Scripts/MuestraFamilia.php");
$i = 0;
while($Familia = sqlsrv_fetch_array($stmt,SQLSRV_FETCH_ASSOC)){
$Id_Familia = $Familia["Id_Familia"];
$Nombre_Familia = $Familia["Nombre_Familia"];
$i++;
?>
<h2 class="TDTQVS"><?php echo $Nombre_Familia;?></h2>
<table class="table TabRegistro">
<th>Nombre del producto</th>
<th>Descripción del producto</th>
<th>Imagen del producto</th>
<th>Familia</th>
<th>Oferta</th>
<th>Precio</th>
comenta o elimina la variable incremental $i = 0; $i++;
en ambos ciclos
listo,pero sigue igual.....
ahora, muéstrame el código de MuestraFamilia.php
es este:
<?php
// Se agrega la conexion a la base de datos
include ('ConexionBD.php');
//Se inicializa una variable en null para que pueda entar al procedimiento almacenado
$Nombre_Familia = null;
//Variable que trae el procedimiento almacenado de la base de datos
$sql = "EXEC PA_Familia_Select '$Nombre_Familia'";
//Ejecuta la consulta
$stmt = sqlsrv_query($Conn,$sql);
//La otra parte del código para mostrar las familias se coloca en la vista Principal.php
?>
17:22
Es necesario descartar en que parte estamos fallando, prueba cambiando tu consulta por esto y cambia el nombre de la tabla:
$sql = "SELECT * FROM nombre_tabla_familia";
$stmt = sqlsrv_query( $Conn, $sql );
igual con los productos
recuerda que al segundo query debes pasarle en la cláusula while el nombre de la familia
perdón en la cláusula where
Así por ejemplo:
$sql2 = "SELECT * FROM productos WHERE nombre_familia = 'Madera' ";
Me retiro por un rato, debo resolver algo... pero puedes dejar el avance y continuamos mas tarde
18:08
El resultado es el mismo.....Por aquello estoy usando procedimientos almacenados!
18:40
compa, yo descartaría realizando la conexión, la consulta y la presentación de resultados en el mismo archivo y luego escalaría de a poco...
La verdad es que a mi me funciona y por lo que mencionas es un error al ejecutar el segundo query... Esto no debería ser un problema si sigues la estructura de los ejemplos que te dejé en la respuesta...
sigue probando y me cuentas

  last day (16 days later) »