Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: tecasoft en 7 Octubre 2015, 04:25 AM

Título: [Resuelto] consulta sql para while en php
Publicado por: tecasoft en 7 Octubre 2015, 04:25 AM
buenas amigos otra vez estamos por aqui, tengo el siguiente problema, tengo una serie de bases de datos y y un codigo en php, me gustaria que atraves de 1 sola consulta SQL pudiera recojer 2 while, es decir, necesito listar el cod_cliente en un
Código (html4strict) [Seleccionar]

<select><option>$fila2['cod_cliente']</option></select>


y luego otro while con:
Código (html4strict) [Seleccionar]

<select><option>$fila2['fecha']</option></select>


Código (php) [Seleccionar]

<form>

Cod_cliente:

 
<?php

echo "<select name='cod_cliente'>";

$result2=mysqli_query($conexion,"select cod_cliente,fecha,contacto,tipo,poblacion,provincia,pais,revisado,nombre_empresa,web,clientes_telefonos,nombre,apellidos from clientes,clientes_telefonos,clientes_tratamiento");

mysqli_set_charset($result2,"utf8");

while(
$fila2=mysqli_fetch_array($result2))
{
echo "<option>".$fila2['cod_cliente']."<option>";
$fila2['fecha'];
}

echo 
"</select>";
echo 
"<select name='fecha'>";

foreach((
$fila2['fecha']) as $value)
{
echo "<option>".$value."<option>";
}

echo 
"</select>";
?>


</form>



por lo que llevo me funciona el primer while pero el segundo se me atasca y no rula, podria hacerlo con una sql solo?, ya que si utilizo mas sql me consumira muchos recursos, que opinais al respecto?

Mod: Temas sobre PHP van al subforo de PHP.
Título: Re: consulta sql para while en php
Publicado por: engel lex en 7 Octubre 2015, 07:36 AM
el problema es de alcance (scope) cuando usas

Código (php) [Seleccionar]
while($fila2=mysqli_fetch_array($result2))
{
echo "<option>".$fila2['cod_cliente']."<option>";
$fila2['fecha'];
}


$fila2 solo varía dentro de esos corchetes

en tal caso sería volcar todo a $fila2 y usar esa variable... es decir...

Código (php) [Seleccionar]
while($salida=mysqli_fetch_array($result2))
{
$fila2[]=$salida;
}



por otro lado usas foreach mal debes usarlo así

Código (php) [Seleccionar]
foreach($fila2 as $value)
{
echo "<option>".$value["fecha"]."<option>";
}


ya que si haces como lo tenías, el intentará iterar dentro de el array que contenga $fila2 en el valor "fecha", cosa que no existe para este caso...
Título: Re: consulta sql para while en php
Publicado por: tecasoft en 7 Octubre 2015, 19:12 PM
perdona por mi torpeza lo estoy probando y no me funciona, haber como quedaria en realidad:

Código (php) [Seleccionar]

while($fila2=mysqli_fetch_array($result2))
{
/*echo "<option>".$fila2['cod_cliente']."<option>";*/
$fila2[]=$fila2;
echo "<option>".$fila2['cod_cliente']."<option>";
}

echo "</select>";
echo "<select name='fecha'>";

while($fila3=mysqli_fetch_array($result2))
{

$fila3[]=$fila3;
echo "<option>".$fila3['fecha']."<option>";
}

echo "</select>";


asi no funciona
Título: Re: consulta sql para while en php
Publicado por: engel lex en 7 Octubre 2015, 19:28 PM
$fila3[]=$fila3;

se crea un agujero negro y destruye el mundo XD

si haces en un while
mysqli_fetch_array($result2)

cuando lo vuelvas a hacer dará false, porque ya se recorrió completo...

debes hacer algo como

Código (php) [Seleccionar]
while($fila2[]=mysqli_fetch_array($result2)){}// esto vacío porque lo importante pasa allá atrás


foreach($fila2 as $value){
echo "<option>".$value['cod_cliente']."<option>";
}

echo "</select>";
echo "<select name='fecha'>";

foreach($fila2 as $value){
echo "<option>".$value['fecha']."<option>";
}

echo "</select>";
Título: Re: consulta sql para while en php
Publicado por: tecasoft en 7 Octubre 2015, 19:40 PM
Gracias tio ya me funciona, gracias al codigo que has dejado tu se podria dar como resuelto, como se pone para que el comentario este resuelto(hablo el del foro), porque a mucha gente le servira este ejemplo XD