Foros del Web » Programando para Internet » PHP »

Limitar Región

Estas en el tema de Limitar Región en el foro de PHP en Foros del Web. Hola a todos, soy nuevo aquí. Me habéis ayudado en diversas ocasiones para mejorar mi página web, y ahora necesito ayuda, así que me he ...
  #1 (permalink)  
Antiguo 25/12/2008, 17:16
Avatar de alemuro  
Fecha de Ingreso: diciembre-2008
Ubicación: Barcelona
Mensajes: 56
Antigüedad: 15 años, 4 meses
Puntos: 0
Limitar Región

Hola a todos, soy nuevo aquí.
Me habéis ayudado en diversas ocasiones para mejorar mi página web, y ahora necesito ayuda, así que me he registrado.

Ante todo, gracias a todos los que me respondais al mensaje, y felizes fiestas de navidad a todos.

Hace poco busqué cómo coger diversas columnas de diversas tablas a la vez, me encontré con una respuesta de un usuario de éste foro. Está adaptado a mi página web, y ahora, el problema es que necesito crear un limite de región, es decir, que no me muestre más de 5 (por ejemplo).

El código es el siguiente:
Código PHP:
$res=mysql_query("select a.amigo, a.user, a.ok, u.usuario, u.imagen, u.nombre, u.apellido, u.ano, u.estado, u.nivel
from amigos a join usuarios u on (u.usuario=a.amigo)"
); 
Y el código para mostrar un dato de éste juego de registros es:
Código PHP:
<?php echo $row['amigo'?>
De momento no he encontrado nada en internet, os agradezco la ayuda.

Última edición por alemuro; 25/12/2008 a las 17:23
  #2 (permalink)  
Antiguo 25/12/2008, 17:41
 
Fecha de Ingreso: febrero-2006
Mensajes: 858
Antigüedad: 18 años, 2 meses
Puntos: 4
Respuesta: Limitar Región

solo agrega a tu codigo
limit 0,5

saludos y feliz navidad!:)
__________________
*La amistad se multiplica cuando se divide*
  #3 (permalink)  
Antiguo 25/12/2008, 17:48
Avatar de alemuro  
Fecha de Ingreso: diciembre-2008
Ubicación: Barcelona
Mensajes: 56
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Limitar Región

Gracias por ayudar-me reimonfranco.
Ahora lo pruebo.
  #4 (permalink)  
Antiguo 25/12/2008, 17:55
 
Fecha de Ingreso: febrero-2006
Mensajes: 858
Antigüedad: 18 años, 2 meses
Puntos: 4
Respuesta: Limitar Región

