elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Ayuda impresion de datos por id php mysql
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] 3 Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda impresion de datos por id php mysql  (Leído 10,835 veces)
s7evin

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Re: Ayuda impresion de datos por id php mysql
« Respuesta #10 en: 12 Marzo 2013, 15:58 pm »

Buenas tardes

Código:
<?php  
include('conexion.php'); //suponiendo que la conexión este correctamente
$sql = "SELECT * FROM grupos WHERE id=".((int)$id)." LIMIT 1"; //suponiendo que $id es un valor entero
$query = mysql_query($sql, $link) or exit(mysql_error()); //el exit(mysql_error()) lo pongo para ver si es un error de la consulta, pero una vez estés seguro de que funciona correctamente, borralo, no es una buena práctica poner este tipo de código

if( !$query || mysql_num_rows($query) <= 0 )
  exit('No se encontraron resultados');//también puedes redireccionar o lo que sea

$row = mysql_fetch_assoc($query);

echo
'<p align="center">'. $row['imagen'].'</p>
<table width="641" border="1" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td width="179" bgcolor="#0066CC">Nombre del grupo</td>
    <td width="456">'. $row['grupo'].'&nbsp;</td>
  </tr>
  <tr>
    <td bgcolor="#0066CC">Genero</td>
    <td>'.$row['genero'].'</td>
  </tr>
  <tr>
    <td bgcolor="#0066CC">Influencias</td>
    <td>'. $row['influencia'].'</td>
  </tr>
  <tr>
    <td valign="top" bgcolor="#0066CC"><div align="left">Historia</div>
    <div align="center"></div></td>
    <td height="200" valign="top">'. $row['historia'].'</td>
  </tr>
  <tr>
    <td bgcolor="#0066CC">Integrantes</td>
    <td>'.$row['integrantes'].'</td>
  </tr>
  <tr>
    <td bgcolor="#0066CC">Facebook</td>
    <td>'. $row['facebook'].'</td>
  </tr>
  <tr>
    <td bgcolor="#0066CC">Twitter</td>
    <td>'.$row['twitter'].'</td>
  </tr>
  <tr>
    <td bgcolor="#0066CC">URL</td>
    <td>'. $row['url'].'</td>
  </tr>
  <tr>
    <td bgcolor="#0066CC">Contacto</td>
    <td>'. $row['representante'] .' ('. $row["email"].')</td>
  </tr>
  <tr>
    <td bgcolor="#0066CC">Video</td>
    <td height="300">'. $row['video1'].'</td>
  </tr>
  <tr>
    <td bgcolor="#0066CC">Sound Cloud</td>
    <td height="300">'. $row['soundcloud1'].'</td>
  </tr>
  <tr>
    <td bgcolor="#0066CC">Descarga disco</td>
    <td>'. $row['disco'].'</td>
  </tr>
</table>
<p align="center">Visto '. $row['hits'].' veces</p>';

exit; // o no, si deseas incluir más información

?>

Debes escapar o validar los datos de entrada a tu aplicación SIEMPRE, comprobar que se trata del tipo de datos que estas esperando que vas a recibir, sino podrías encontrarte con "problemas".
Por otro lado como ya te han comentado, te recomiendo utilizar MySQLi, es igual o más sencillo de utilizar y muchísimo más intuitivo.

También es recomendable que en las consultas a la base de datos, selecciones aquellos campos que necesitas y no selecciones toda la tabla (*), así aligeras la consulta. Además si le asignas 'alias' a cada columna, podrías minimizar el código a 'picar' con un foreach, pero eso ya son elecciones de cada cual.

En cuanto al estilo, estaría bien que usaras 'clases' de CSS, así si debes modificar el estilo, tan solo tendrás que modificar la clase y no ir linea por linea modificando el estilo 'inline'. Imagino que es algo que ya tienes en cuenta y harás cuando el código este funcional.

No he probado el código ya que no dispongo de tu base de datos jeje espero que te sirva.
Cualquier otra duda ya sabes, aquí estamos.

Un saludo!


« Última modificación: 12 Marzo 2013, 16:05 pm por s7evin » En línea

antonioska

Desconectado Desconectado

Mensajes: 24


Ver Perfil
Re: Ayuda impresion de datos por id php mysql
« Respuesta #11 en: 13 Marzo 2013, 14:37 pm »

Buenas tardes

