Foros del Web » Programando para Internet » PHP »

[Últimos 10 Resultados] Php y SQL, no salen =(

Estas en el tema de [Últimos 10 Resultados] Php y SQL, no salen =( en el foro de PHP en Foros del Web. Hola que tal gente Aviso que Como nose si es un problema de sql o php, lo puse en php. Tengo un problema el cual, ...

  #1 (permalink)  
Antiguo 17/05/2011, 09:23
 
Fecha de Ingreso: octubre-2009
Mensajes: 84
Antigüedad: 14 años, 6 meses
Puntos: 0
Pregunta [Últimos 10 Resultados] Php y SQL, no salen =(

Hola que tal gente

Aviso que Como nose si es un problema de sql o php, lo puse en php.


Tengo un problema el cual, tengo que sacar los 10 ultimos post de cada usuario y que se visualice en su perfil.

en profile.php hice este codigo:


Código PHP:
        $articulos $db->get_row($db->query("SELECT title, date FROM ".PREFIX."_post WHERE autor='".$row['name']."' order by date DESC LIMIT 10"));
        if(
$articulos['title']) $tpl->set'{articulos}'$articulos['title'] );
        else  
$tpl->set'{articulos}''No hay actividad reciente'); // Si no hay articulos 

El WHERE, es porque en profile el nombre de cada usuario se define como "NAME" y en la tabla post como "AUTHOR"

La cosa es que digo que me muesre 10 resultados, pero tan solo me muetra 1 por usuario.

¿Que puede ser?

Saludos !
  #2 (permalink)  
Antiguo 17/05/2011, 09:27
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: [Últimos 10 Resultados] Php y SQL, no salen =(

podrías mostrar el resto del código? creo que el problema esta en alguna de estas 2 cosas:

1.- la primera sentencia anidada.
2.- no estas usando while para leer los datos.
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #3 (permalink)  
Antiguo 17/05/2011, 09:27
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: [Últimos 10 Resultados] Php y SQL, no salen =(

tu metodo db->getrow trae muchos renglones? no veo que iteres , como dice ahi
getrow es obten renglon , osease uno , no tendras un metodo getall?
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #4 (permalink)  
Antiguo 17/05/2011, 10:02
 
Fecha de Ingreso: octubre-2009
Mensajes: 84
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: [Últimos 10 Resultados] Php y SQL, no salen =(

Es que profile.php son mas de 500 liñas... No se que parte del codigo quieren ver, sigo sin conseguir que funciona ya que en ves de mostrarme 10 resultados, muestra 1 :(
  #5 (permalink)  
Antiguo 17/05/2011, 10:07
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: [Últimos 10 Resultados] Php y SQL, no salen =(

mira normalmente cuando se quiere devolver varias lineas de un resultset se utiliza un while para recorrelo

http://mx.php.net/manual/en/function...etch-array.php

veo que utilizas un metodo getrow , en adodb getrow te regresa un arreglo de solo un renglon
http://www.lacorona.com.mx/fortiz/ad...-es.htm#getrow

por eso te preguntaba si no tienes un metodo que te devuelva todos los renglones y columnas

como tipo este:
http://www.lacorona.com.mx/fortiz/ad...-es.htm#getall
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #6 (permalink)  
Antiguo 17/05/2011, 10:23
 
Fecha de Ingreso: octubre-2009
Mensajes: 84
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: [Últimos 10 Resultados] Php y SQL, no salen =(

Bueno utilice while asi:


$articulos = $db->query("SELECT title, date FROM ".PREFIX."_post WHERE autor='".$row['name']."' order by date DESC LIMIT 0,10");
while ($row = $db->get_row($articulos)) {
$tpl->set('{articulos}', $row['title']);
}


Y tampoco :(
  #7 (permalink)  
Antiguo 17/05/2011, 10:35
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: [Últimos 10 Resultados] Php y SQL, no salen =(

puedes mostrar el codigo de tu metodo getrow por favor?
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #8 (permalink)  
Antiguo 17/05/2011, 10:40
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: [Últimos 10 Resultados] Php y SQL, no salen =(

y si lo haces sin clases? es mas fácil:

$MQ=mysql_query("SELECT title, date FROM ".PREFIX."_post WHERE autor='".$row['name']."' order by date DESC LIMIT 10");
while($articulos =mysql_fetch_array($MQ)){
if($articulos['title']) $tpl->set( '{articulos}', $articulos['title'] );
else $tpl->set( '{articulos}', 'No hay actividad reciente');
}
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #9 (permalink)  
Antiguo 17/05/2011, 10:50
 
Fecha de Ingreso: octubre-2009
Mensajes: 84
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: [Últimos 10 Resultados] Php y SQL, no salen =(

Cita:
Iniciado por mogurbon Ver Mensaje
puedes mostrar el codigo de tu metodo getrow por favor?
Es que no lo se, lo siento, uso un script Datalife Engine, y nose donde se encontrara

- Tampoco me funciono, sigue mostrando 1 resultado ¬¬ ya me esta artando porque puse como 10 códigos y siempre muestra 1 solo, el ultimo :@
  #10 (permalink)  
Antiguo 17/05/2011, 10:59
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: [Últimos 10 Resultados] Php y SQL, no salen =(

mira la cosa es precisamente razonar que es lo que haces tranquilizate y hay que razonar, tu metodo getrow que en español significa obten renglon , siempre te traera un renglon , por que asi sirve el metodo , asi lo pegaras 15 veces las 15 veces siempre te traera solo un renglon , como te puso stramin, el resultado debe ser iterado ya sea con la conexion de mysql directa o buscar en la documentacion de Datalife Engine un metodo getall
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #11 (permalink)  
Antiguo 17/05/2011, 11:12
 
Fecha de Ingreso: octubre-2009
Mensajes: 84
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: [Últimos 10 Resultados] Php y SQL, no salen =(

Mira por ej:

Para hacer un TOP comentaristas hice el siguiente codigo y me trajo 10 resultados:

Código:
<?php

if(!defined('DATALIFEENGINE'))
{
  die("Hacking attempt!");
}

$ncomentarios = dle_cache("ncomentarios", $config['skin']);
$sql = $db->query("SELECT user_id, name, foto, comm_num FROM ".PREFIX."_users order by comm_num DESC LIMIT 0,10");
while ($row = $db->get_row($sql)) {
if ($config['allow_alt_url'] == "yes") {
$userlink = "<a href=\"".$config['http_home_url']."usuario/".urlencode($row['name'])."/\">";
} else {
$userlink = "<a href=\"$PHP_SELF?subaction=userinfo&user=".urlencode($row['name'])."/\">";
}
if ($row['foto'] !== "")
$ava = "{$userlink}<img src=\"".$config['http_home_url']."uploads/fotos/".$row['foto']."\" align=\"center\" width=\"25\" </a>";
else
$ava = "{$userlink}<img src=\"/images/noavatar.png\" align=\"center\" width=\"25\"></a>";
$nohtml = "'<[\/\!]*?[^<>]*?>'si";
$tpl->load_template('ncomentarios.tpl');
$tpl->set('{ava}', $ava);
$tpl->set('{nickname}', $userlink.$row['name'].'</a>');
$tpl->set('{comm_num}', $row['comm_num']);
$tpl->compile('ncomentarios');
$tpl->clear();
}
$db->free();
?>

Quice hacer algo similar, nada mas que mostrando las ultimas 10 actividades y no no funciona, la verdad estoy indignado u.u
  #12 (permalink)  
Antiguo 17/05/2011, 11:52
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: [Últimos 10 Resultados] Php y SQL, no salen =(

ok y el codigo que no funciona tambien tiene su while?
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #13 (permalink)  
Antiguo 17/05/2011, 11:57
 
Fecha de Ingreso: mayo-2011
Ubicación: La Luna
Mensajes: 84
Antigüedad: 12 años, 11 meses
Puntos: 6
Respuesta: [Últimos 10 Resultados] Php y SQL, no salen =(

ese metodo es de la clase eZSQL (muy buena por cierto) y obtiene un valor si quieres mostrar
todo deberias usar

Cita:
$db->get_results
  #14 (permalink)  
Antiguo 17/05/2011, 11:58
 
Fecha de Ingreso: octubre-2009
Mensajes: 84
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: [Últimos 10 Resultados] Php y SQL, no salen =(

$articulos = $db->query("SELECT title, date FROM ".PREFIX."_post WHERE autor='".$row['name']."' order by date DESC LIMIT 0,10");
while ($row = $db->get_row($articulos)) {
$tpl->set('{articulos}', $row['title']);
}


Exactamente tiene while
  #15 (permalink)  
Antiguo 17/05/2011, 12:03
 
Fecha de Ingreso: octubre-2009
Mensajes: 84
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: [Últimos 10 Resultados] Php y SQL, no salen =(

Probe nuevamente con el codigo inicial


$articulos = $db->get_results($db->query("SELECT title, date FROM ".PREFIX."_post WHERE autor='".$row['name']."' order by date DESC LIMIT 10"));
if($articulos['title']) $tpl->set( '{articulos}', $articulos['title'] );
else $tpl->set( '{articulos}', 'No hay actividad reciente'); // Si no hay articulos

Agregandole como me pablo $db->get_results y tampoco


Fatal error: Call to undefined method db::get_results() in /home/wareszco/public_html/engine/modules/profile.php on line 311
  #16 (permalink)  
Antiguo 17/05/2011, 12:04
 
Fecha de Ingreso: mayo-2011
Ubicación: La Luna
Mensajes: 84
Antigüedad: 12 años, 11 meses
Puntos: 6
Respuesta: [Últimos 10 Resultados] Php y SQL, no salen =(

puedes colgar el script en algun server para verlo mejor
  #17 (permalink)  
Antiguo 17/05/2011, 12:09
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: [Últimos 10 Resultados] Php y SQL, no salen =(

Cita:
Iniciado por martin0290 Ver Mensaje
$articulos = $db->query("SELECT title, date FROM ".PREFIX."_post WHERE autor='".$row['name']."' order by date DESC LIMIT 0,10");
while ($row = $db->get_row($articulos)) {
$tpl->set('{articulos}', $row['title']);
}


Exactamente tiene while
ok noconozco bien tu sistema de plantillas pero en smarty para asignar varios valores debes pasar un arraglo y luego iterarlo

http://www.smarty.net/docsv2/es/lang...on.foreach.tpl

si no puede ser que a una variable le estes cambiando el valor a la varoable articulos, el unico renglon que te imprime es el ultimo de tu consulta?
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #18 (permalink)  
Antiguo 17/05/2011, 12:10
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: [Últimos 10 Resultados] Php y SQL, no salen =(

Cita:
Iniciado por pabloaguero2010 Ver Mensaje
puedes colgar el script en algun server para verlo mejor
opino igual, creo que debe ser un problema simple, pero no nos estas facilitando lo necesario, necesitamos ver como están construidos esos métodos y como muestras luego los resultados.

no podemos saber si un animal es macho o hembra si solo nos muestras un mechón de pelo XD
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #19 (permalink)  
Antiguo 17/05/2011, 12:11
 
Fecha de Ingreso: octubre-2009
Mensajes: 84
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: [Últimos 10 Resultados] Php y SQL, no salen =(

Si pero digo no mas... Son mas de 500 liñas y no creo que tengan ganas de verlo jaja.

http://www.mediafire.com/?sc8vb4t5lnxffpn

-> Liña 311 esta el codigo con get_results
  #20 (permalink)  
Antiguo 17/05/2011, 12:13
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: [Últimos 10 Resultados] Php y SQL, no salen =(

demonios!, no puedo acceder a ese servidor desde mi trabajo, esta bloqueado...

y supongo que todos los demás servidores de descarga están bloqueados también
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #21 (permalink)  
Antiguo 17/05/2011, 12:15
 
Fecha de Ingreso: octubre-2009
Mensajes: 84
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: [Últimos 10 Resultados] Php y SQL, no salen =(

http://www.friendpaste.com/3HCFQsnRKIE5oOtf1QtEcu

Este es newpaste, esta puesto el codigo
  #22 (permalink)  
Antiguo 17/05/2011, 13:20
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: [Últimos 10 Resultados] Php y SQL, no salen =(

no le veo while

Código PHP:
 $articulos $db->get_results($db->query("SELECT title, date FROM ".PREFIX."_post WHERE autor='".$row['name']."' order by date DESC LIMIT 10")); 
        if(
$articulos['title']) $tpl->set'{articulos}'$articulos['title'] ); 
        else  
$tpl->set'{articulos}''No hay actividad reciente'); // Si no hay articulos 
y es $db-query y despues $db->get_results?
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #23 (permalink)  
Antiguo 17/05/2011, 13:45
 
Fecha de Ingreso: octubre-2009
Mensajes: 84
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: [Últimos 10 Resultados] Php y SQL, no salen =(

es que tambien lo puse con while, con el codigo de mas arriba+


$articulos = $db->query("SELECT title, date FROM ".PREFIX."_post WHERE autor='".$row['name']."' order by date DESC LIMIT 0,10");
while ($row = $db->get_row($articulos)) {
$tpl->set('{articulos}', $row['title']);
}


Y tampoco funciono
  #24 (permalink)  
Antiguo 17/05/2011, 14:56
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: [Últimos 10 Resultados] Php y SQL, no salen =(

Cita:
Iniciado por martin0290 Ver Mensaje
es que tambien lo puse con while, con el codigo de mas arriba+


$articulos = $db->query("SELECT title, date FROM ".PREFIX."_post WHERE autor='".$row['name']."' order by date DESC LIMIT 0,10");
while ($roucin = $db->get_row($articulos)) {
$tpl->set('{articulos}', $row['title']);
}


Y tampoco funciono
ok no le pongas $row a este segundo , por que ya esta dentro de otro bucle al que igual le dices row
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #25 (permalink)  
Antiguo 17/05/2011, 15:12
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: [Últimos 10 Resultados] Php y SQL, no salen =(

el while es obligatorio (o en su defecto un for(), do while(), etc)

a ver intenta esto:

Código PHP:
Ver original
  1. $sql = $db->query("SELECT title, date FROM ".PREFIX."_post WHERE autor='".$row['name']."' order by date DESC LIMIT 10");
  2. while ($articulos = $db->get_row($sql)) {
  3.         if($articulos['title']) $tpl->set( '{articulos}', $articulos['title'] );  
  4.         else  $tpl->set( '{articulos}', 'No hay actividad reciente'); // Si no hay articulos
  5. }
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #26 (permalink)  
Antiguo 17/05/2011, 15:13
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: [Últimos 10 Resultados] Php y SQL, no salen =(

Código PHP:
Ver original
  1. $articulos = $db->query("SELECT title, date FROM ".PREFIX."_post WHERE autor='".$row['name']."' order by date DESC LIMIT 0,10");
  2. while ($row = $db->get_row($articulos)) {
  3.        $tpl->set('{articulos}', $row['title']);
  4. }

El problema no es la consulta en si misma, sino la asignacion de los datos en la plantilla que siempre sobreescriben el anterior y por eso siempre obtienes el ultimo registros.

Lo que estas haciendo es lo mismo que:
Código PHP:
Ver original
  1. $datos = array();
  2. $articulos = $db->query("SELECT title, date FROM ".PREFIX."_post WHERE autor='".$row['name']."' order by date DESC LIMIT 0,10");
  3. while ($roucin = $db->get_row($articulos)) {
  4.          $datos['{articulos}'] = $row['title'];
  5. }

Siempre habra solo un elemento $datos['{articulos}'] que cambia de valor en cada iteracion.

Solucion?... no lo se, depende del sistema de plantillas que usas y si tiene soporte para este tipo de aplicaciones.
__________________
- León, Guanajuato
- GV-Foto
  #27 (permalink)  
Antiguo 17/05/2011, 15:44
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 14 años, 7 meses
Puntos: 44
Respuesta: [Últimos 10 Resultados] Php y SQL, no salen =(

while ($roucin = $db->get_row($articulos)) {
$datos['{articulos}'] = $row['title'];
echo $row['title'];
}

pon esa linea i te fijas q va poniendo en cada iteracion
  #28 (permalink)  
Antiguo 17/05/2011, 18:16
 
Fecha de Ingreso: octubre-2009
Mensajes: 84
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: [Últimos 10 Resultados] Php y SQL, no salen =(

Respondo general: El {articulos} precisamente lo llamo en mi template, es decir en userinfo.tpl, es un archivo HTML, y cuando pongo {articulos} tendrian que salir los ultimos resultados.

Cita:
while ($roucin = $db->get_row($articulos)) {
$datos['{articulos}'] = $row['title'];
echo $row['title'];
}

pon esa linea i te fijas q va poniendo en cada iteracion

No funciona =(, es mas ni siquiera sale 1 resultado, este tema ya me esta cansando :@ no puede ser que de tannntos problemas!
  #29 (permalink)  
Antiguo 17/05/2011, 21:20
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: [Últimos 10 Resultados] Php y SQL, no salen =(

Ok, entonces supongo que tendiras que armar '{articulos}' como un bloque HTML y no como variables en un bucle, algo como:

Código PHP:
Ver original
  1. $articulos = '';
  2. $result = $db->query("SELECT title, date FROM ".PREFIX."_post WHERE autor='".$row['name']."' order by date DESC LIMIT 0,10");
  3. while ($row = $db->get_row($articulos)) {
  4.        $articulos .= "<div>{$row['title']}</div>\n";
  5. }
  6. $tpl->set('{articulos}', $articulos);

Imagino que tendras que crear enlaces y tambien verificar si $articulos es una cadena vacia (no hay articulos del usuario) para mostrar el mensaje adecuado.
__________________
- León, Guanajuato
- GV-Foto
  #30 (permalink)  
Antiguo 17/05/2011, 22:23
 
Fecha de Ingreso: octubre-2009
Mensajes: 84
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: [Últimos 10 Resultados] Php y SQL, no salen =(

Lo que descubri con este codigo:

Código:
$sql = $db->query("SELECT title, date FROM ".PREFIX."_post WHERE autor='".$row['name']."' order by date DESC LIMIT 10");
while ($articulos = $db->get_row($sql)) {
        if($articulos['title']) $tpl->set( '{articulos}', $articulos['title'] );  
        else  $tpl->set( '{articulos}', 'No hay actividad reciente'); // Si no hay articulos 
}

Es que cuando pongo el LIMIT, se refiere al ultimo articulo, es decir si pongo LIMIT 10, va al articulo numero 10 empesando del ultimo y no del primero contando para abajo, nose si me explico.

Ej: Si pongo 1 va a mostrar el ultimo articulo creado por el usuario, si pongo 2 va a mostrar el ante ultimo y así sucesivamente

Es decir que tendria que poner 10 veces el mismo codigo, nada mas que cambiando el limit 1,2,3,4,5,6,7,8,9,10

Eso esta muy mal, es muchisima carga pero asi funcionaria :S


Cita:
Iniciado por Triby Ver Mensaje

Imagino que tendras que crear enlaces y tambien verificar si $articulos es una cadena vacia (no hay articulos del usuario) para mostrar el mensaje adecuado.
Si si, pero si no puedo mostrar los 10 artículos, todavía no voy a crear los enlaces jaja :P

Última edición por martin0290; 18/05/2011 a las 08:49

Etiquetas: resultados, sql
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 12:48.