Foros del Web » Programando para Internet » PHP »

ayuda

Estas en el tema de ayuda en el foro de PHP en Foros del Web. antes que nada quiero agradecer por la aydua anterior, pero ahora quisiera que me ayudaran con unos ciclos if() pues no me salen ya que ...
  #1 (permalink)  
Antiguo 11/02/2004, 18:12
 
Fecha de Ingreso: julio-2003
Ubicación: Puebla
Mensajes: 34
Antigüedad: 20 años, 8 meses
Puntos: 0
ayuda

antes que nada quiero agradecer por la aydua anterior, pero ahora quisiera que me ayudaran con unos ciclos if() pues no me salen ya que cuando quiero cerrar los else me marcan errores, no se si sea problema de mi apache, o de que yo tengo mal el codigo, basicamente lo que quisiera hacer es:

1.- hacer un conteo de id's el cual lo llamare ciclo, ahi seria el primer if, si el ciclo es mayor a la id de la noticia actual me diga que esa id no existe, si es menor entonces que me muestre lo demas, si es menor hacemos un nuevo if hacia un campo en la tabla que se llama ver, si ver es igual a 0 que mande un mensaje donde diga que esa noticia no la puede ver pues el publicador lo ha decidido así, si no es igual a 0 hacemos un nuevo if y comparamos de nuevo el campo ver, si es igual a 2 mandamos un mensaje donde diga que esta noticia no la ha revisado aun el administrador por eso no se puede ver, si es diferente a 2 y a 0 es decir 1 entonces mostramos la noticia, cuando se muestre la noticia que consulte al campo de la tabla color, hacemos otro if, si color es igual a 2 que sea entonces la fuente que sea rojo, si es diferente, es decir 1,3,5,6,7,8 etc que la fuente sea color negro, espero no haberlos enredado mucho y preguntaran porque tantos ciclos esque es la unica forma en que puedo administrarme para salir bien con los codigos, ahora que si alguien sabe una forma mejor que me haga todo eso sin tanto rollo se los agradeceria que me dijeran


2.- tengo un buscador interno en el sitio, y me busca bien, el problema es que cuando encuentra una palabra me toma los primeros 50 letras de la noticia, pero yo quisiera algo al estilo google, que si el texto a buscar es php, y existen 4 palabras php muestre el serultado asi

....El Software para php es apache.... ... php lo mejor para Linux..... ....Foros del web php ......

es decir no que me muestre los inicios de la noticia, si no unas 5 palabras (no letras) antes y despues de la palabra de busqueda, y no que se me corten es decir si mis 50 letras temirnan asi El sofw....... me corta todo y no me da chance a que acabe la palabra (espero me hayan entendido :S)

3.- hacer como en hotmail cuando lees un mensaje estan unas flechas arriba y abajo para ir subiendo o bajando de mensajes eso lo quisiera hacer, ya casi me salio el problema es que no se como hacerle para que cuando ya no haya mas mensajes no me siga saliendo las flechas


gracias
  #2 (permalink)  
Antiguo 12/02/2004, 06:54
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
(Es recomendable que preguntes cada cosa en un tema .. Estas preguntando demasiadas cosas diferentes en un mismo tema ..)

1)
Bueno .. para el punto 1 .. te vendría mejor usar una estrucutra de control tipo: switch() .. sobre todo por qué mencionas que estás o vas a trabajar con una variable tipo "flag" (bandera, control, estado .. o como lo quieras llamar) que, dependiendo del valor de esta .. al ejecutar tu bucle que leerá esos resultados arrojados por tu consulta SQL a tu BD va a determinar ciertas propiedades de como ha de presentarse el dato que se obtiene o bien tomar alguna otra decisión ..

De todas formas .. recuerda que en SQL se pueden emplear Condicionales .. así que puedes hacer consultas tipo:

"muestra los registros del estado 1" (suponiendo que usas un campo tipo "estado" en tu BD que guardas ese estado 1,2,3,etc ..) seria:

SELECT * FROM tabla WHERE estado='1'

Y así con todos los estados para ver sólo los de ese estado o excluirlos si fuera necesario y también usando cualquier otra condición.

2)
Primero decide si vas a modificar ese "buscador" (código) que ya tienes o bien quieres implementar tu un buscador (que no aclaras donde busca? si en tus Base de datos .. o bien en tus páginas .tal ...).

3)
Si tienes algo ya hecho .. es recomendable que pongas el código que usas (para que alguien le dé por problarlo) y expliques el problema concreto. Ademas de especificar si eso es "PHP" o es otro lenguaje ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 16/02/2004, 01:53
 
Fecha de Ingreso: julio-2003
Ubicación: Puebla
Mensajes: 34
Antigüedad: 20 años, 8 meses
Puntos: 0
Hola Clus... antes que nada dejame agradecerte por las respuesta, el punto uno ya lo resolvi tenia un pequeño problemita ahi, pues mi ciclo nunca lo liberaba de los resultados y se acomulaban los ciclos, ademas de otras cosas

en el punto dos aun no lo puedo resolver, es un buscador que ya tengo hecho, hace referencia a una base de datos que tengo, donde se busca por título o por contenido, pero si se pudiera implementar uno nuevo valdria la pena intentarlo, el que tengo ahora me lo paso el buen JLMM pero se me olvido preguntarle como hacia eso...


Código PHP:


<?
include("conexion.php");
$conn mysql_connect("$hostbd","$loginBaseDatos","$passwordBaseDatos");
mysql_select_db("$nombreBaseDatos");
if(isset(
$clave) && $clave != "")
{
        
$palabrasBusqueda explode(" "$clave);
        
$sql "SELECT * FROM poemas WHERE ";

        if(
$tipo == "poema")
        {
            
$sql .= "poema LIKE '%".$palabrasBusqueda[0]."%'";

            
$i 1;
            while(
$palabrasBusqueda[$i] != "")
            {
                    
$sql .= " OR poema LIKE '%".$palabrasBusqueda[$i]."%'";
                
$i++;
            }
          
$sql .= " ORDER BY id_poema DESC";
        }
      else
      {
            
$sql .= "titulo LIKE '%".$palabrasBusqueda[0]."%'";
            
$i 1;
            while(
$palabrasBusqueda[$i] != "")
            {
                    
$sql .= " OR titulo LIKE '%".$palabrasBusqueda[$i]."%'";
                
$i++;
            }
          
$sql .= " ORDER BY id_poema DESC";
      }
        
$result mysql_query($sql);
        if(
$row mysql_fetch_array($result))
        {
        
?>
        <CENTER>
        <TABLE WIDTH=510 CELLSPACING=1 CELLPADDING=1 BORDER=0>
        <TR>
        <TD HEIGHT=20 VALIGN="center" BGCOLOR="#EFEFEF" STYLE="border:1px solid black">
                <CENTER>
                <SPAN STYLE="font-size:12px;font-family:Tahoma;color:black">
                        .Resultados De La Busqueda.
                </SPAN>
                </CENTER>
        </TD>
        </TR>

<table border="1" width="510" cellspacing="0" cellpadding="0" style="font-size=10pt;"><tr>
       <td bgcolor="#DFDFDF"><b><a style="color=#0C0C0C" href="ver_poema.php?id=<? echo $row["id_poema"]; ?>"><? echo $row["titulo"]; ?></a></b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>
<tr>
       <td>
      <?
           $poemaTemp 
substr($row["poema"], 0,500);
            
$i 1;
            while(
$palabrasBusqueda[$i] != "")
            {
               
$poemaTemp str_replace("$palabrasBusqueda[$i]","<B>$palabrasBusqueda[$i]</B>",$poemaTemp);
            
$i++;
          }
           echo 
$poemaTemp;
        
?>
</td></tr>
      <tr><td bgcolor="#DFDFDF">
       <table style="font-size=8pt;" width="100%"><tr><td>
        </td><td width="80"><br></td></tr></table>
      </td></tr></table>
        <?
                
while($row mysql_fetch_array($result))
                {
                
?>
                
<table border="1" width="510" cellspacing="0" cellpadding="0" style="font-size=10pt;"><tr>
       <td bgcolor="#DFDFDF"><b><a style="color=#0C0C0C" href="ver_poema.php?id=<? echo $row["id_poema"]; ?>"><? echo $row["titulo"]; ?></a></b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>
<tr>
       <td>
              <?
               $poemaTemp 
substr($row["poema"], 0,500);
                
$i 1;
                while(
$palabrasBusqueda[i] != "")
                {
                   
$poemaTemp str_replace("$palabrasBusqueda[i]","<B>$palabrasBusqueda[i]</B>",$poemaTemp);
              }
               echo 
$poemaTemp;
                
?>
</td></tr>
      <tr><td bgcolor="#DFDFDF">
       <table style="font-size=8pt;" width="100%"><tr><td>
        </td><td width="80"><br></td></tr></table>
      </td></tr></table>
                <?
                
}
        
?>
        </TABLE>
        <?
        
}
        else
        {
                
?>
               <BR><p class=MsoBodyText style='text-align:justify'>
                <SPAN STYLE="font-size:12px;font-family:Tahoma;color:black;font-weight:bold">
                Lo siento, su b&uacute;squeda de <FONT COLOR="red"><? echo $clave?></FONT> no ha generado resultados, recuerde que si desea buscar m&aacute;s de una palabra separelas por un espacio, para resultados m&aacute;s precisos omita palabras comunes como "Para", "De", "Desde", "Articulo" entre otras.
                </SPAN>
                <?
        
}
}
else
{
        
?>
        <BR>
        <SPAN STYLE="font-size:12px;font-family:Tahoma;color:black;font-weight:bold">
        Aqui se desplegaran los resultados de la B&uacute;squeda
        </SPAN>
        <?
}
?>
para el punto tres aun no tengo nada hecho, quisiera hacer algo como el inbox de hotmail que trae campos como de: asunto: fecha: y unos checkbox para eliminar los mensajes que no quieras, (la ventaja es que eliminas varios de una vez) es lo que quiero hacer en PHP ¿Como puedo sacar una serie por ejemplo de 20 checkbox y que se eliminen solo los que seleccione (3) por ejemplo, cuando le de al boton o imagen eliminar solo, borre esos 3


se que todo en varios mensajes clus pero lamentablemente estos dias he andado con unas conexiones a internet pesimas, y si no lo mando rapido no me deja mandarlo y se bloquea la url, perdon, sera la ultima vez

Última edición por asound; 16/02/2004 a las 11:37
  #4 (permalink)  
Antiguo 16/02/2004, 08:19
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
El punto 3 lo tienes resuelto en esta FAQ del foro PHP (de las últimas)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 06:12.