Código:
<?php  
include('conexion.php'); //suponiendo que la conexión este correctamente
$sql = "SELECT * FROM grupos WHERE id=".((int)$id)." LIMIT 1"; //suponiendo que $id es un valor entero
$query = mysql_query($sql, $link) or exit(mysql_error()); //el exit(mysql_error()) lo pongo para ver si es un error de la consulta, pero una vez estés seguro de que funciona correctamente, borralo, no es una buena práctica poner este tipo de código

if( !$query || mysql_num_rows($query) <= 0 )
  exit('No se encontraron resultados');//también puedes redireccionar o lo que sea

$row = mysql_fetch_assoc($query);

echo
'<p align="center">'. $row['imagen'].'</p>
<table width="641" border="1" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td width="179" bgcolor="#0066CC">Nombre del grupo</td>
    <td width="456">'. $row['grupo'].'&nbsp;</td>
  </tr>
  <tr>
    <td bgcolor="#0066CC">Genero</td>
    <td>'.$row['genero'].'</td>
  </tr>
  <tr>
    <td bgcolor="#0066CC">Influencias</td>
    <td>'. $row['influencia'].'</td>
  </tr>
  <tr>
    <td valign="top" bgcolor="#0066CC"><div align="left">Historia</div>
    <div align="center"></div></td>
    <td height="200" valign="top">'. $row['historia'].'</td>
  </tr>
  <tr>
    <td bgcolor="#0066CC">Integrantes</td>
    <td>'.$row['integrantes'].'</td>
  </tr>
  <tr>
    <td bgcolor="#0066CC">Facebook</td>
    <td>'. $row['facebook'].'</td>
  </tr>
  <tr>
    <td bgcolor="#0066CC">Twitter</td>
    <td>'.$row['twitter'].'</td>
  </tr>
  <tr>
    <td bgcolor="#0066CC">URL</td>
    <td>'. $row['url'].'</td>
  </tr>
  <tr>
    <td bgcolor="#0066CC">Contacto</td>
    <td>'. $row['representante'] .' ('. $row["email"].')</td>
  </tr>
  <tr>
    <td bgcolor="#0066CC">Video</td>
    <td height="300">'. $row['video1'].'</td>
  </tr>
  <tr>
    <td bgcolor="#0066CC">Sound Cloud</td>
    <td height="300">'. $row['soundcloud1'].'</td>
  </tr>
  <tr>
    <td bgcolor="#0066CC">Descarga disco</td>
    <td>'. $row['disco'].'</td>
  </tr>
</table>
<p align="center">Visto '. $row['hits'].' veces</p>';

exit; // o no, si deseas incluir más información

?>

Debes escapar o validar los datos de entrada a tu aplicación SIEMPRE, comprobar que se trata del tipo de datos que estas esperando que vas a recibir, sino podrías encontrarte con "problemas".
Por otro lado como ya te han comentado, te recomiendo utilizar MySQLi, es igual o más sencillo de utilizar y muchísimo más intuitivo.

También es recomendable que en las consultas a la base de datos, selecciones aquellos campos que necesitas y no selecciones toda la tabla (*), así aligeras la consulta. Además si le asignas 'alias' a cada columna, podrías minimizar el código a 'picar' con un foreach, pero eso ya son elecciones de cada cual.

En cuanto al estilo, estaría bien que usaras 'clases' de CSS, así si debes modificar el estilo, tan solo tendrás que modificar la clase y no ir linea por linea modificando el estilo 'inline'. Imagino que es algo que ya tienes en cuenta y harás cuando el código este funcional.

No he probado el código ya que no dispongo de tu base de datos jeje espero que te sirva.
Cualquier otra duda ya sabes, aquí estamos.

Un saludo!

Buen dia,

Primero que nada excelente tu forma de explicar ;-)

Y sobre mysql, soy sincero soy nuevo en esto de las bases de datos, la verdad no lo se utilizar muy bien

Por otra parte, exactamente al lograr que funcione, ya cambiare el diseño y añadire su respectivo style css para que sea mas rapida su edicion.

y por ultimo con respecto al codigo que me dejaste me arroja lo siguiente:
No se encontraron resultados

Pero en la base de datos ya tengo generados 2 id, que seria 1 y 2

te pongo la url: www.mundobajo.net/prueba/bandas/prueba1.php?id=1

