PHP - ciclo necesito ayuda

 
Vista:
sin imagen de perfil

ciclo necesito ayuda

Publicado por undertaker (8 intervenciones) el 08/09/2014 09:06:17
Necesito ayuda en un bucle
Resulta que tengo los siguientes datos
en un string : Producto||Nombre||Descripcion

Quiero que al imprimir me muestre asi

1: Producto,
2: Nombre,
3: Descripcion.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
$sql = "select numero,cadena,cantidades from registros;

$result= pg_query($sql);

while ($row= pg_fetch_array($result)) {
            $des = $row['cadena'];
            $a = str_replace("||", ",", $des);
            $variable = $a;
            $arr = explode(",", $variable);
            $cantidad = 3;

            $var = "";
            for ($i = 0; $i < $cantidad; $i++) {
                switch ($i) {
                    case 0:
                        if ($arr [0] == "") {
                            $arr [0] = "Sin descripción";
                        } else {
                            $var = "1: " . $arr [0] . ", ";
                        }
                        break;
                    case 1:
                        if ($arr [1] == "") {
                            $arr [1] = "Sin descripción";
                        } else {
                            $var = "2: " . $arr [1] . ", ";
                        }
                        break;
                    case 2:
                        if ($arr [2] == "") {
                            $arr [2] = "Sin descripción";
                        } else {
                            $var = "3: " . $arr [2] . ", ";
                        }
                        break;
            }
            }

Lo que pretendo es hacer una tabla que comparta la desccripcion Producto||Nombre||Descripcion con formato asi :
1 : Producto, 2: Nombre, 3: Descripcion

y la tabla a mostrar tenga (numero,cadena,cantidades)

puedo mostrar la descripcion sin problemas
pero no se donde meter el otro while

1
2
3
while ($row1 = pg_fetch_array($result)) {
           echo $row1 ['numero'] ." , ". $var ." ".$row1 ['cantidades']. ".";
            }
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

ciclo necesito ayuda

Publicado por xve (6935 intervenciones) el 08/09/2014 12:37:37
Hola Undertaker, no entiendo muy bien que es lo que quieres hacer, lo que si que veo, es que si no concatenas la variable $var, siempre tendra el ultimo valor.

En vez de hacer
1
$var="...";
prueba a utilizar
1
$var.="...";
con el punto delante, ya que así te juntara la cadena.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 729
Bronce
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

ciclo necesito ayuda

Publicado por Gonzalo (615 intervenciones) el 08/09/2014 17:04:29
segun entiendo los 3 datos estan en la misma cadena, se quieren separar en variables independientes y mostrarlas con la numeracion, yo haria esto

1
2
3
4
5
6
7
8
9
10
11
12
13
14
while($row=fetch)
{
$Tmp=split("||",$row['cadena']); //esto separa la cadena en un array de 3 indices.
 
for($i=0;$i<count($Tmp);$i++)
{
if($Tmp[$i]="")
{
echo($i.": Sin descripción<br>");
}else
{
echo($i.": ".$Tmp[$i]."<br>");
}
}

para cubrir los casos en que solo haya 1, 2, 3 o mas elementos.

suerte, salu2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

ciclo necesito ayuda

Publicado por undertaker (8 intervenciones) el 08/09/2014 21:10:38
Efectivamente xve tenia que concatenar antes para lograr que me muestre la filas despues del ciclo for.
Gracias por los comentarios
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar