Foros del Web » Programando para Internet » PHP »

PHP OO Mysql no devuelve todos los campos

Estas en el tema de Mysql no devuelve todos los campos en el foro de PHP en Foros del Web. Buenos días, Estoy haciendo algo para facilitarme la realización de presupuestos. En la base de datos mysql tengo: Una tabla con las tareas que puede ...
  #1 (permalink)  
Antiguo 31/07/2011, 05:39
 
Fecha de Ingreso: julio-2011
Mensajes: 62
Antigüedad: 12 años, 8 meses
Puntos: 2
Información Mysql no devuelve todos los campos

Buenos días,

Estoy haciendo algo para facilitarme la realización de presupuestos.
En la base de datos mysql tengo:
  • Una tabla con las tareas que puede hacer un constructor (de momento he metido sólo 8).
  • Una talba con los usuarios
  • Y otra tabla con los presupuestos completados, más que nada para tener un contador.
Los codigos fuente con los que trabajo son:

Código HTML:
Ver original
  1. <p><span>Buscar tarea:</span></p>
  2. <input type="text" id="tarea" /><input type="button" value="Buscar" onclick="document.getElementById('tareas').src='tareas.php?tarea='+document.getElementById('tarea').value" />
  3. <iframe src="tareas.php?tarea=" id="tareas" style="border:0px;width:500px;height:500px;">Necesitas tener iframes activados</iframe>

Y el iframe "tareas.php" tiene básicamente esto:
Código PHP:
Ver original
  1. <?php
  2. if(isset($_GET['tarea'])){
  3.     include('conexion.php');
  4.     $tarea=$_GET['tarea'];
  5.     $query="select id,tarea from tareas where tarea='%$tarea%'";
  6.     $result=mysql_query($query) or die(mysql_error());
  7.     echo '<table>';
  8.     $i=1;
  9.     while($fila=mysql_fetch_row($result)){
  10.         echo $tarea;//para ver si se envia bien el criterio de búsqueda
  11.         echo mysql_error();
  12.         $color=$i%2;
  13.         if($color==0){$style='style="background-color: #dddddd"';}
  14.         else{$style='style="background-color:#ffffff"';}
  15.         echo "<tr>";
  16.         echo "<td $style>$fila[1]</td><td $style><input type='checkbox' name='cb$fila[0]'</td>";
  17.         echo '</tr>';
  18.         $i++;
  19.     }
  20.     echo '</table>';
  21. }
  22. ?>

Lo que hace "tareas.php" es buscar en la tabla "tareas" todas las entradas que contienen la palabra escrita en el campo de texto "tarea".

Ahora bien, entiendo que si no escribo nada y le doy directamente a buscar, debería devolverme TODAS las entradas. Pues no; resulta que no me devuelve NADA.
Tampoco da resultados al escribir una palabra de una tarea. Por ejemplo, tengo una tarea asi: "Hacer tres pilares de ladrillo visto". Si escribo pilares, debería devolverme esta entrada; pues tampoco.

Mysql no me devuelve ningún error. He hecho un "echo" de la variable $_GET['tarea'] y sí que existe. Por lo tanto pienso que el problema lo tiene mysql.
Lo que quiero es que me devuelva todas las tareas (entradas de la tabla "tareas") que contengan la palabra escrita en el campo de texto "tarea".

¿Qué pasa, qué estoy haciendo mal?

Muchas gracias de antemano!

PD: Hace 3 días con el mismo código me devolvía sólo 6 de las 8 entradas cuando no escribía nada en el cuadro de texto o cuando escribía una palabra común en todas las entradas. (otra cosa rara...)
  #2 (permalink)  
Antiguo 31/07/2011, 06:46
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Mysql no devuelve todos los campos

Tienes que usar la intruccion LIKE. Tu estas usando el igual que se fija que sea identico.

"select id,tarea from tareas where tarea LIKE '%$tarea%'"

Saludos

Etiquetas: entradas, mysql, tablas
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 14:13.