Foros del Web » Programando para Internet » PHP »

Me podrian ayudar con el siguiente codigo?

Estas en el tema de Me podrian ayudar con el siguiente codigo? en el foro de PHP en Foros del Web. Hola, soy nuevo en el foro y quería pedirles ayuda con el siguiente codigo ya que no lo puedo hacer funcionar y soy principiante con ...
  #1 (permalink)  
Antiguo 18/05/2014, 01:54
 
Fecha de Ingreso: mayo-2014
Mensajes: 11
Antigüedad: 5 años, 6 meses
Puntos: 0
Pregunta Me podrian ayudar con el siguiente codigo?

Hola, soy nuevo en el foro y quería pedirles ayuda con el siguiente codigo ya que no lo puedo hacer funcionar y soy principiante con PHP.
Les dejo el codigo y de antemano gracias:
Código PHP:

 <?php
    
$button 
$_GET ['submit'];
$search $_GET ['search']; 
  
if(
strlen($search)<=1)
echo 
"La busqueda es demaciado corta";
else{
echo 
"Usted busco <b>$search</b> <hr size='1'></br>";
mysql_connect("localhost","root","5579");
mysql_select_db("enginez");
    
$search_exploded explode (" "$search);
    
foreach(
$search_exploded as $search_each)
{
$x++;
if(
$x==1)
$construct .="title LIKE '%$search_each%'";
else
$construct .="AND title LIKE '%$search_each%'";
    
}
  
$constructs ="SELECT * datos WHERE $construct";
$run mysql_query($constructs);
    
$foundnum mysql_num_rows($run);
    
if (
$foundnum==0)
echo 
"Lo sentimos, no hay coincidencias referentes al texto introducido <b>$search</b>";
else

  
echo 
"$foundnum results found !<p>";
  
$per_page 1;
$start $_GET['start'];
$max_pages ceil($foundnum $per_page);
if(!
$start)
$start=0
$getquery mysql_query("SELECT * FROM datos WHERE $construct LIMIT $start, $per_page");
  
while(
$runrows mysql_fetch_assoc($getquery))
{
$title $runrows ['title'];
$desc $runrows ['description'];
$url $runrows ['url'];
   
echo 
"
<a href='$url'><b>$title</b></a><br>
$desc<br>
<a href='$url'>$url</a><p>
"
;
    
}
  
//Pagination Starts
echo "<center>";
  
$prev $start $per_page;
$next $start $per_page;
                       
$adjacents 3;
$last $max_pages 1;
  
if(
$max_pages 1)
{   
//previous button
if (!($start<=0)) 
echo 
" <a href='search.php?search=$search&submit=Search+source+code&start=$prev'>Prev</a> ";    
          
//pages 
if ($max_pages + ($adjacents 2))   //not enough pages to bother breaking it up
{
$i 0;   
for (
$counter 1$counter <= $max_pages$counter++)
{
if (
$i == $start){
echo 
" <a href='search.php?search=$search&submit=Search+source+code&start=$i'><b>$counter</b></a> ";
}
else {
echo 
" <a href='search.php?search=$search&submit=Search+source+code&start=$i'>$counter</a> ";
}  
$i $i $per_page;                 
}
}
elseif(
$max_pages + ($adjacents 2))    //enough pages to hide some
{
//close to beginning; only hide later pages
if(($start/$per_page) < + ($adjacents 2))        
{
$i 0;
for (
$counter 1$counter + ($adjacents 2); $counter++)
{
if (
$i == $start){
echo 
" <a href='search.php?search=$search&submit=Search+source+code&start=$i'><b>$counter</b></a> ";
}
else {
echo 
" <a href='search.php?search=$search&submit=Search+source+code&start=$i'>$counter</a> ";

$i $i $per_page;                                       
}
                          
}
//in middle; hide some front and some back
elseif($max_pages - ($adjacents 2) > ($start $per_page) && ($start $per_page) > ($adjacents 2))
{
echo 
" <a href='search.php?search=$search&submit=Search+source+code&start=0'>1</a> ";
echo 
" <a href='search.php?search=$search&submit=Search+source+code&start=$per_page'>2</a> .... ";
 
$i $start;                 
for (
$counter = ($start/$per_page)+1$counter < ($start $per_page) + $adjacents 2$counter++)
{
if (
$i == $start){
echo 
" <a href='search.php?search=$search&submit=Search+source+code&start=$i'><b>$counter</b></a> ";
}
else {
echo 
" <a href='search.php?search=$search&submit=Search+source+code&start=$i'>$counter</a> ";
}   
$i $i $per_page;                
}
                                  
}
//close to end; only hide early pages
else
{
echo 
" <a href='search.php?search=$search&submit=Search+source+code&start=0'>1</a> ";
echo 
" <a href='search.php?search=$search&submit=Search+source+code&start=$per_page'>2</a> .... ";
 
$i $start;                
for (
$counter = ($start $per_page) + 1$counter <= $max_pages$counter++)
{
if (
$i == $start){
echo 
" <a href='search.php?search=$search&submit=Search+source+code&start=$i'><b>$counter</b></a> ";
}
else {
echo 
" <a href='search.php?search=$search&submit=Search+source+code&start=$i'>$counter</a> ";   

$i $i $per_page;              
}
}
}
          
//next button
if (!($start >=$foundnum-$per_page))
echo 
" <a href='search.php?search=$search&submit=Search+source+code&start=$next'>Next</a> ";    
}   
echo 
"</center>";


?>
  #2 (permalink)  
Antiguo 18/05/2014, 02:25
lolainas
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Me podrian ayudar con el siguiente codigo?

Qué hace ese código? Qué necesitas que haga?
  #3 (permalink)  
Antiguo 18/05/2014, 02:57
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 5 años, 8 meses
Puntos: 67
Respuesta: Me podrian ayudar con el siguiente codigo?

Cita:
Iniciado por lolainas Ver Mensaje
Qué hace ese código? Qué necesitas que haga?
Creo que lo que intenta realizar es un buscador.



Cita:
Iniciado por conromx Ver Mensaje
Hola, soy nuevo en el foro y quería pedirles ayuda con el siguiente codigo ya que no lo puedo hacer funcionar y soy principiante con PHP.
Les dejo el codigo y de antemano gracias:
Podrias decirnos que es lo que no te funciona o el error que te aparece si lo hay?

Saludos.
  #4 (permalink)  
Antiguo 18/05/2014, 09:23
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 926
Antigüedad: 12 años, 8 meses
Puntos: 269
Respuesta: Me podrian ayudar con el siguiente codigo?

Uf, mucho código, poca explicación.
Así, mirando rápido, este código:
Código PHP:
Ver original
  1. if($x==1)
  2. $construct .="title LIKE '%$search_each%'";
  3. else
  4. $construct .="AND title LIKE '%$search_each%'";
no está dejando en $construct espacios entre las comillas de un like, y el siguiente AND.
Esfuérzate un poco más en explicar qué ocurre.
  #5 (permalink)  
Antiguo 18/05/2014, 13:04
 
Fecha de Ingreso: mayo-2014
Mensajes: 11
Antigüedad: 5 años, 6 meses
Puntos: 0
Respuesta: Me podrian ayudar con el siguiente codigo?

Disculpen porno dejar mucha información. Efectivamente es un buscador con paginador. Pero al buscar me da el sigiente error:
Notice: undefined variable: x in (direccion del archivo php) on line 17
  #6 (permalink)  
Antiguo 18/05/2014, 13:18
Avatar de HackID1  
Fecha de Ingreso: febrero-2013
Ubicación: En Update
Mensajes: 487
Antigüedad: 6 años, 9 meses
Puntos: 17
Respuesta: Me podrian ayudar con el siguiente codigo?

Intenta colocando luego de

Código PHP:
Ver original
  1. $button = $_GET ['submit'];
  2. $search = $_GET ['search'];

al comienzo del código una variable llamada x así:

Código PHP:
Ver original
  1. $button = $_GET ['submit'];
  2. $search = $_GET ['search'];
  3. $x = 0;

Pero el código te funciona aunque te dice indefinida variable?, lo pregunto porque yo estuve realizando igual un paginador, y la 1 vez me salian los 10 resultados pero un error aunque el paginador funcionaba pero mostraba VARIABLE INDEFINIDA.
__________________
Puntuar +1 es buena forma de dar las gracias. :P
Your Time is limited, so don't waste it living someone else´s life.
Por: HackID1
  #7 (permalink)  
Antiguo 18/05/2014, 15:34
 
Fecha de Ingreso: mayo-2014
Mensajes: 11
Antigüedad: 5 años, 6 meses
Puntos: 0
Respuesta: Me podrian ayudar con el siguiente codigo?

No, no busca. Coloque $x=0; y me salen 2 errores mas pero el primero expuesto anterior se suciono. Ahora me aparecen los siguientes :
Notice: undefined variable: construct in (direccion del archivo php) on line 20.
Y este otro:
Warning: mysql_num_rows() expect parameter 1 to be resource, boolean given in (direccion del archivo php) on line 29.

Gracias por estar ayudandome.
  #8 (permalink)  
Antiguo 18/05/2014, 15:44
Avatar de HackID1  
Fecha de Ingreso: febrero-2013
Ubicación: En Update
Mensajes: 487
Antigüedad: 6 años, 9 meses
Puntos: 17
Respuesta: Me podrian ayudar con el siguiente codigo?

Puede ser que también te haga falta iniciarlizar esa variable, porque veo que cuando usas.
Código PHP:
Ver original
  1. if($x==1)
  2. $construct .="title LIKE '%$search_each%'";
  3. else
  4. $construct .="AND title LIKE '%$search_each%'";

Anteriormente $construct No contiene nada. y estás intentando concatenar algo a esa Variable.

Por lo que prueba inicializando la Variable. Después de

Código PHP:
Ver original
  1. $x = 0;

Escribe a continuación.
Código PHP:
Ver original
  1. $construct = "";
Y el erro en Linea 29 se debe a que no estas haciendo el JOIN correctamente entre las tablas que tienes que consultar.
Revisa tu consulta SQL y fijate que este correctamente el JOIN puede ser ese tu fallo.

Saludos. sino postea el código de donde provienen estos datos para que te puedan ayudar un poco más.

Lo que te expongo son suposiciones pueden que te den la solución o no. No soy avanzado en PHP, pero algo intento :) .
__________________
Puntuar +1 es buena forma de dar las gracias. :P
Your Time is limited, so don't waste it living someone else´s life.
Por: HackID1
  #9 (permalink)  
Antiguo 18/05/2014, 16:50
 
Fecha de Ingreso: mayo-2014
Mensajes: 11
Antigüedad: 5 años, 6 meses
Puntos: 0
Respuesta: Me podrian ayudar con el siguiente codigo?

Genial amigo. Un error menos jaja. Me falta la linea 30, en la consulta me faltaba FROM y lo coloque mas no funciono!
  #10 (permalink)  
Antiguo 19/05/2014, 13:43
Avatar de HackID1  
Fecha de Ingreso: febrero-2013
Ubicación: En Update
Mensajes: 487
Antigüedad: 6 años, 9 meses
Puntos: 17
Respuesta: Me podrian ayudar con el siguiente codigo?

Buenas conromx
Mira si la consulta da el resultado almacenado cuando es $x = 1, esa consulta debe funcionar,
pero sino te enviará al ELSE el cual empieza por la palabra AND por lo que la consulta quedaría asi:

Cuando es $x = 1
Código PHP:
Ver original
  1. SELECT * datos FROM tabla WHERE title LIKE '%hola%'

Sin embargo cuando es otro número que no sea 1, está el error ya que la consulta quedaría así.
Código PHP:
Ver original
  1. SELECT * datos FROM tabla WHERE AND title LIKE '%hola%'

Según tu código, corrige ese fallo en el IF ELSE de arriba.

El código lo he probado con este ejemplo, como si la palabra a buscar fuera "hola" y el nombre de la tabla "tabla"

Código PHP:
Ver original
  1. <?php
  2. //si $x es uno la consulta tiene sintaxis correcta.
  3. //Si $x es distinto a 1, la consulta NO es correcta su sintaxis. Comprueba eso.
  4. $x = 1;  
  5. $construct = "";
  6. $search_each = "hola" ;
  7. if($x==1)
  8. $construct .="title LIKE '%$search_each%'";
  9. else
  10. $construct .="AND title LIKE '%$search_each%'";
  11.      
  12.  
  13.    
  14. $constructs ="SELECT * datos FROM tabla
  15.             WHERE $construct";
  16.  
  17. echo $constructs ;

Revisa tu código de nuevo. Saludos!
__________________
Puntuar +1 es buena forma de dar las gracias. :P
Your Time is limited, so don't waste it living someone else´s life.
Por: HackID1
  #11 (permalink)  
Antiguo 23/07/2014, 19:08
 
Fecha de Ingreso: mayo-2014
Mensajes: 11
Antigüedad: 5 años, 6 meses
Puntos: 0
Respuesta: Me podrian ayudar con el siguiente codigo?

Buenas a todos. Disculpen por no contestar en un buen tiempo. Lo que pasa es que edtaba en final de curso en mi escuela y no me daba tiempo de nada. Gracias por las respuestas me han sevido mucho. Con toda la pena del mundo quisiera que me echaran la mano de nuevo, aqui esta el codigo que tengo ahorita, al introducir la palabra me busca e imprime el resultado pero se muestra un error en la pagina en la linea 42:


Código PHP:

 <?php
    
$button 
$_GET ['submit'];
$search $_GET ['search']; 



if(
strlen($search)<=1)
echo 
"La palabra a buscar es demaciado corta";
else{
echo 
"Usted a buscado <b>$search</b> <hr size='1'></br>";
mysql_connect("localhost","root","5579");
mysql_select_db("buscador");
    
$search_exploded explode (" "$search);
    
foreach(
$search_exploded as $search_each)
{
$construct="";
$x=0;
$x++;
if(
$x==1)

$construct .="title LIKE '%$search_each%'";
else
$construct .="AND title LIKE '%$search_each%'";
    
}
  
$constructs ="SELECT * FROM datos WHERE $construct";
$run mysql_query($constructs);
    
$foundnum mysql_num_rows($run);
    
if (
$foundnum==0)
echo 
"Lo sentimos, no encontramos resultados con <b>$search</b>.</br></br>";
else

echo 
"$foundnum Resultados encontrados!<p>";

$per_page 1;
$start $_GET['start'];
$max_pages ceil($foundnum $per_page);
if(!
$start)
$start 0;
$getquery mysql_query("SELECT * FROM datos WHERE $construct LIMIT $start, $per_page");

  
while(
$runrows mysql_fetch_assoc($getquery))
{
$title $runrows ['title'];
$desc $runrows ['description'];
$url $runrows ['url'];
   
echo 
"
<a href='$url'><b>$title</b></a><br>
$desc<br>
<a href='$url'>$url</a><p>
"
;
    
}
  
//Pagination Starts
echo "<center>";
  
$prev $start $per_page;
$next $start $per_page;
                       
$adjacents 3;
$last $max_pages 1;
  
if(
$max_pages 1)
{   
//previous button
if (!($start<=0)) 
echo 
" <a href='search.php?search=$search&submit=Search+source+code&start=$prev'>Prev</a> ";    
          
//pages 
if ($max_pages + ($adjacents 2))   //not enough pages to bother breaking it up
{
$i 0;   
for (
$counter 1$counter <= $max_pages$counter++)
{
if (
$i == $start){
echo 
" <a href='search.php?search=$search&submit=Search+source+code&start=$i'><b>$counter</b></a> ";
}
else {
echo 
" <a href='search.php?search=$search&submit=Search+source+code&start=$i'>$counter</a> ";
}  
$i $i $per_page;                 
}
}
elseif(
$max_pages + ($adjacents 2))    //enough pages to hide some
{
//close to beginning; only hide later pages
if(($start/$per_page) < + ($adjacents 2))        
{
$i 0;
for (
$counter 1$counter + ($adjacents 2); $counter++)
{
if (
$i == $start){
echo 
" <a href='search.php?search=$search&submit=Search+source+code&start=$i'><b>$counter</b></a> ";
}
else {
echo 
" <a href='search.php?search=$search&submit=Search+source+code&start=$i'>$counter</a> ";

$i $i $per_page;                                       
}
                          
}
//in middle; hide some front and some back
elseif($max_pages - ($adjacents 2) > ($start $per_page) && ($start $per_page) > ($adjacents 2))
{
echo 
" <a href='search.php?search=$search&submit=Search+source+code&start=0'>1</a> ";
echo 
" <a href='search.php?search=$search&submit=Search+source+code&start=$per_page'>2</a> .... ";
 
$i $start;                 
for (
$counter = ($start/$per_page)+1$counter < ($start $per_page) + $adjacents 2$counter++)
{
if (
$i == $start){
echo 
" <a href='search.php?search=$search&submit=Search+source+code&start=$i'><b>$counter</b></a> ";
}
else {
echo 
" <a href='search.php?search=$search&submit=Search+source+code&start=$i'>$counter</a> ";
}   
$i $i $per_page;                
}
                                  
}
//close to end; only hide early pages
else
{
echo 
" <a href='search.php?search=$search&submit=Search+source+code&start=0'>1</a> ";
echo 
" <a href='search.php?search=$search&submit=Search+source+code&start=$per_page'>2</a> .... ";
 
$i $start;                
for (
$counter = ($start $per_page) + 1$counter <= $max_pages$counter++)
{
if (
$i == $start){
echo 
" <a href='search.php?search=$search&submit=Search+source+code&start=$i'><b>$counter</b></a> ";
}
else {
echo 
" <a href='search.php?search=$search&submit=Search+source+code&start=$i'>$counter</a> ";   

$i $i $per_page;              
}
}
}
          
//next button
if (!($start >=$foundnum-$per_page))
echo 
" <a href='search.php?search=$search&submit=Search+source+code&start=$next'>Next</a> ";    
}   
echo 
"</center>";


?>
Gracias por tomarse su tiempo para ayudarme.

Última edición por conromx; 24/07/2014 a las 15:25

Etiquetas: mysql, select, siguiente
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 16:18.