Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

DLSeken

Array

Recommended Posts

Galera bom dia, Desculpe por postar o código desse jeito mas onde eu estou as páginas não carregam totalmente e não aparece o "ícone" para eu colocar o código. Bom vamos ao que interessa. Estou com uma dúvida em um array. Tenho um While que pode retornar diversas linhas e para cada linha ele deve imprimir através de um FOR vários radio button só que na frente deles preciso que venham com alguns "valores" porém meu sistema só está pegando o valor de um array. Alguém poderia me dar alguma dica?

<?PHP

        $array1 = array(0,1,2,3,4,5);
        $array2 = array(0,6,12,18,24,30,36,42,48,54,60);

        $resultado =  listaTitulo($conexao, $_POST['txtEDITAL']);

        $j = 0;
        while ($linha = $resultado->fetch(PDO::FETCH_ASSOC)) {?>

        <tr>
        <td><div align='center'><font size='1px'><?=$linha['nr_titulo']?></font></div></td>
        <td><div align='center'><font size='1px'><p align='left'><?=$linha['ds_titulo']?></p></font></div></td>
        <td><div align='center'><font size='1px'><?=$linha['nr_pontuacao']?></font></div></td>
        <td><div align='center'><font size='1px'><?=$linha['nr_pontos_maximo']?></font></div></td>
            <?
                $soma = (($linha['nr_pontos_maximo'] / $linha['nr_pontuacao']) + 1);

                $j++;
                for($i =0; $i < $soma; $i++){

                    if ($j == 0){?>
                        <td><div align='center'><input type='radio' name='ST_PONTUACAO_01' id='ST_PONTUACAO_01_<?$i?>' value='<?$i?>' checked><a size='1px' color='#0000FF'><?echo $array1[$i];?></a></div></td>
                    <?} else{?>
                        <td><div align='center'><input type='radio' name='ST_PONTUACAO_01' id='ST_PONTUACAO_01_<?$i?>' value='<?$i?>' checked><a size='1px' color='#0000FF'><?echo $array2[$i];?></a></div></td>
                    <?}?>
                <?}?>
        <?}?>

Compartilhar este post


Link para o post
Compartilhar em outros sites
...meu sistema só está pegando o valor de um array.

 

Oi

ele so mostra um porque você colocou um IF comparando $j a 0, ele só vai aparecer quando for = a 0, e antes disso voce incrementa ele, que tinha começado com valor 0;

Ou seja

antes do while $j = 0;

antes do for voce incrementa, agora ele vale 1

dentro do for voce só mostra se for igual a 0, mas ele é 1, então mostra o segundo.

if ($j == 0){?>
   <td><div align='center'><input type='radio' name='ST_PONTUACAO_01' id='ST_PONTUACAO_01_<?$i?>' value='<?$i?>' checked><a size='1px' color='#0000FF'><?echo $array1[$i];?></a></div></td>
<?} else{?>
   <td><div align='center'><input type='radio' name='ST_PONTUACAO_01' id='ST_PONTUACAO_01_<?$i?>' value='<?$i?>' checked><a size='1px' color='#0000FF'><?echo $array2[$i];?></a></div></td>
<?}?>

Outra coisa quando $soma for maior que o numero de elementos do array, tambem vai a mensagem Undefined offset:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Voltei do almoço agora e consegui pensar numa solução e consegui fazer funcionar .... Obrigado pela ajuda de vocês.

 

Segue a solução abaixo.

    <?PHP

        // esse array serve para dizer de quanto em quanto a pontuação vale
        $array = array(1,2,4,6);


        $resultado =  listaTitulo($conexao, $_POST['txtEDITAL']);

        $count = 0;
        while ($linha = $resultado->fetch(PDO::FETCH_ASSOC)) {?>
        <tr>
        <td><div align='center'><font size='1px'><?=$linha['nr_titulo']?></font></div></td>
        <td><div align='center'><font size='1px'><p align='left'><?=$linha['ds_titulo']?></p></font></div></td>
        <td><div align='center'><font size='1px'><?=$linha['nr_pontuacao']?></font></div></td>
        <td><div align='center'><font size='1px'><?=$linha['nr_pontos_maximo']?></font></div></td>
            <?
                $soma = (($linha['nr_pontos_maximo'] / $linha['nr_pontuacao']) + 1);

                for($i =0; $i < $soma; $i++){
                    if($linha['nr_titulo'] == 1){?>
                        <td><div align='center'><input type='radio' name='ST_PONTUACAO_01'
                                id='ST_PONTUACAO_01_<?$i?>' value='<?$i?>' checked><a size='1px'
                                color='#0000FF'><?echo (($array[0])*($i));?></a></div></td>
                                <?}?>
                    <?if($linha['nr_titulo'] == 2){?>
                         <td><div align='center'><input type='radio' name='ST_PONTUACAO_01'
                                id='ST_PONTUACAO_01_<?$i?>' value='<?$i?>' checked><a size='1px'
                                color='#0000FF'><?echo (($array[2])*($i));?></a></div></td>
                                <?}?>
                    <?if($linha['nr_titulo'] == 3){?>
                         <td><div align='center'><input type='radio' name='ST_PONTUACAO_01'
                                id='ST_PONTUACAO_01_<?$i?>' value='<?$i?>' checked><a size='1px'
                                color='#0000FF'><?echo (($array[2])*($i));?></a></div></td>
                                <?}?>
                    <?if($linha['nr_titulo'] == 4){?>
                         <td><div align='center'><input type='radio' name='ST_PONTUACAO_01'
                                id='ST_PONTUACAO_01_<?$i?>' value='<?$i?>' checked><a size='1px'
                                color='#0000FF'><?echo (($array[1])*($i));?></a></div></td>
                                <?}?>
                    <?if($linha['nr_titulo'] == 5){?>
                         <td><div align='center'><input type='radio' name='ST_PONTUACAO_01'
                                id='ST_PONTUACAO_01_<?$i?>' value='<?$i?>' checked><a size='1px'
                                color='#0000FF'><?echo (($array[2])*($i));?></a></div></td>
                                <?}?>
                    <?if($linha['nr_titulo'] == 6){?>
                         <td><div align='center'><input type='radio' name='ST_PONTUACAO_01'
                                id='ST_PONTUACAO_01_<?$i?>' value='<?$i?>' checked><a size='1px'
                                color='#0000FF'><?echo (($array[0])*($i));?></a></div></td>
                                <?}
                    
                }?>
        <?}?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.