Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP se ejecuta muchas veces

Estas en el tema de PHP se ejecuta muchas veces en el foro de PHP en Foros del Web. Código PHP: <?php $sql  =  mysql_connect ( 'localhost' , 'root' , '' ); $sql_preparado  =  mysql_select_db ( 'cooperativo' , $sql ); $tarea  =  mysql_query ( ...
  #1 (permalink)  
Antiguo 25/09/2015, 11:01
 
Fecha de Ingreso: diciembre-2014
Ubicación: Madrid
Mensajes: 274
Antigüedad: 9 años, 3 meses
Puntos: 5
PHP se ejecuta muchas veces

Código PHP:
<?php
$sql 
mysql_connect('localhost','root','');
$sql_preparado mysql_select_db('cooperativo',$sql);
$tarea mysql_query('SELECT * FROM tareas',$sql);
$resultado mysql_fetch_assoc($tarea);
?>
<html>
    <head>
        <meta charset="UTF-8"/>
        <link href="../../estilos/styles.css" rel="stylesheet"/>
        <link href="../../estilos/fuentes.css" rel="stylesheet"/>
        <link href="../../estilos/fonts/fa/css/font-awesome.css" rel="stylesheet"/>
        <title>Tareas</title>
    </head>
    <body>
        <a href="../../index.php">
            <div id="fyq-h1">Tareas</div>
        </a>
        <table width="100%" align="center" border="0">
            <tr id="thead-tareas">
                <td width="2%">ID</td>
                <td width="13%">Materia</td>
                <td width="50%">Descripción</td>
                <td width="10%">Fecha límite</td>
                <td width="10%">Añadido por</td>
                <td width="10%">Opciones</td>
            </tr>
            <?php
                $count 
0;
                while (
$count <= mysql_num_rows($tarea)){
                    echo 
'<tr id="tr-'.utf8_encode($resultado['style']).'">';
                    echo 
'<td>'.utf8_encode($resultado['id']).'</td>';
                    echo 
'<td>'.utf8_encode($resultado['materia']).'</td>';
                    echo 
'<td>'.utf8_encode($resultado['descripcion']).'</td>';
                    echo 
'<td>'.utf8_encode($resultado['fechaentrega']).'</td>';
                    echo 
'<td>'.utf8_encode($resultado['anadiente']).'</td>';
                    echo 
'<td>
                            <a href="editar.php?id='
.$resultado['id'].'">
                                <i class="fa fa-pencil-square"></i>
                            </a>
                            <a href="eliminar.php?id='
.$resultado['id'].'">
                                <i class="fa fa-minus-square"></i>
                            </a>
                        </td>
                    </tr>'
;
                    
$count++;
                }
            
?>
           <tr id="tr-fin">
                <td colspan="5"></td>
                <td>
                    <a href="nuevo.php"><i class="fa fa-plus-square fa-2x"></i></a>
                </td>
            </tr>
        </table>
    </body>
</html>
En ese fichero PHP se muestra el código del while tres veces (http://www.subeimagenes.com/img/capt...8-1458198.html) ¿Cómo podría cambiar este comportamiento? Gracias.

PD: Ya sé que podría usar mysqli pero todavía soy novato y con mysqli no me mostraba nada y con mysql sí.
  #2 (permalink)  
Antiguo 25/09/2015, 13:54
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: PHP se ejecuta muchas veces

¿y de qué forma quieres cambiar "el comportamiento"? si estás mostrando información de una tabla no hay de otra que recorrer lo devuelto por la base de datos, sea con while o con foreach si obtienes la consulta en un arreglo.
  #3 (permalink)  
Antiguo 25/09/2015, 13:57
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: PHP se ejecuta muchas veces

Si no se muestra con mysqli es porque algo estás haciendo mal; aunque seas novato, es preferible que aprendas sin usar librerías obsoletas, con las que puedes trabajar ahora, pero, a corto plazo, deberás actualizar.

Quita esta línea de la parte de arriba:
Código PHP:
Ver original
  1. $resultado = mysql_fetch_assoc($tarea);

Con eso lees el primer registro de la consulta. Luego cambia el for por esto:
Código PHP:
Ver original
  1. while($resultado = mysql_fetch_assoc($tarea)) {
  2.     // Aquí envías todos los echos que tienes en el for
  3. }
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: mysql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:12.