Foros del Web » Programando para Internet » PHP »

Consulta a la BBDD con php

Estas en el tema de Consulta a la BBDD con php en el foro de PHP en Foros del Web. Hola, tengo el siguiente problema. He creado una especie de revista on line, donde cada edicion va por boletines. En la parte de administracion cree ...
  #1 (permalink)  
Antiguo 06/06/2006, 07:58
 
Fecha de Ingreso: junio-2006
Mensajes: 14
Antigüedad: 11 años, 6 meses
Puntos: 0
Boletines correlativos

Hola, tengo el siguiente problema. He creado una especie de revista on line, donde cada edicion va por boletines. En la parte de administracion cree un apartado donde se crean los boletines, es decir, boletin 1, 2, 3, ... ect. el problema es que tengo las funciones creadas para que vea en la base de datos que boletines estan crados y asi no crear boletines repetidos.

El problema se presenta ahora, es que estoy tratando de crear una funcion que sepa cual es el ultimo numero en la base de datos y agrege el siguiente para que los boletines sean correlativos.

Espero que se me entienda.

Si aguien sabe como hacerlo o se le ocurre una forma mejor ( lo mas seguro) que me diga como. Agradecido estaria.

Salu2

Comegato
  #2 (permalink)  
Antiguo 07/06/2006, 03:01
 
Fecha de Ingreso: junio-2006
Mensajes: 14
Antigüedad: 11 años, 6 meses
Puntos: 0
Consulta a la BBDD con php

Buenas, tengo el siguiente problema. tengo una tabla en la base de datos que contiene dos campos (id, numerBoletin), tengo creada la funcion que cuando se introzca un numero en un campo de texto, este lo compare con el campo numeroBoletin de la base de datos. Facil.

El problema ocurre es que quiero que la persona solo pueda introducir el numero siguiente que corresponda al campo numeroBoletin, es decir, si el ultimo numero que esta en el campo numeroBoletin de la bbdd es 4, solo te deje ingresar el numero 5. Si es menor (3) salga error y si es mayor dos veces (6) salga error tambien.

Alguien sabe como hacerlo. O si alguein sabe una mejor forma de como hacer esto. Se pregutaran pa que quiero esto. Es que tengo crada una revista que se compone de Boletines; entonces el cliente crea boletines, pero estos boletines tiene que ser correlativos, es decir, boletin nº 1, 2, 3, etc.

Agradeceria mucho la ayuda.

Saludos.

Comegato.
  #3 (permalink)  
Antiguo 07/06/2006, 03:08
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Pués no entendí... pero:
Cita:
estoy tratando de crear una funcion que sepa cual es el ultimo numero en la base de datos
Código:
SELECT campo FROM tabla ORDER BY campo desc LIMIT 0,1
Esa query otiene el último registro de una tabla.. su funcionamiento es simple. Tú puedes adaptarlo para meterlo en una sunción y/o ocuparlo directamente.

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #4 (permalink)  
Antiguo 07/06/2006, 03:11
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Temas unidos.
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #5 (permalink)  
Antiguo 07/06/2006, 03:22
 
Fecha de Ingreso: junio-2006
Mensajes: 14
Antigüedad: 11 años, 6 meses
Puntos: 0
Con esa consulta saco el valor del ultimo registro del campo, eso es cierto. Pero lo que necesito es crear una funcion que solo te deje ingresar el numero siguiente al valor que ya esta en la base.

Ejemplo en la base tengo como ultimo valor el 4, la funcion solo me dejaria ingresar a traves de un campo de texto el valor 5. Si ingreso el 3 que salga error y si ingreso el 6 que tambien salga error.
  #6 (permalink)  
Antiguo 07/06/2006, 05:52
 
Fecha de Ingreso: diciembre-2003
Mensajes: 204
Antigüedad: 14 años
Puntos: 2
$sql = "select max(nombredelcampo) as maximo from tabla";
$recordset = mysql_query($sql);
$fila = mysql_fetch_arrayrecordset);

una vez hecho eso en $fila[0] tienes el maximo valor que hay en la tabla.

Saludos
  #7 (permalink)  
Antiguo 07/06/2006, 06:18
 
Fecha de Ingreso: junio-2006
Mensajes: 14
Antigüedad: 11 años, 6 meses
Puntos: 0
Uff perdon error mio, no quiero la consulta jejjee.. que weon.

Lo que necesito es la sentencia en php para que me pueda permitir poner el nuero siguiente que corresponde en la base de dato. No e si me explico.

Perdon por el mal entendido. Jejeje que wea soy.
  #8 (permalink)  
Antiguo 07/06/2006, 06:24
 
Fecha de Ingreso: diciembre-2003
Mensajes: 204
Antigüedad: 14 años
Puntos: 2
A ver si tienes 4 resitros, el 1 el 3 el 5 y el 6 kieres que el siguiente sea el 7, quieres el codigo php para introducirlo en la bd no?
  #9 (permalink)  