ok cualquier duda avisa (:
__________________
*La amistad se multiplica cuando se divide*
  #5 (permalink)  
Antiguo 25/12/2008, 18:08
Avatar de alemuro  
Fecha de Ingreso: diciembre-2008
Ubicación: Barcelona
Mensajes: 56
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Limitar Región

El código funciona de maravilla, pero tengo un problema :(

El juego de registros lo que hace es cargar las tablas "usuarios" y "amigos", entonces al repetir región pongo un código para que muestre los amigos del usuario X.
Código PHP:
if ($row['user']==$_GET['user']){ 
Al poner tu código, lo que hace es filtrar a los 5 primeros usuarios, y lo que me gustaría es que se mostraran los 5 primeros amigos en relacion con el usuario.
¿Se podría hacer?
Perdón por no mencionar antes ésta parte jeje.

Así és cómo he adaptado el código que me has dado.
Código PHP:
$res=mysql_query("select a.amigo, a.user, a.ok, u.usuario, u.imagen, u.nombre, u.apellido, u.ano, u.estado, u.nivel
from amigos a join usuarios u on (u.usuario=a.amigo)"
); 
Gracias.
  #6 (permalink)  
Antiguo 25/12/2008, 18:37
 
Fecha de Ingreso: febrero-2006
Mensajes: 858
Antigüedad: 18 años, 2 meses
Puntos: 4
Respuesta: Limitar Región

que tal alemuro,

utiliza la clausula WHERE

por ejemplo para lo que dices de mostrar los 5 primeros amigos en relacion con el usuario se podria hacer algo asi:

select.... where idDEusuario='1' LIMIT 0,5

saludos
__________________
*La amistad se multiplica cuando se divide*
  #7 (permalink)  
Antiguo 25/12/2008, 18:49
Avatar de alemuro  
Fecha de Ingreso: diciembre-2008
Ubicación: Barcelona
Mensajes: 56
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Limitar Región

Gracias, creo que mas o menos lo he entendido, puse:
Código PHP:
$res=mysql_query("select a.amigo, a.user, a.ok, u.usuario, u.imagen, u.nombre, u.apellido, u.ano, u.estado, u.nivel where u.usuario=a.amigo LIMIT 0,5
from amigos a join usuarios u on (u.usuario=a.amigo)"
); 
Entonces el problema me lo dió en la linia dónde está la línia del while de repetir región:
Código PHP:
} while($row=mysql_fetch_assoc($res)) 
Código HTML:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/www/xxxxxx/sys/templates/profile2_content.php on line 228
Por lo que entiendo que el fallo está en lo de $res.
La verdad es que estoy un poco perdido en el tema de MySQL...

Saludos ;)
  #8 (permalink)  
Antiguo 25/12/2008, 19:26
 
Fecha de Ingreso: noviembre-2008
Ubicación: lima
Mensajes: 148
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Limitar Región

hola alemuro.

El problema que te da el while es por que la sentencia sql que ejecutaste te esta, devolviendo un valor vacio... y no es xq no halla resgistro con esas caracteristicas sino xq estas usando mal el sql.

Prueba esto.

Código PHP:
$amigo=$_GET['user'];

$sql="select a.amigo, a.user, a.ok, u.usuario, u.imagen, u.nombre, u.apellido, u.ano, u.estado, u.nivel from amigos a, usuarios u where (u.usuario='$amigo') limit0,5 ";

$result mysql_query($sql);

//ahora

while($row=mysql_fetch_row($result)
{
//instrucciones

Suerte...bye

Última edición por fiorella_liz; 25/12/2008 a las 19:28 Razón: me olvide el limit
  #9 (permalink)  
Antiguo 26/12/2008, 05:22
Avatar de alemuro  
Fecha de Ingreso: diciembre-2008
Ubicación: Barcelona
Mensajes: 56
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Limitar Región

Gracias fiorella_liz.
Pero... ¿a instrucciones que he de poner?

He puesto esto junto a los demás juegos de registros.
Código PHP:
$amigo=$_GET['user'];
$sql="select a.amigo, a.user, a.ok, u.usuario, u.imagen, u.nombre, u.apellido, u.ano, u.estado, u.nivel from amigos a, usuarios u where (u.usuario='$amigo') limit0,5 ";
$result mysql_query($sql); 
Y luego he puesto:
Código PHP:
do{
//las cosas que se repiten...
} while($row=mysql_fetch_assoc($result)) 
Me da el mismo error

Saludos.
Gracias
  #10 (permalink)  
Antiguo 26/12/2008, 05:51
 
Fecha de Ingreso: agosto-2007
Mensajes: 101
Antigüedad: 16 años, 8 meses
Puntos: 1
Respuesta: Limitar Región

Porque metes el where entre () ???

Código PHP:
$sql="select a.amigo, a.user, a.ok, u.usuario, u.imagen, u.nombre, u.apellido, u.ano, u.estado, u.nivel from amigos a, usuarios u where u.usuario='$amigo' limit0,5 "
do{ 
//las cosas que se repiten... 
} while($row=mysql_fetch_assoc($result)) {



yo lo haria asi...
Código PHP:
$sql="select * from amigos where u.usuario='$amigo' limit0,5 "
do{ 
//las cosas que se repiten... 
} while($row=mysql_fetch_assoc($result)) {



te he modificado tambien el from porque supongo que querras llamar a la tabla amigos.

Sino es asi dimelo, dime a que tabla quieres hacer la consulta los parametros del where y te lo hago. Saludos

P.D: supongo que anteriormente estas conectando con la base de datos no??? saludos
  #11 (permalink)  
Antiguo 26/12/2008, 06:10
Avatar de alemuro  
Fecha de Ingreso: diciembre-2008
Ubicación: Barcelona
Mensajes: 56
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Limitar Región

Si haber, estoy haciendo una página web en la que puedes añadir amigos (tabla amigos).
La idea es que al entrar a la página de "perfil" de usuario, salgan 5 amigos suyos, y que junto a los amigos se muestren los datos, y aquí es donde tengo el problema.

Conseguí mostrar los datos de la tabla usuario y amigos a la vez pero por desgracia
no consigo poner el LIMIT, que és aquí donde está el problema.

Yo considerava que éste código cogía ya los datos de la base de datos...
estoy echo un lío

Gracias por la ayuda
  #12 (permalink)  
Antiguo 26/12/2008, 07:09
 
Fecha de Ingreso: agosto-2007
Mensajes: 101
Antigüedad: 16 años, 8 meses
Puntos: 1
Respuesta: Limitar Región

haber las tablas estan dentro de la base de datos, ahora bien, yo nunca hago una consulta doble, es mas desconocia de su existencia. Te explico mi idea:

Primero pondria el perfil del usuario, y luego los amigos..Pongo codigo y te explico

Código PHP:
$amigo=$_GET['user']; //con esto cogemos el valor de la variable que se pasa por URL.
$resultadosmysql_query "SELECT * FROM amigos  WHERE usuario='$amigo' limit0,5 "$link//aqui creamos la consulta a la tabla amigos en la cual le decimos que nos saque solo los registros en los cuales en el campo "usuario" sean igual a la variable $amigo, y con el limit lo estamos limitando a mostrar solo 5 registros
WHILE ($row mysql_fetch_array($resultados)){
$row['nombre'];
//aqui mostrariamos los datos de la tabla amigos

  #13 (permalink)  
Antiguo 26/12/2008, 11:28
Avatar de alemuro  
Fecha de Ingreso: diciembre-2008
Ubicación: Barcelona
Mensajes: 56
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Limitar Región

¿Y dónde lo pongo?
Es que este és el otro problema, no sé si lo he de poner arriba dónde hay los demás juegos de registros, o si lo he de poner con el do{ del repetir región o con el }while del repetir región.

He probado éste código y me ha salido el error:

Código:
Parse error: parse error, unexpected '\"
en la segunda línia.

Saludos y gracias
  #14 (permalink)  
Antiguo 26/12/2008, 12:57
 
Fecha de Ingreso: noviembre-2008
Ubicación: lima
Mensajes: 148
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Limitar Región

hola alemuro, creo que te podriamos ayudar mejor si pones tu código.
Dime, porque usas el do-while?.

Y con respecto de las instrucciones que puse como comentario es para que pongas las cosas que que querias hacer mientras seejecutaba el while... mmm no sé derrepente imprimir sus datos.
bueno, explícate mejor y con gusto te ayudo.

Saludos

Última edición por fiorella_liz; 26/12/2008 a las 13:00 Razón: me olvide de los amigos :)
  #15 (permalink)  
Antiguo 26/12/2008, 13:22
Avatar de alemuro  
Fecha de Ingreso: diciembre-2008
Ubicación: Barcelona
Mensajes: 56
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Limitar Región

Cita:
Iniciado por fiorella_liz Ver Mensaje
hola alemuro, creo que te podriamos ayudar mejor si pones tu código.
Dime, porque usas el do-while?.

Y con respecto de las instrucciones que puse como comentario es para que pongas las cosas que que querias hacer mientras seejecutaba el while... mmm no sé derrepente imprimir sus datos.
bueno, explícate mejor y con gusto te ayudo.

Saludos
Oks perdona jeje

Haber uso dreamweaver, y el dw al querer repetir una región como sabréis usa el "DO{" y el "}WHILE(".
Pues nose, pero me parecía que para mostrar los datos esos de usuario-amigos pues se necesitaba hacer ésto, cómo el resto de los casos en dw.

NO TENGO NI IDEA de cómo se hace para hacer repetir una región de otra manera, y menos con un juego de registros de éste tipo. Yo soy de esos que mientras el DW te pueda ayudar pues que lo haga jejeje. Y por ésto estoy aquí, para intentar hacer un juego de registros que me una las dos tablas de la base de datos y para que me muestre un tope de 5 registros.
Sé PHP pero ésto no

Muchísimas gracias a todos
Saludos

PD: Ahora que me has dicho ésto de las instrucciones jeje creo que ya se cómo ponerlo. Gracias.
  #16 (permalink)  
Antiguo 26/12/2008, 13:38
Avatar de alemuro  
Fecha de Ingreso: diciembre-2008
Ubicación: Barcelona
Mensajes: 56
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Limitar Región

Código PHP:
$amigo=$_GET['user'];

$sql="select a.amigo, a.user, a.ok, u.usuario, u.imagen, u.nombre, u.apellido, u.ano, u.estado, u.nivel from amigos a, usuarios u where (u.usuario='$amigo') limit0,5 ";

$result mysql_query($sql);

//ahora

while($row=mysql_fetch_row($result)
{
//instrucciones

Me da error en el { de después del while
  #17 (permalink)  
Antiguo 26/12/2008, 13:52
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Limitar Región

Es es porque te falta un parentesis de cierre despues del mysql_fetch_row.

Saludos.
  #18 (permalink)  
Antiguo 26/12/2008, 14:06
Avatar de alemuro  
Fecha de Ingreso: diciembre-2008
Ubicación: Barcelona
Mensajes: 56
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Limitar Región

Cita:
Iniciado por GatorV Ver Mensaje
Es es porque te falta un parentesis de cierre despues del mysql_fetch_row.

Saludos.
jejeje vaya fallo jajaja
pues ahora el error es otro ...
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL
ahora es con lo del $result

saludos
  #19 (permalink)  
Antiguo 26/12/2008, 14:19
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Limitar Región

Imprime el valor de mysql_error() eso te indica el posible fallo.

Saludos.
  #20 (permalink)  
Antiguo 26/12/2008, 14:57
Avatar de alemuro  
Fecha de Ingreso: diciembre-2008
Ubicación: Barcelona
Mensajes: 56
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Limitar Región

muchas gracias!
evidentemente sí que me dió le fallo.

El problema era el "LIMIT 0,5", ahora tengo otro problema...
Necesito que me coja los registros de TODOS los amigos que tiene el usuario, y que luego me lo limite a 5.

Ahora tal y como tengo el código no me sale NINGÚN AMIGO, no se porqué és... alomejor és porque el código para que se muestren los resultados está mal...
mirad el código y decirme si tengo algo mal porfavor

Código PHP:
$amigo=$_GET['user'];
$sql="select a.amigo, a.user, a.ok, u.usuario, u.imagen, u.nombre, u.apellido, u.ano, u.estado, u.nivel //se cogen las columnas de las dos tablas
from amigos a, usuarios u where (a.user='$amigo')"
//la columna de usuario que ha agregado al otro usuario es igual al GET user de la URL.
$result mysql_query($sql);

//luego
while($row=mysql_fetch_row($result)){ //empieza el repetir región
//las cosas que se repiten como por ejemplo
echo $row['amigo'//el nombre del usuario del amigo
//termina el repetir región 
Saludos
  #21 (permalink)  
Antiguo 27/12/2008, 00:17
 
Fecha de Ingreso: febrero-2006
Mensajes: 858
Antigüedad: 18 años, 2 meses
Puntos: 4
Respuesta: Limitar Región

Que tal, primaremente agregale el ; al echo ,, asi :

echo $row['amigo'];


Y quita estos comentarios:
//se cogen las columnas de las dos tablas

Por que los estás poniendo en medio de codigo..

saludos;)
__________________
*La amistad se multiplica cuando se divide*
  #22 (permalink)  
Antiguo 27/12/2008, 06:19
Avatar de alemuro  
Fecha de Ingreso: diciembre-2008
Ubicación: Barcelona
Mensajes: 56
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Limitar Región

Cita:
Iniciado por reimonfranco Ver Mensaje
Que tal, primaremente agregale el ; al echo ,, asi :

echo $row['amigo'];


Y quita estos comentarios:
//se cogen las columnas de las dos tablas

Por que los estás poniendo en medio de codigo..

saludos;)
Es verdad, habia dejado los ; , pero de todas maneras sigue saliendome en blanco...

Seguro que es $row ?

Gracias, saludos.
  #23 (permalink)  
Antiguo 27/12/2008, 06:38
Avatar de alemuro  
Fecha de Ingreso: diciembre-2008
Ubicación: Barcelona
Mensajes: 56
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Limitar Región

Hice esto:
Código PHP:
$sql="select a.amigo, a.user, a.ok, u.usuario, u.imagen, u.nombre, u.apellido, u.ano, u.estado, u.nivel from amigos a, usuarios u where a.user={$_GET['user']}";
$result mysql_query($sql); 
Y al imprimir el error me dió el error de Unknown column 'alemur' in 'where clause' ...
Y eso que la web es .php?user=alemuro

¿alguien sabe porqué éste fallo?
  #24 (permalink)  
Antiguo 29/12/2008, 08:35
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Limitar Región

Alemuro:
Tú escribes esto:
Cita:
//luego
while($row=mysql_fetch_row($result)){ //empieza el repetir región
//las cosas que se repiten como por ejemplo
echo $row['amigo'] //el nombre del usuario del amigo
} //termina el repetir región
Pero no puedes usar $row['amigo'] con mysql_fetch_row; tendrías que usarlo con $row=mysql_fetch_assoc o $row=mysql_fetch_array. Cambia mysql_fetch_row por mysql_fetch_assoc($result); o si quieres usar mysql_fetch_row usa $row[0] si amigo es el primer campo de la selección. Pero yo te aconsejo usar mysql_fetch_assoc.

Cita:
$sql="select a.amigo, a.user, a.ok, u.usuario, u.imagen, u.nombre, u.apellido, u.ano, u.estado, u.nivel from amigos a, usuarios u where a.user={$_GET['user']}";
$result = mysql_query($sql);
Aquí veo varios problemas:
1) estás seleccionando campos de dos tablas sin cruzarlas. Tendrías que usar un INNER JOIN por el campo que correspondiera entre amigos y usuarios.
2) El ... where a.user={$_GET['user']}"; debería aparecer así where a.user='{$_GET['user']}'"; No olvides que sigue tratándose de una cadena.

$sql="select a.amigo, a.user, a.ok, u.usuario, u.imagen, u.nombre, u.apellido, u.ano, u.estado, u.nivel from amigos a INNER JOIN usuarios u ON a.campoamigos = u.campousuarios where a.user='{$_GET['user']}'";
$result = mysql_query($sql);
while($row=mysql_fetch_assoc($result)){ //empieza el repetir región
//las cosas que se repiten como por ejemplo
echo $row['amigo'] //el nombre del usuario del amigo
}

Sólo deberías cambiar campoamigos y campousuarios por los campos de amigos y usuarios con los que estableces la relación entre las tablas.

Última edición por jurena; 30/12/2008 a las 01:43
  #25 (permalink)  
Antiguo 29/12/2008, 10:39
Avatar de alemuro  
Fecha de Ingreso: diciembre-2008
Ubicación: Barcelona
Mensajes: 56
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Limitar Región

muchas muchas muchas gracias.
Tu código me funcionó.
La verdad no sabia lo del mysql_fetch_row y mysql_fetch_assoc, y no me dí cuenta de las comillas en lo del $_GET.

Muchas gracias.
Saludos ;)
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:43.