Autor
|
Tema: Ayuda impresion de datos por id php mysql (Leído 11,598 veces)
|
s7evin
Desconectado
Mensajes: 23
|
Buenas tardes <?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'].' </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
Mensajes: 24
|
Buenas tardes <?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'].' </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 resultadosPero 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=1mi base de datos es la siguiente no se si sea ahi el problema 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 <?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
Mensajes: 1.186
|
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 $id=$_GET["id"]; $sql = "SELECT * FROM grupos WHERE id=".((int)$id)." LIMIT 1";
Saludos
|
|
« Última modificación: 15 Marzo 2013, 17:38 pm por Darhius »
|
En línea
|
abc
|
|
|
antonioska
Desconectado
Mensajes: 24
|
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 $id=$_GET["id"]; $sql = "SELECT * FROM grupos WHERE id=".((int)$id)." LIMIT 1";
Saludos Hola, muchas gracias por contestar. Ya lo hice y me arroja el mismo error, NO SE ENCONTRARON DATOS
|
|
|
En línea
|
|
|
|
1mpuls0
Desconectado
Mensajes: 1.186
|
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
Mensajes: 1.186
|
Coloca la siguiente validación antes de $sql, a ver que resultados te arroja. //... codigo if(empty($id)) { //con la función empty 0 se considera como vacio echo "La variable $ id existe pero esta vacia<br>"; }else { echo "La variable $ id existe y tiene un valor<br>"; } } else { echo "La variable no existe<br>"; } $sql = "SELECT ... etc //mas codigo
|
|
|
En línea
|
abc
|
|
|
s7evin
Desconectado
Mensajes: 23
|
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): <?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
Mensajes: 24
|
Coloca la siguiente validación antes de $sql, a ver que resultados te arroja. //... codigo if(empty($id)) { //con la función empty 0 se considera como vacio echo "La variable $ id existe pero esta vacia<br>"; }else { echo "La variable $ id existe y tiene un valor<br>"; } } else { echo "La variable no existe<br>"; } $sql = "SELECT ... etc //mas codigo
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
Mensajes: 24
|
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): <?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
Mensajes: 24
|
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
|
|
|
|
|
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,821
|
25 Mayo 2013, 04:18 am
por BlackZeroX
|
|
|
Hackear base de datos mysql teniendo las claves y datos
Hacking
|
ReGnuM
|
9
|
19,781
|
31 Enero 2010, 06:52 am
por toxeek
|
|
|
Ejercicio bases de datos mysql, manipulación de datos.
Bases de Datos
|
KaRaLLo
|
0
|
12,925
|
14 Mayo 2012, 21:27 pm
por KaRaLLo
|
|
|
Ayuda!!! Lectura de datos entre php y mysql
Desarrollo Web
|
cryp70n1c
|
3
|
2,413
|
21 Julio 2016, 17:59 pm
por engel lex
|
|
|
AYUDA! fallo en la impresion
Programación C/C++
|
NicoSanhueza
|
2
|
2,343
|
25 Junio 2018, 02:53 am
por NicoSanhueza
|
|