Antiguo 07/06/2006, 06:29
 
Fecha de Ingreso: junio-2006
Mensajes: 14
Antigüedad: 11 años, 6 meses
Puntos: 0
mas o menos, es que si en la base de datos tengo como ultimo registro el numero 4, que solo me deje ingresar como numero el siguiente, por ende solo el 5. Si introduce a traves de un capo de texto el 3 o el 4 o por consiguiente el 6 salga error. Que solo deje introducir el munero siguiente al que esta registrado en la base de datos.
  #10 (permalink)  
Antiguo 07/06/2006, 08:08
 
Fecha de Ingreso: diciembre-2003
Mensajes: 204
Antigüedad: 14 años
Puntos: 2
entonces la primera respuesta que te he puesto es buena... haces un select max loque sea, con eso tienes el maximo id que hay, lo guardas, le sumas uno y lo comparas con el que han introducido, Si coincide sigues, si no lanzas un error
  #11 (permalink)  
Antiguo 07/06/2006, 08:28
 
Fecha de Ingreso: junio-2006
Mensajes: 14
Antigüedad: 11 años, 6 meses
Puntos: 0
Jejejeje, eso es perfectamente. El problema es que no se como hacerlo. Jejejejej. No se como hacer esa comparativa y sumarle uno.

Muchas gracias por la ayuda DaChux, es que soy novatoo en esto y me cuesta un poco todavia.
  #12 (permalink)  
Antiguo 07/06/2006, 08:36
 
Fecha de Ingreso: diciembre-2003
Mensajes: 204
Antigüedad: 14 años
Puntos: 2
$sql = 'select max(campoquehagadecodigo) as maximocod from tabla';
$recordset = mysql_query($sql); //antes tienes que haber conectado con la bd
$fila = mysql_fetch_array($sql);

$maximo = $fila['maximocod'] + 1; //o $fila[0] como mas te guste

if ($valorintroducido == maximo)
//lo ha puesto bien, haces lo que proceda
else
//le dices que lo ha puesto mal

te lo he puesto todo de memoria, echale un ojo, veras como enseguida lo pillas, es muy facil.

Saludos
  #13 (permalink)  
Antiguo 07/06/2006, 09:03
 
Fecha de Ingreso: junio-2006
Mensajes: 14
Antigüedad: 11 años, 6 meses
Puntos: 0
DaChux, Wena maestro!!!!!!!. Jejeje Agradecidoooooooo.
  #14 (permalink)  
Antiguo 07/06/2006, 09:07
 
Fecha de Ingreso: junio-2005
Ubicación: Madrid, España
Mensajes: 288
Antigüedad: 12 años, 5 meses
Puntos: 1
bueno te hubiese sido mas sencillo declarar el campo como clave y autoincrement en la base de datos y te lo hace solito
  #15 (permalink)  
Antiguo 07/06/2006, 09:09
 
Fecha de Ingreso: junio-2006
Mensajes: 14
Antigüedad: 11 años, 6 meses
Puntos: 0
uppsss ahi me pillaste, como es eso.. si no te molesto. Es que es para aprender. JEJEJEJE
  #16 (permalink)  
Antiguo 07/06/2006, 09:18
 
Fecha de Ingreso: junio-2005
Ubicación: Madrid, España
Mensajes: 288
Antigüedad: 12 años, 5 meses
Puntos: 1
supongo que usas mysql, cuando creas la tabla, uno de los campos, llamesmole id por ejemplo, lo declaras numerico, como clave, y como extra le pones que sea autoincrement, entonces cuando hagas un inserccione en la tabla del resto de campos el solo aumentara en uno, no lo tienes que poner ni siquiera en el insert.

te dejo una sentencia sql de prueba para qe veas:
CREATE TABLE clientes (
`id` int(10) unsigned NOT NULL auto_increment,
nombre char(30)........
....... aqui defines los campos de tu BBDD
PRIMARY KEY (`id`));

cuando isertes haces
INSERT into clientes (nombre,apellidos,.......) values('pepito','garcia'.........)

como ves no inserto ningun valor en id, el solo se aumentara en uno
  #17 (permalink)  
Antiguo 07/06/2006, 10:11
 
Fecha de Ingreso: diciembre-2003
Mensajes: 204
Antigüedad: 14 años
Puntos: 2
ombre yo le he dado mi solucion suponiendo que no queria usar el autoincrement jeje
  #18 (permalink)  
Antiguo 07/06/2006, 10:46
 
Fecha de Ingreso: junio-2005
Ubicación: Madrid, España
Mensajes: 288
Antigüedad: 12 años, 5 meses
Puntos: 1
dachux si tu solucion me parece buena pero yo se lo cuento para que la próxima vez lo haga de mandera mas sencilla
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 20:42.