Foros del Web » Programando para Internet » PHP »

Ayuda para una consulta

Estas en el tema de Ayuda para una consulta en el foro de PHP en Foros del Web. Hoal, a ver si me pueden echar una mano porque estoy muy verde en estos temas. Bien, resulta que tengo una web de imagenes echa ...
  #1 (permalink)  
Antiguo 30/10/2009, 16:40
 
Fecha de Ingreso: septiembre-2006
Mensajes: 28
Antigüedad: 17 años, 8 meses
Puntos: 0
Ayuda para una consulta

Hoal, a ver si me pueden echar una mano porque estoy muy verde en estos temas.

Bien, resulta que tengo una web de imagenes echa en xoops, y queria que al abrir la pagina mostrase algunos dato de la tabla,

E creado en el servidor una carpeta y e metido los archivos

conexion.php
cerrar_conexion.php
ver.php

Este ultimo contiene el la siguiente consulta.

Código PHP:
<?
<?
include 
"conexion.php";
$result=mysql_query("SELECT COUNT(photo_download) FROM `Tabla_Imagenes` WHERE `photo_download`>0",$conexion)or die (mysql_error());
 echo
"
  <html>
  <body>
  <h3>$result</h3>
  </body>
  </html>"
;
include 
"cerrar_conexion.php";
?>
Colocando un enlace en la pagina de inicio, ejecuto la consulta en una pagina nueva, pero no me da el resultado que me da phpMyAdmin que es igual a 2396

En este caso me da Resource id #3

Y la cuestion es que hago para que cuando se abra la Web muestre automaticamente el contenido correcto de la tabla en alguna zona de la plantilla.

Gracia por anticipado
  #2 (permalink)  
Antiguo 30/10/2009, 17:13
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: Ayuda para una consulta

Te falta hacer un fetch a la consulta.
Osea en $result contenes el query que hiciste a la base de datos. Ahora tenes que asignarle a una variable las tablas que contiene la consulta (que en tu caso parece ser que es una)

Código PHP:
$result=mysql_query("SELECT COUNT(photo_download) AS cantidad FROM `Tabla_Imagenes` WHERE `photo_download`>0",$conexion)or die (mysql_error()); 

