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
<select><option>$fila2['cod_cliente']</option></select>
y luego otro while con:
<select><option>$fila2['fecha']</option></select>
<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.
el problema es de alcance (scope) cuando usas
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...
while($salida=mysqli_fetch_array($result2))
{
$fila2[]=$salida;
}
por otro lado usas foreach mal debes usarlo así
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...
perdona por mi torpeza lo estoy probando y no me funciona, haber como quedaria en realidad:
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
$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
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>";
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