mi base de datos es la siguiente no se si sea ahi el problema
Citar
CREATE TABLE `grupos` (
  `id` bigint(7) NOT NULL auto_increment,
  `grupo` varchar(100) NOT NULL default '',
  `genero` varchar(100) NOT NULL default '',
  `representante` varchar(100) NOT NULL default '',
  `email` varchar(100) NOT NULL default '',
  `url` varchar(100) NOT NULL default '',
  `facebook` varchar(100) NOT NULL default '',
  `twitter` varchar(100) NOT NULL default '',
  `influencia` varchar(100) NOT NULL default '',
  `historia` longtext NOT NULL,
  `integrantes` longtext NOT NULL,
  `video1` longtext NOT NULL,
  `video2` longtext NOT NULL,
  `soundcloud1` longtext NOT NULL,
  `soundcloud2` longtext NOT NULL,
  `imagen` LONGBLOB NOT NULL,
  `mostrar` varchar(100) NOT NULL default '',
  `hits` tinyint(3) NOT NULL default '0',
  KEY `id` (`id`)
) TYPE=MyISAM 

Y mi archivo conexion.php es el siguiente
Citar
<?php
$link=mysql_connect("localhost", "mi_usuario", "micontraseña");
mysql_select_db("mi_basededatos",$link) OR DIE ("Error: Imposible Conectar");
?>

Muchas gracias por tu gran ayuda



En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: Ayuda impresion de datos por id php mysql
« Respuesta #12 en: 13 Marzo 2013, 16:45 pm »

xD

Algo que te recomiendo muchisisisimo es que imprimas tu consulta y la ejecutes en tu SMBD directamente así podrás ver en donde está el error en tu consulta.

Intenta con get

Código
  1. $id=$_GET["id"];
  2. $sql = "SELECT * FROM grupos WHERE id=".((int)$id)." LIMIT 1";
  3.  

Saludos
« Última modificación: 15 Marzo 2013, 17:38 pm por Darhius » En línea

abc
antonioska

Desconectado Desconectado

Mensajes: 24


Ver Perfil
Re: Ayuda impresion de datos por id php mysql
« Respuesta #13 en: 14 Marzo 2013, 08:42 am »

xD

Algo que te recomiendo muchisisisimo es que imprimas tu consulta y la ejecutes en tu SMBD directamente así podrás ver en donde está el error en tu consulta. Este consejo lo he dado a muchos y muchos no lo siguen pero cuando ven que funciona les digo TE LO DIJE!.

Intenta con get

Código
  1. $id=$_GET["id"];
  2. $sql = "SELECT * FROM grupos WHERE id=".((int)$id)." LIMIT 1";
  3.  

Saludos

Hola, muchas gracias por contestar.

