Foros del Web » Programando para Internet » PHP »

No muestra resultado como quiero!

Estas en el tema de No muestra resultado como quiero! en el foro de PHP en Foros del Web. Hola chicos, quiero conseguir que al realizar una consulta en la base de datos, si esta tiene un resultado lo muestre directo, si hay mas ...
  #1 (permalink)  
Antiguo 04/09/2006, 01:55
Avatar de kennyhp  
Fecha de Ingreso: julio-2006
Mensajes: 370
Antigüedad: 18 años, 4 meses
Puntos: 5
No muestra resultado como quiero!

Hola chicos, quiero conseguir que al realizar una consulta en la base de datos, si esta tiene un resultado lo muestre directo, si hay mas de uno, muestre solo el titulo de los resultados para luego elegir uno de ellos y si no hay resultado, lo diga.
El código que tengo ahora no me diferencia entre si tengo un resultado o dos,
por ejemplo si tengo el la base de datos: dani y dani cordoba y hago una busqueda por dani me aparecen los dos resultados seguidos con su descrippcion, pero al ser dos deverian aparecer solo los nombres, pqra yo luego elejir que dani quiero mostrar, en cambio de pepe solo da un resultado y por consiguiente me mostraria el resultado con el nmbre y descrippcion.Espero haberme explicado. Aqui pongo el código a ver si encontrais el pq falla, pq yo no lo veo!

Código PHP:
<?php if ($accion_realizar=="ver"//muestra resultados de la consulta
{

    include (
'cabezera.php');
    include (
'menu.php');

    
$palabra=trim($_POST['palabra']);

    
$res=mysql_query("SELECT * FROM wiki WHERE titulo LIKE '%".$palabra."%'");

    
//esto muestra los resultados
    //tengo que poner que si solo hay uno lo muestre directamente

    
if ($num_res=mysql_num_rows($res)>0)
    {
       if (
$num_res==1)
       {
             while (
$row mysql_fetch_array($res))
          {
          echo 
$row['titulo'];
          echo 
"<br>";
          echo 
$row['articulo'];
          }
       }
        else
        {
           echo 
'Se han encontrado los siguientes resultados:';
           echo 
"<br>";
           while (
$row mysql_fetch_array($res))
           {
               echo 
$row[titulo];
               echo 
"<br>"
           }
         }
    } 
    else 
    {
      echo 
"No hay resultados para $palabra, comprueba que la has escrito bien,<br>";

      echo 
"o colabora <a href=\"insertar.php\">insertando</a> el termino";

    

    } 

            

}



?>
  #2 (permalink)  
Antiguo 04/09/2006, 02:07
Avatar de fer10  
Fecha de Ingreso: octubre-2005
Ubicación: Guadalajara - Mexico
Mensajes: 905
Antigüedad: 19 años, 1 mes
Puntos: 4
Cita:
if ($num_res=mysql_num_rows($res)>0)
se puede asignar una variable y luego hacer una condicianal con la misma ??
__________________
Saludos
FT.
www.fernando.com.mx
  #3 (permalink)  
Antiguo 04/09/2006, 02:25
Avatar de kennyhp  
Fecha de Ingreso: julio-2006
Mensajes: 370
Antigüedad: 18 años, 4 meses
Puntos: 5
Código PHP:
 if ($num_res=mysql_num_rows($res)>0
    { 
       if (
$num_res==1
Pues diria que si, primero le asigno el valor a $num_res y luego trabajo con ese valor... pero no se, la cosa es que no funciona como quiero, así que puede que tengas razón y no se pueda.... en ese caso ¿como lo hago?
  #4 (permalink)  
Antiguo 04/09/2006, 04:40
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 3 meses
Puntos: 102
Cita:
Iniciado por kennyhp Ver Mensaje
Pues diria que si, primero le asigno el valor a $num_res y luego trabajo con ese valor...
No, lo que haces es primero ejecutar una función que devolverá un valor entero (el número de resultados), posteriormente haces una comparación (si dicho valor es mayor que 0) y finalmente asignas el resultado de esa comparación a la variable (que solo puede ser 0 ó 1).

Supóngo lo mejor sería que hicieras la asignación de manera independiente aunque igual puedes buscar una solución encerrando operadores (con paréntesis) para indicar el órden de ejecución... pero ten en cuenta que la misma asignación devuelve un true o false (1 o 0) lo cuál puede resultar un problema...

Saluton
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #5 (permalink)  
Antiguo 04/09/2006, 07:11
Avatar de kennyhp  
Fecha de Ingreso: julio-2006
Mensajes: 370
Antigüedad: 18 años, 4 meses
Puntos: 5
Holas, ya esta funcionando ;) thank's

Lo k pasaba era lo que me comentais, daba por echo que se asignaba un valor y claro lo que hacia era decir si el if se cumplia o no (0 ó 1) por eso no iba.
Lo he solucionado poniendolo asi

if (mysql_num_rows($res)>0)
{
$num_res=mysql_num_rows($res); <-- asigno despues de la comprobación
if ($num_res==1) <-- y luego comparo con la asignacion.

{

while ($row = mysql_fetch_array($res))
//blablabla
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 13:00.