if(
$result){
  
$row mysql_fetch_object($result);
  
$resultfinal $row->cantidad;

Y fijate que te da ahora el echo. Tambien fijate que te agregue un "AS cantidad" para hacer referencia al COUNT que pusiste en tu consulta.

Saludos.
  #3 (permalink)  
Antiguo 30/10/2009, 17:44
 
Fecha de Ingreso: septiembre-2006
Mensajes: 28
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Ayuda para una consulta

Hola MarioAraque

Gracias por tu ayuda, e puesto estos cambios, pero ahora me muestra una pagina en blanco.

¿Que ago mal?

Tambien queria que esto se ejecutase al iniciar la Web, sin necesidad de ningun enlace , ya que es para mostrar una informacion fija.


Código PHP:
<?
include "conexion.php";
$result=mysql_query("SELECT COUNT(photo_download) FROM `Tabla_Imagenes` WHERE `photo_download`>0",$conexion)or die (mysql_error());
 
if(
$result){
  
$row mysql_fetch_object($result);
  
$resultfinal $row->cantidad;


echo
"
  <html>
  <body>
  <h3>$resultfinal</h3>
  </body>
  </html>"
;
include 
"cerrar_conexion.php";
?>
Edito Para pedir Perdon
No habia modificado la consulta mysql_query
Funciona perfectament.

ahora solo necesito mostrar esa informacion en la pagina de inicio sin enlace
Muchas gragias

Última edición por obravista; 30/10/2009 a las 17:57
  #4 (permalink)  
Antiguo 30/10/2009, 18:05
Avatar de luis010182  
Fecha de Ingreso: julio-2009
Ubicación: Argentina - Capital Federal
Mensajes: 382
Antigüedad: 14 años, 10 meses
Puntos: 27
Respuesta: Ayuda para una consulta

Código PHP:
<html>
<head>
</head>
<body>
<tabla>
<tr><th>Titulo1</th><th>Titulo2</th><tr>
<?
include "conexion.php";
$result=mysql_query("SELECT COUNT(photo_download) FROM `Tabla_Imagenes` WHERE `photo_download`>0",$conexion)or die (mysql_error());
#cuento las filas
$num_rows mysql_num_rows($tmp);

#si hay filas
if($num_rows){        

    while(
$row mysql_fetch_array($tmpMYSQL_ASSOC)){

        
?><tr><td><?=$row['campo1']?></td><td><?=$row['campo2']?></td><tr><?
    
}

}

#si no hay filas
else{

    
?><tr><td colspan=2>no hay resultado</th><tr><?
}

 

include 
"cerrar_conexion.php";
?> 
</table>
</body>
</html>
Espero que te sirva.
  #5 (permalink)  
Antiguo 30/10/2009, 18:44
 
Fecha de Ingreso: septiembre-2006
Mensajes: 28
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Ayuda para una consulta

No termino de dejarlo bien, se me muestra codigo php en la pagina.
Para que te hagas una idea no (me deja ponerte el enlace a mi web) si te fija encima de la cabecera hay un enlace "Probando"

Y el resultado que muestra, es lo que quiero poner en la tabla que ya existe a la derecha de "Bienvenido Usuario"
  #6 (permalink)  
Antiguo 31/10/2009, 04:39
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: Ayuda para una consulta

obravista no cambiaste lo que te puse en el query

Código PHP:
 $result=mysql_query("SELECT COUNT(photo_download) AS cantidad FROM `Tabla_Imagenes` WHERE `photo_download`>0",$conexion)or die (mysql_error()); 
Si no pones el AS cantidad, no te va a funcionar lo que te puse, porque yo pongo el resultado en base al alias que defino.
Lo que te puso luis010182 puede ser valido, pero el hace echo de dos campos, cuando en el query solo seleccionas 1 (count de photo_download).

Saludos.
  #7 (permalink)  
Antiguo 31/10/2009, 06:09
 
Fecha de Ingreso: septiembre-2006
Mensajes: 28
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Ayuda para una consulta

Hola MarioAraque
La consulta, al final quedaria asi

el resultado al pulsar el enlace seria una pagina en blanco con este resultado
Hay un Total de 24850 Imagenes - Se an descargado 2397 Imagenes



Código PHP:
<?php
include "conexion.php";
$FotoDow=mysql_query("SELECT COUNT(photo_download) AS CantidadDow FROM `extgallery_publicphoto` WHERE `photo_download`>0",$conexion)or die (mysql_error());
$FotoUp=mysql_query("SELECT COUNT(photo_id) AS CantidadUp FROM `extgallery_publicphoto`",$conexion)or die (mysql_error());

if(
$FotoDow){
  
$rowDow mysql_fetch_object($FotoDow);
  
$resultDow $rowDow->CantidadDow;
}

if(
$FotoUp){
  
$rowUp mysql_fetch_object($FotoUp);
  
$resultUp $rowUp->CantidadUp;

    echo
"
   <html>
   <body>
   <td>Hay un Total de <b>$resultUp</b> Imagenes - Se an descargado <b>$resultDow</b> Imagenes</td>
   </body>
   </html>"

include 
"cerrar_conexion.php";
?>
Pero la cuestion es que si meto este codigo en la plantilla them.html

Código PHP:
<?
include "conexion.php";
$FotoDow=mysql_query("SELECT COUNT(photo_download) AS CantidadDow FROM `extgallery_publicphoto` WHERE `photo_download`>0",$conexion)or die (mysql_error());
#cuento las filas
$num_rows mysql_num_rows($tmp);

#si hay filas
if($num_rows){        

    while(
$row mysql_fetch_array($tmpMYSQL_ASSOC)){

        
?><tr><td><?=$row['campo1']?></td><td><?=$row['campo2']?></td><tr><?
    
}

}

#si no hay filas
else{

    
?><tr><td colspan=2>no hay resultado</th><tr><?
}

 

include 
"cerrar_conexion.php";
?>
Para que muestre automaticamente el resultado al iniciar la Web, lo que ocurre es que se muestra todo el codigo del php en donde deberiía aparecer el resultado.

Alguna idea de que no estoy haciendo bien.
Gracias
  #8 (permalink)  
Antiguo 31/10/2009, 07:07
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: Ayuda para una consulta

Porque no probas, mejor, no hacer un echo con las etiquetas HTML, y sacas el tag php y lo escribis a mano?

Código PHP:
<?php
include "conexion.php";
$FotoDow=mysql_query("SELECT COUNT(photo_download) AS CantidadDow FROM `extgallery_publicphoto` WHERE `photo_download`>0",$conexion)or die (mysql_error());
$FotoUp=mysql_query("SELECT COUNT(photo_id) AS CantidadUp FROM `extgallery_publicphoto`",$conexion)or die (mysql_error());

if(
$FotoDow){
  
$rowDow mysql_fetch_object($FotoDow);
  
$resultDow $rowDow->CantidadDow;
}

if(
$FotoUp){
  
$rowUp mysql_fetch_object($FotoUp);
  
$resultUp $rowUp->CantidadUp;

?>
   <html>
   <body>
   <td>Hay un Total de <b><?php echo $resultUp?></b> Imagenes - Se an descargado <b><?php echo $resultDow?></b> Imagenes</td>
   </body>
   </html>"; 
<?php
include "cerrar_conexion.php";
?>
Proba primero hacer andar eso, luego podemos ver como mejorar esos dos querys, q tranquilamente pueden ser 1 solo....pero te deberia andar. La informacion de la BD es correcta?

Saludos.
  #9 (permalink)  
Antiguo 31/10/2009, 07:30
 
Fecha de Ingreso: septiembre-2006
Mensajes: 28
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Ayuda para una consulta

Hola, primero que nada, darte las gracias por tu interes, luego disculparme, porque tego problemas con la linea, y creo que es consecuencias de muchos microcortes electicos.

Dicho esto
Cita:
La informacion de la BD es correcta
Si, es correcta.

Cita:
Porque no probas, mejor, no hacer un echo con las etiquetas HTML
Esto no lo entiendo, si no hago el hecho, no veo el resultado en ningun sitio.

Te refieres a que pulse yo el enlace, vea el resultado, haga un copy/paste, y oculte el enlace?.

Si es asi, eso es una opcion, lo unico que el resultado se actualizaria solo cuando yo lo modifique
  #10 (permalink)  
Antiguo 31/10/2009, 07:37
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: Ayuda para una consulta

Yo te puse arriba el codigo que deberias poner. fijate como ya el echo no esta, y saco el tag php y pongo codigo HTML. Te lo pongo de nuevo:

Código PHP:
<?php
include "conexion.php";
$FotoDow=mysql_query("SELECT COUNT(photo_download) AS CantidadDow FROM `extgallery_publicphoto` WHERE `photo_download`>0",$conexion)or die (mysql_error());
$FotoUp=mysql_query("SELECT COUNT(photo_id) AS CantidadUp FROM `extgallery_publicphoto`",$conexion)or die (mysql_error());

if(
$FotoDow){
  
$rowDow mysql_fetch_object($FotoDow);
  
$resultDow $rowDow->CantidadDow;
}

if(
$FotoUp){
  
$rowUp mysql_fetch_object($FotoUp);
  
$resultUp $rowUp->CantidadUp;

?>
   <html>
   <body>
   <td>Hay un Total de <b><?php echo $resultUp?></b> Imagenes - Se an descargado <b><?php echo $resultDow?></b> Imagenes</td>
   </body>
   </html>"; 
<?php
include "cerrar_conexion.php";
?>
Proba entrar a ver.php y decinos exactamente q te pone en pantalla.

Saludos.
  #11 (permalink)  
Antiguo 31/10/2009, 07:44
 
Fecha de Ingreso: septiembre-2006
Mensajes: 28
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Ayuda para una consulta

Esto es exactamente lo que sale

Hay un Total de 24850 Imagenes - Se an descargado 2397 Imagenes ";
  #12 (permalink)  
Antiguo 31/10/2009, 08:27
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: Ayuda para una consulta

Entonces es correcto o no? Es lo que vos buscabas?

Saludos.
  #13 (permalink)  
Antiguo 31/10/2009, 08:33
 
Fecha de Ingreso: septiembre-2006
Mensajes: 28
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Ayuda para una consulta

Cita:
Entonces es correcto o no? Es lo que vos buscabas?
Si, la unica pena es que no se pueda ejecutar la consulta desde el them.html

Pero eso es un mal menor, a si que muchisimas gracias por tu ayuda
Saludos
  #14 (permalink)  
Antiguo 31/10/2009, 09:23
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: Ayuda para una consulta

Porque no se podria ejecutar? Solo tenes q copiar el codigo de la consulta y pegarlo en them.html, obvio le vas a tener q cambiar la extension a .php , pero que dificultades te trae eso?

Saludos.
  #15 (permalink)  
Antiguo 31/10/2009, 09:32
 
Fecha de Ingreso: septiembre-2006
Mensajes: 28
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Ayuda para una consulta

Cita:
Iniciado por MarioAraque Ver Mensaje
Porque no se podria ejecutar? Solo tenes q copiar el codigo de la consulta y pegarlo en them.html, obvio le vas a tener q cambiar la extension a .php , pero que dificultades te trae eso?

Saludos.
Al estar echa en xoops, si cambio la rxtension de la plantilla a php

la pantalla de inicio mostraria esto y mas
Cita:
Cáratulas 0-9 A B C D E F G H I J K L M N O P Q R S T U V W-X Y-Z
Portadas 0-9 A B C D E F G H I J K L M N O P Q R S T U V W-X Y-Z

<{foreach item=block from=$xoops_ccblocks}>
<{$block.title}>
<{$block.content}>

<{/foreach}>

<{foreach item=block from=$xoops_clblocks}>
<{$block.title}>
<{$block.content}>
<{/foreach}> <{foreach item=block from=$xoops_crblocks}>
:: <{$block.title}>
<{$block.content}>
<{/foreach}>
<{/if}>
<{$xoops_contents}>
Es una pena que no pueda poner enlaces todavia para subirte captura.
Saludos
  #16 (permalink)  
Antiguo 31/10/2009, 09:35
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: Ayuda para una consulta

Para poder solucionar eso deberias usar AJAX.

No se donde debes poner ese codigo del q estuvimos hablando anteriormente (no entiendo para nada el codigo q pusiste ahora jaja), pero podes poner vos mismo un div, y luego, usando AJAX, mostrar ese contenido PHP....no se si trabajaste con AJAX, pero esa es una buena opcion para solucionar tu problema.

Saludos.
  #17 (permalink)  
Antiguo 31/10/2009, 09:45
 
Fecha de Ingreso: septiembre-2006
Mensajes: 28
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Ayuda para una consulta

Esto es una fraccion de la plantilla de inicio, la Web esta echa en Xoops

Código HTML:
<table cellspacing="0" align="center" id="maintable"><tr><td>

  <table cellspacing="0" align="center" id="top">
    <tr>
      <td class="side"><img src="<{$xoops_imageurl}>h-left.gif" width="8" height="100" alt="" /></td>
      <td class="logo"><a href="<{$xoops_url}>/"><img src="<{$xoops_imageurl}>logo.gif" width="950" height="90" alt="" /></a></td>
	  <td class="banner"><{$xoops_banner}></td>
      <td class="side"><img src="<{$xoops_imageurl}>h-right.gif" width="8" height="100" alt="" /></td>
    </tr>
  </table>

  <table cellspacing="0" align="center" id="welcome">
    <tr>
      <td class="side"><img src="<{$xoops_imageurl}>r-left.gif" width="8" height="26" alt="" /></td>
      <td class="center">
        <{if $xoops_isuser}>
        Bienvenido <a href="<{$xoops_url}>/user.php"><{$xoops_uname}></a>
      
<!-- ************************************************************************** -->
<!--                      AQUI QUERIA METER LA CONSULTA  -->
<!-- ************************************************************************** -->
<!--          I la linea de abajo es la que muestra el resultado  -->
<!-- ************************************************************************** -->
 <td class="center" align="right">Hay un Total de <span class="Estilo2">24.850</span> Imagenes - Se han descargado <span class="Estilo2">2.398</span> Imagenes</td> 

        <{else}>
        Bienvenido invitado. Por favor <a href="<{$xoops_url}>/register.php">regístrese</a> para convertirse en un miembro.
	   <{/if}>
 	  </td>
      <td class="side"><img src="<{$xoops_imageurl}>r-right.gif" width="8" height="26" alt="" /></td>
    </tr>
  </table> 
E mirado un poco de informacion sobre AJAX., mirare mas a fondo a ver si consigo algo

Saludos
  #18 (permalink)  
Antiguo 31/10/2009, 09:53
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: Ayuda para una consulta

Na bueno, la info de la plantilla no te conviene tocarla, yo al menos no lo haria. La unica modificacion pequeña seria la de agregar un span o un div donde quieras poner la informacion del total y la cantidad de descargas que hay en tu web .... eso no afectaria para nada a la plantilla.
Declara un span de ese modo.

<span id="informacion"></span> (podes ponerle el id q quieras jeje).

Y luego con AJAX haces algo de este tipo

$("informacion").load("ver.php");

Ojo, yo uso Jquery jeje. Igual te conviene leer un poco, de ultima anda al foro de Jquery (si es q usas ese Framework) o AJAX propio, y te van a dar una mano seguro!

Saludos.
  #19 (permalink)  
Antiguo 31/10/2009, 09:58
 
Fecha de Ingreso: septiembre-2006
Mensajes: 28
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Ayuda para una consulta

Gracias por tus consejos, le echare unas miraditas a ver que resuelvo.
Saludos
  #20 (permalink)  
Antiguo 31/10/2009, 10:01
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: Ayuda para una consulta

Hubo un error, seria asi:

$("#informacion").load("ver.php");

Me olvide de la almohadilla (numeral le decimos en argentina jaja).

Cualquier cosa postea de nuevo, espero que mi ayuda te haya servido.

Saludos.
  #21 (permalink)  
Antiguo 31/10/2009, 10:07
 
Fecha de Ingreso: septiembre-2006
Mensajes: 28
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Ayuda para una consulta

Gracias

Cita:
espero que mi ayuda te haya servido.
Hobre, gracias a ti e conseguido mostrar la onformacion en la web
  #22 (permalink)  
Antiguo 01/11/2009, 15:37
 
Fecha de Ingreso: septiembre-2006
Mensajes: 28
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Ayuda para una consulta

Hola MarioAraque que menos que depues de tu gran ayuda, te cuente como va la cosa.

gracias a otro usuario de otra web, e podido terminarlo de hacer.

te explico que problemillas teniamos por culpa de ser Xoops.

Primero que nada el codigo php en la plantilla de Xoops tiene que estar entre

<{php}>

<{/php}>

a pesar de eso, si colocaba
include "conexion.php";
include "cerrar_conexion.php";

Parece que falla, asi que dentro de los tag, puse el contenido de

conexion.php y cerrar_conexion.php

Y por ultimo, para tomar el valor genera por la consulta, fuera del php se a tenido que declarar do variable dentro del php asi


$this->_tpl_vars['resultfinal'] = $resultUp;
$this->_tpl_vars['resultfinal2'] = $resultDow ;

Si quieres, te posteo todo el codigo, por si alguien tiene el mismo problema que yo.
Si quieres ver la pagina, te paso la url desmontada para que veas como queda, porque aun no puedo postearla completa

http
://
covergaleria
.com


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 09:40.