Ya lo hice y me arroja el mismo error, NO SE ENCONTRARON DATOS  :(
En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: Ayuda impresion de datos por id php mysql
« Respuesta #14 en: 14 Marzo 2013, 17:39 pm »

Hola, muchas gracias por contestar.

Ya lo hice y me arroja el mismo error, NO SE ENCONTRARON DATOS  :(

Es por lo que te menciono por eso es importante que imprimas tu consulta xD

echo $sql;

Te debe mostrar un resultado como SELECT * FROM grupos WHERE id=0 LIMIT 1 y por eso el resultado es 0, entonces es porque no está recibiendo una variable.

En tu base de datos cambia el id 1 por el 0 y verás que te arroja ese resultado (antes de ejecutar prueba1.php verifica que si se haya modificado el id.

Saludos.
En línea

abc
1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: Ayuda impresion de datos por id php mysql
« Respuesta #15 en: 14 Marzo 2013, 17:49 pm »

Coloca la siguiente validación antes de $sql, a ver que resultados te arroja.

Código
  1. //... codigo
  2.  
  3. if(isset($id)){
  4. if(empty($id)) { //con la función empty 0 se considera como vacio
  5. echo "La variable $ id existe pero esta vacia<br>";
  6. }else {
  7. echo "La variable $ id existe y tiene un valor<br>";
  8. }
  9. }
  10. else {
  11. echo "La variable no existe<br>";
  12. }
  13.  
  14. $sql = "SELECT ... etc
  15. //mas codigo
  16.  
  17.  
En línea

abc
s7evin

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Re: Ayuda impresion de datos por id php mysql
« Respuesta #16 en: 15 Marzo 2013, 13:34 pm »

Si lo que estas haciendo es copiar el código que te estamos proporcionando y pergarlo en un script para su posterior 'ejecución', lo que te falta recoger el valor de 'id' de la url (GET):

Código:
<?php  
include('conexion.php');

$id = (int)$_GET['id'];

$sql = "SELECT * FROM grupos WHERE id=".$id." LIMIT 1";
$query = mysql_query($sql, $link) or exit(mysql_error());

if( !$query || mysql_num_rows($query) <= 0 )
  exit('No se encontraron resultados');

$row = mysql_fetch_assoc($query);

//... demás código ...

pensé que lo estabas recogiendo con anterioridad en alguna otra parte del script que no nos estabas mostrando...
prueba a ver si es eso :)

Saludos!

PD: si tampoco devuelve resultados ni tampoco errores de SQL, debe ser que esa tabla (`grupos`) está vacía...
« Última modificación: 15 Marzo 2013, 13:36 pm por s7evin » En línea

antonioska

Desconectado Desconectado

Mensajes: 24


Ver Perfil
Re: Ayuda impresion de datos por id php mysql
« Respuesta #17 en: 16 Marzo 2013, 02:55 am »

Coloca la siguiente validación antes de $sql, a ver que resultados te arroja.

Código
  1. //... codigo
  2.  
  3. if(isset($id)){
  4. if(empty($id)) { //con la función empty 0 se considera como vacio
  5. echo "La variable $ id existe pero esta vacia<br>";
  6. }else {
  7. echo "La variable $ id existe y tiene un valor<br>";
  8. }
  9. }
  10. else {
  11. echo "La variable no existe<br>";
  12. }
  13.  
  14. $sql = "SELECT ... etc
  15. //mas codigo
  16.  
  17.  

Hola, nuevamenet gracias por contestar, ya hice lo que me dijiste y me arroja lo siguiente: La variable no existe, tambien ya cambie en mi base de datos el id 1 por 0 http://mundobajo.net/prueba/bandas/prueba3.php



En línea

antonioska

Desconectado Desconectado

Mensajes: 24


Ver Perfil
Re: Ayuda impresion de datos por id php mysql
« Respuesta #18 en: 16 Marzo 2013, 02:59 am »

Si lo que estas haciendo es copiar el código que te estamos proporcionando y pergarlo en un script para su posterior 'ejecución', lo que te falta recoger el valor de 'id' de la url (GET):

Código:
<?php  
include('conexion.php');

$id = (int)$_GET['id'];

$sql = "SELECT * FROM grupos WHERE id=".$id." LIMIT 1";
$query = mysql_query($sql, $link) or exit(mysql_error());

if( !$query || mysql_num_rows($query) <= 0 )
  exit('No se encontraron resultados');

$row = mysql_fetch_assoc($query);

//... demás código ...

pensé que lo estabas recogiendo con anterioridad en alguna otra parte del script que no nos estabas mostrando...
prueba a ver si es eso :)

Saludos!

PD: si tampoco devuelve resultados ni tampoco errores de SQL, debe ser que esa tabla (`grupos`) está vacía...

muchas gracias por contestar como me lo has dicho a funcionado correctamente y ya me arroja resultados
http://mundobajo.net/prueba/bandas/prueba1.php?id=1
En línea

antonioska

Desconectado Desconectado

Mensajes: 24


Ver Perfil
Re: Ayuda impresion de datos por id php mysql
« Respuesta #19 en: 16 Marzo 2013, 03:04 am »

ya quedo lista la impresion de datos ahora el problema es que no logro que pueda subir la imagen a la base de datos, alguien sabra a que se deba el error?
« Última modificación: 16 Marzo 2013, 03:18 am por antonioska » En línea

Páginas: 1 [2] 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
No me conecta a base de datos Mysql en red lan (Ayuda) « 1 2 »
Programación Visual Basic
javierjava 14 27,333 Último mensaje 25 Mayo 2013, 04:18 am
por BlackZeroX
Hackear base de datos mysql teniendo las claves y datos
Hacking
ReGnuM 9 19,345 Último mensaje 31 Enero 2010, 06:52 am
por toxeek
Ejercicio bases de datos mysql, manipulación de datos.
Bases de Datos
KaRaLLo 0 12,440 Último mensaje 14 Mayo 2012, 21:27 pm
por KaRaLLo
Ayuda!!! Lectura de datos entre php y mysql
Desarrollo Web
cryp70n1c 3 2,188 Último mensaje 21 Julio 2016, 17:59 pm
por engel lex
AYUDA! fallo en la impresion
Programación C/C++
NicoSanhueza 2 2,089 Último mensaje 25 Junio 2018, 02:53 am
por NicoSanhueza
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines