Foros del Web » Programando para Internet » PHP »

Comprobar si existe un registro de la base de datos mysql

Estas en el tema de Comprobar si existe un registro de la base de datos mysql en el foro de PHP en Foros del Web. Buenas, tengo una "galeria" con php y muestro las imagenes con un select en galeria.php supongamos que en esa galeria tengo 4 imagenes(4 registros) imagen ...
  #1 (permalink)  
Antiguo 20/01/2013, 20:59
Avatar de erozwashere  
Fecha de Ingreso: noviembre-2012
Ubicación: mex
Mensajes: 176
Antigüedad: 11 años, 5 meses
Puntos: 0
Comprobar si existe un registro de la base de datos mysql

Buenas, tengo una "galeria" con php

y muestro las imagenes con un select en galeria.php

supongamos que en esa galeria tengo 4 imagenes(4 registros)

imagen 1 con id=1, imagen dos con id=2, imagen tres con id=3, imagen cuatro con id=7,

y al darle click a una imagen mi manda a otra pagina con la imagen en grande

imagenengrande.php?id=1 // muestro la imagen

y asi con las 4, pero si yo pongo imagenengrandre.php?id=6 // este registo no existe

como comprobar que no existe? y muestre un mensaje que diga NO SE ENCONTRO NINGUNA IMAGEN

Gracias!
  #2 (permalink)  
Antiguo 20/01/2013, 21:32
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Comprobar si existe un registro de la base de datos mysql

- Conecta a la base de datos
- Ejecuta una consulta SELECT COUNT(id) FROM tabla where id = $id
- Saca ese resultado con alguna función o método fetch
- Realiza la condición depende del resultado, normalmente 0 o 1
- Imprime el mensaje.

Algo básico sin validaciones:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $id = (int) $_GET['id'];
  4. $pdo = new PDO('mysql:host=localhost;dbname=test;charset=UTF-8', 'usuario', 'password');
  5. $stmt = $pdo->query("select count(id) from tabla where id = $id");
  6. $res = $stmt->fetchColumn(0);
  7.  
  8. if ($res) {
  9.     echo 'Existe';
  10. } else {
  11.     echo 'No existe';
  12. }
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 20/01/2013 a las 21:41
  #3 (permalink)  
Antiguo 20/01/2013, 21:44
Avatar de erozwashere  
Fecha de Ingreso: noviembre-2012
Ubicación: mex
Mensajes: 176
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Comprobar si existe un registro de la base de datos mysql

Cita:
Iniciado por andresdzphp Ver Mensaje
- Conecta a la base de datos
- Ejecuta una consulta SELECT COUNT(id) FROM tabla where id = $id
- Saca ese resultado con alguna función o método fetch
- Realiza la condición depende del resultado, normalmente 0 o 1
- Imprime el mensaje.

Algo básico sin validaciones:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $id = (int) $_GET['id'];
  4. $pdo = new PDO('mysql:host=localhost;dbname=test;charset=UTF-8', 'usuario', 'password');
  5. $stmt = $pdo->query("select count(id) from tabla where id = $id");
  6. $res = $stmt->fetchColumn(0);
  7.  
  8. if ($res) {
  9.     echo 'Existe';
  10. } else {
  11.     echo 'No existe';
  12. }
gracias ya habia logrado algo similar no del todo bien, pero espera.. y eso de donde salio?
Código PHP:
Ver original
  1. $pdo = new PDO('mysql:host=localhost;dbname=test;charset=UTF-8', 'usuario', 'password');
  2. $stmt = $pdo->query("select count(id) from tabla where id = $id");
  3. $res = $stmt->fetchColumn(0);
  #4 (permalink)  
Antiguo 20/01/2013, 21:48
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Comprobar si existe un registro de la base de datos mysql

de donde salió que cosa? Te refieres a la clase PDO?
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #5 (permalink)  
Antiguo 20/01/2013, 21:49
Avatar de erozwashere  
Fecha de Ingreso: noviembre-2012
Ubicación: mex
Mensajes: 176
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Comprobar si existe un registro de la base de datos mysql

Cita:
Iniciado por andresdzphp Ver Mensaje
de donde salió que cosa? Te refieres a la clase PDO?
si donde quedo el mysql_query etc ?
  #6 (permalink)  
Antiguo 20/01/2013, 21:51
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Comprobar si existe un registro de la base de datos mysql

Cita:
Iniciado por erozwashere Ver Mensaje
si donde quedo el mysql_query etc ?
En el pasado amigo, en el pasado:

Según el manual PHP oficial:

Cita:
Se recomienda usar las extensiones mysqli o PDO_MySQL. No se recomienda usar la extensión mysql_* antigua para nuevos desarrollos, ya que ha sido declarada obsoleta a partir de PHP 5.5.0 y será eliminada en el futuro.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #7 (permalink)  
Antiguo 20/01/2013, 21:55
Avatar de erozwashere  
Fecha de Ingreso: noviembre-2012
Ubicación: mex
Mensajes: 176
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Comprobar si existe un registro de la base de datos mysql

Cita:
Iniciado por andresdzphp Ver Mensaje
En el pasado amigo, en el pasado:

Según el manual PHP oficial:
Vale, no habia leido sobre esa nueva clase, comensare a familiarizarme con ella, igual muchas gracias..
  #8 (permalink)  
Antiguo 20/01/2013, 22:04
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Comprobar si existe un registro de la base de datos mysql

No es nueva, existe desde PHP 5.1

Con mysql_* es casi lo mismo, consulta con mysql_query, sacas resultado con mysql_fetch_row o _assoc y compruebas:

Código PHP:
Ver original
  1. if ($res[0]) {
  2.     echo 'Existe';
  3. } else {
  4.     echo 'No existe';
  5. }
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #9 (permalink)  
Antiguo 20/01/2013, 22:20
Avatar de erozwashere  
Fecha de Ingreso: noviembre-2012
Ubicación: mex
Mensajes: 176
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Comprobar si existe un registro de la base de datos mysql

Cita:
Iniciado por andresdzphp Ver Mensaje
No es nueva, existe desde PHP 5.1

Con mysql_* es casi lo mismo, consulta con mysql_query, sacas resultado con mysql_fetch_row o _assoc y compruebas:

Código PHP:
Ver original
  1. if ($res[0]) {
  2.     echo 'Existe';
  3. } else {
  4.     echo 'No existe';
  5. }

Me funciono asi

$id = (int) $_GET['id'];
$stml=mysql_query("select count(id) from imagenes where id = $id");
$res = (mysql_fetch_row($stml));

if ($res[0]) {
echo 'Existe';
} else {
echo 'No existe';
}

ya que con

la clase PDO me saco este error

Fatal error: Uncaught exception 'PDOException' with message 'could not find driver' in A:\AppServ\www\galeria\imagen.php:75 Stack trace: #0 A:\AppServ\www\galeria\imagen.php(75): PDO->__construct('mysql:host=loca...', 'root', 'password') #1 {main} thrown in A:\AppServ\www\galeria\imagen.php on line
  #10 (permalink)  
Antiguo 20/01/2013, 22:34
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Comprobar si existe un registro de la base de datos mysql

Eso debe ser porque tienes desactivado en tu php.ini PDO_Mysql. Puedes intentar buscando la línea ;extension=php_pdo_mysql.dll en el php.ini, quitarle el punto y coma y reiniciando apache podría funcionar si lo tienes.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Etiquetas: mysql
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 10:11.