Foros del Web » Programando para Internet » PHP »

Mi base de datos no acepta mas de una fila

Estas en el tema de Mi base de datos no acepta mas de una fila en el foro de PHP en Foros del Web. Hola! Estoy haciendo un calendario de eventos con php y quiero agregar un panel sencillo con 5 campos: Fecha del evento, Nombre, Descripción, Categoría y ...
  #1 (permalink)  
Antiguo 02/05/2012, 20:22
Avatar de BillieBert  
Fecha de Ingreso: diciembre-2011
Mensajes: 37
Antigüedad: 12 años, 4 meses
Puntos: 1
Mi base de datos no acepta mas de una fila

Hola!

Estoy haciendo un calendario de eventos con php y quiero agregar un panel sencillo con 5 campos: Fecha del evento, Nombre, Descripción, Categoría y Relevancia. Hasta ahora puedo capturar los datos de los formularios y procesarlos con lo siguiente:

Código PHP:
$ins_insertar_evento "INSERT INTO eventos (fecha, titulo, contenido, categoria, relevancia) values ('$fecha', '$titulo', '$contenido', '$categoria', '$relevancia')";
$insertar_evento mysql_query($ins_insertar_evento$conexion) or die ("No se pudo insertar el evento :("); 
Ya que tengo creada mi tabla, puedo insertar una fila solamente, cuando quiero insertar mas filas me pone el error de "No se pudo insertar el evento :(" y no inserta nada.

¿Por qué sucede esto? Repito, la primer fila si la inserta sin problemas, incluso borro y creo la tabla nuevamente y me inserta los datos perfectamente, pero solo una vez :/
__________________
La religión y la política pasaron de moda. Lo de hoy es el arte y el idealismo.
  #2 (permalink)  
Antiguo 02/05/2012, 21:54
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Mi base de datos no acepta mas de una fila

Pues a saber de como está creada tu tabla, porque error de php no es.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 03/05/2012, 00:03
Avatar de BillieBert  
Fecha de Ingreso: diciembre-2011
Mensajes: 37
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: Mi base de datos no acepta mas de una fila

Hola, pues la tabla la creo con el mismo php desde otra función y me parece que ya encontré el error. Me faltaba asignar un id que se fuera incrementando para que no se repitiera ninguna vez, le agregué esto a mi codigo:

Cita:
$instruccion = "CREATE TABLE $tabla(";
$instruccion .= "id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, ";
$instruccion .= "fecha DATE NOT NULL, ";
$instruccion .= "titulo TINYTEXT, ";
$instruccion .= "contenido TEXT, ";
$instruccion .= "categoria TINYTEXT, ";
$instruccion .= "relevancia TINYINT UNSIGNED NOT NULL";
$instruccion .= ");";
Y me va muy bien, ya funciona perfecto.



Pero ahora me surgió otra duda... Cuando hago una consulta y esta me devuelve los resultados, los puedo recoger en una variable de la siguiente forma:

Código PHP:
$resultados mysql_fetch_array($consulta); 
Todo perfecto, la variable se convierte en un array y puedo accesar a sus valores facilmente, ($resultados[0], $resultados[1], etc) pero el problema llega cuando existe mas de un resultado, o sea mas de una fila encontrada, no sé cómo acceder a los demás datos sin utilizar un bucle, (porque sé que con un bucle se puede y de hecho asi se hace), pero ¿que pasa si solo quiero ver el segundo resultado, por ejemplo, o el quinto, ignorando los anteriores y los siguientes?

Intenté con un bucle que me fuera copiando los resultados en otro array y me funcionó, pero al momento de imprimirlo en la pantalla me aparece el dato duplicado :S

No se qué hacer, alguna sugerencia?
__________________
La religión y la política pasaron de moda. Lo de hoy es el arte y el idealismo.
  #4 (permalink)  
Antiguo 03/05/2012, 00:19
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 8 meses
Puntos: 66
Respuesta: Mi base de datos no acepta mas de una fila

Cita:
Iniciado por BillieBert Ver Mensaje
Pero ahora me surgió otra duda... Cuando hago una consulta y esta me devuelve los resultados, los puedo recoger en una variable de la siguiente forma:

Código PHP:
$resultados mysql_fetch_array($consulta); 
Todo perfecto, la variable se convierte en un array y puedo accesar a sus valores facilmente, ($resultados[0], $resultados[1], etc) pero el problema llega cuando existe mas de un resultado, o sea mas de una fila encontrada, no sé cómo acceder a los demás datos sin utilizar un bucle, (porque sé que con un bucle se puede y de hecho asi se hace), pero ¿que pasa si solo quiero ver el segundo resultado, por ejemplo, o el quinto, ignorando los anteriores y los siguientes?

Intenté con un bucle que me fuera copiando los resultados en otro array y me funcionó, pero al momento de imprimirlo en la pantalla me aparece el dato duplicado :S

No se qué hacer, alguna sugerencia?
No sería más fácil pedir solo el registro que quieres mostrar, tienes varias opciones:

Código PHP:
$sql "select * from tabla where campo = loquesea";

$sql "select * from tabla limit 2, 1"
saludos,
__________________
Tu álbum de cromos online!!
  #5 (permalink)  
Antiguo 03/05/2012, 07:11
fiu
 
Fecha de Ingreso: diciembre-2006
Ubicación: Barcelona
Mensajes: 128
Antigüedad: 17 años, 4 meses
Puntos: 8
Respuesta: Mi base de datos no acepta mas de una fila

No es algo que use normalmente, pero creo que sería algo como

$resultados[0][0], $resultados[0][1], $resultados[0][2]...
$resultados[1][0], $resultados[1][1], $resultados[1][2]...

aunque la solución de Santris de usar un LIMIT en la consulta me gusta más si sirve para tus propósitos.

Etiquetas: fila, formulario, mysql, tabla, aceptar
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 03:04.