Foros del Web » Programando para Internet » PHP »

No se me añaden todos los datos a la bd

Estas en el tema de No se me añaden todos los datos a la bd en el foro de PHP en Foros del Web. Hola: He revisado varias veces mis códigos y la base de datos, pero no sé dónde está el error, porque me ingresa los datos sólo ...

  #1 (permalink)  
Antiguo 01/01/2012, 15:45
 
Fecha de Ingreso: octubre-2011
Mensajes: 160
Antigüedad: 12 años, 5 meses
Puntos: 2
No se me añaden todos los datos a la bd

Hola:

He revisado varias veces mis códigos y la base de datos, pero no sé dónde está el error, porque me ingresa los datos sólo en la tabla usuarios. En principio las tablas creo que están bien, creo que el fallo está en el código.Si me podéis echar una mano os lo agradecería.
Éste es el formulario html:
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<
title>Documento sin título</title>
<
link href="file:///C|/Users/ESTHER/Desktop/animalmeeting/estilos.css" rel="stylesheet" type="text/css" />
<
link href="file:///C|/Users/ESTHER/Desktop/animalmeeting/registro2.css" rel="stylesheet" type="text/css" />
</
head>

<
body class="fondoregistro">
<
form action="registrandose.php" method="post" enctype="multipart/form-data" name="formulario" id="formulario">
  <
table width="1024" height="768" border="0">
    <
tr>
      <
td width="304" height="768"><table width="100%" height="768" border="0">
        <
tr>
          <
td height="412" colspan="2">&nbsp;</td>
        </
tr>
        <
tr>
          <
td width="84%" height="124"><label for="fileField"></label>
            <
input name="fileField" type="file" class="subirfoto" id="fileField" size="12" /></td>
          <
td width="16%"><input name="button" type="submit" class="botonenvio" id="button" value="Enviar" /></td>
        </
tr>
        <
tr>
          <
td height="148" colspan="2">&nbsp;</td>
        </
tr>
      </
table></td>
      <
td width="335"><table width="100%" height="768" border="0">
        <
tr>
          <
td height="103">&nbsp;</td>
        </
tr>
        <
tr>
          <
td height="60"><label for="pais"></label>
            <
input name="pais" type="text" class="pais" id="pais" maxlength="40" /></td>
        </
tr>
        <
tr>
          <
td height="21">&nbsp;</td>
        </
tr>
        <
tr>
          <
td height="52"><label for="provincia"></label>
            <
input name="provincia" type="text" class="provincia" id="provincia" maxlength="40" /></td>
        </
tr>
        <
tr>
          <
td height="15">&nbsp;</td>
        </
tr>
        <
tr>
          <
td height="57"><label for="ciudad"></label>
            <
input name="ciudad" type="text" class="ciudad" id="ciudad" maxlength="40" /></td>
        </
tr>
        <
tr>
          <
td height="5">&nbsp;</td>
        </
tr>
        <
tr>
          <
td height="45"><label for="zona"></label>
            <
input name="zona" type="text" class="zona" id="zona" maxlength="40" /></td>
        </
tr>
        <
tr>
          <
td height="21">&nbsp;</td>
        </
tr>
        <
tr>
          <
td height="50"><label for="especie"></label>
            <
input name="especie" type="text" class="especie" id="especie" maxlength="40" /></td>
        </
tr>
        <
tr>
          <
td height="15">&nbsp;</td>
        </
tr>
        <
tr>
          <
td height="57"><label for="raza"></label>
            <
input name="raza" type="text" class="raza" id="raza" maxlength="40" /></td>
        </
tr>
        <
tr>
          <
td height="5">&nbsp;</td>
        </
tr>
        <
tr>
          <
td height="45"><label for="edad"></label>
            <
input name="edad" type="text" class="edad" id="edad" maxlength="3" /></td>
        </
tr>
        <
tr>
          <
td height="15">&nbsp;</td>
        </
tr>
        <
tr>
          <
td height="61"><label for="sexo"></label>
            <
select name="sexo" class="sexo" id="sexo">
<
option>hembra</option>
<
option>macho</option>
            </
select></td>
        </
tr>
        <
tr>
          <
td height="46">&nbsp;</td>
        </
tr>
      </
table></td>
      <
td width="371"><table width="100%" height="768" border="0">
        <
tr>
          <
td height="103" colspan="2">&nbsp;</td>
        </
tr>
        <
tr>
          <
td width="43%" height="60"><input name="pedigri" type="radio" class="si" id="radio" value="si" checked="checked" />
            <
label for=""></label></td>
          <
td width="57%"><input name="pedigri" type="radio" class="no" id="radio2" value="no" />
            <
label for="radio2"></label></td>
        </
tr>
        <
tr>
          <
td height="21" colspan="2">&nbsp;</td>
        </
tr>
        <
tr>
          <
td height="52" colspan="2"><label for="capa"></label>
            <
input name="capa" type="text" class="capa" id="capa" maxlength="20" /></td>
        </
tr>
        <
tr>
          <
td height="15" colspan="2">&nbsp;</td>
        </
tr>
        <
tr>
          <
td height="57" colspan="2"><label for="nombreamo"></label>
            <
input name="nombreamo" type="text" class="nombreamo" id="nombreamo" maxlength="30" /></td>
        </
tr>
        <
tr>
          <
td height="5" colspan="2">&nbsp;</td>
        </
tr>
        <
tr>
          <
td height="45" colspan="2"><label for="telefono"></label>
            <
input name="telefono" type="text" class="telefono" id="telefono" maxlength="15" /></td>
        </
tr>
        <
tr>
          <
td height="21" colspan="2">&nbsp;</td>
        </
tr>
        <
tr>
          <
td height="50" colspan="2"><label for="email"></label>
            <
input name="email" type="text" class="email" id="email" maxlength="35" /></td>
        </
tr>
        <
tr>
          <
td height="15" colspan="2">&nbsp;</td>
        </
tr>
        <
tr>
          <
td height="57" colspan="2"><label for="usuario"></label>
            <
input name="usuario" type="text" class="usuario" id="usuario" maxlength="40" /></td>
        </
tr>
        <
tr>
          <
td height="5" colspan="2">&nbsp;</td>
        </
tr>
        <
tr>
          <
td height="45" colspan="2"><label for="contrasenna"></label>
            <
input name="contrasenna" type="password" class="contrasena" id="contrasenna" maxlength="25" /></td>
        </
tr>
        <
tr>
          <
td height="15" colspan="2">&nbsp;</td>
        </
tr>
        <
tr>
          <
td height="61" colspan="2"><label for="repcontrasenna"></label>
            <
input name="repcontrasenna" type="password" class="repcontrasenna" id="repcontrasenna" maxlength="25" /></td>
        </
tr>
        <
tr>
          <
td height="46" colspan="2">&nbsp;</td>
        </
tr>
      </
table></td>
    </
tr>
  </
table>
</
form>
</
body>
</
html
  #2 (permalink)  
Antiguo 01/01/2012, 15:47
 
Fecha de Ingreso: octubre-2011
Mensajes: 160
Antigüedad: 12 años, 5 meses
Puntos: 2
Respuesta: No se me añaden todos los datos a la bd

Y este es el código php:
Cita:
<?php
include("conexion.php");
function formRegistro(){
?>

<?php

}
// verificamos si se han enviado ya las variables necesarias.
{
$usuario = $_POST['usuario'];
$contrasenna = $_POST['contrasenna'];
$repcontrasenna = $_POST['repcontrasenna'];
$email = $_POST['email'];
$nombreamo = $_POST['nombreamo'];
$raza = $_POST['raza'];
$telefono = $_POST['telefono'];
$edad = $_POST['edad'];
$sexo = $_POST['sexo'];
$provincia = $_POST['provincia'];
$capa = $_POST['capa'];
$pais = $_POST['pais'];
$pedigri = $_POST['pedigri'];
$ciudad = $_POST['ciudad'];
$zona = $_POST['zona'];
$especie = $_POST['especie'];
$foto = $_POST['foto'];





// Hay campos en blanco

if($usuario=="" || $contrasenna=="" || $repcontrasenna=="" || $email=="" || $nombreamo=="" || $raza=="" || $telefono=="" || $edad=="" || $sexo=="" || $provincia=="") {
echo "un campo está vacio.";
formRegistro();
}else{
// ¿Coinciden las contraseñas?
if($contrasenna!=$repcontrasenna) {
echo "Las contraseñas no coinciden";
formRegistro();
}else{



$usuario = trim($_POST['usuario']);
$contrasenna = $_POST['contrasenna'];
$email = $_POST['email'];

$sql_chk = mysql_query("SELECT usuario, email FROM usuarios WHERE usuario='$usuario' OR email='$email'",$link) or die(mysql_error());
if(mysql_num_rows($sql_chk)>0){
echo "El nombre de usuario o la cuenta de correo estan ya en uso";
formRegistro();
} else {









mysql_query("INSERT INTO usuarios (usuario, contrasenna, ciudad, email, nombreamo, telefono, pais, zona, provincia) VALUES ('$usuario','$contrasenna','$ciudad','$email','$no mbreamo','$telefono','$pais','$zona','$provincia') ",$link);

mysql_query("INSERT INTO animal (usuario, raza, edad, sexo, especie, capa, pedigri, nombreamo) VALUES ('$usuario','$raza','$edad','$sexo','$especie','$c apa','$pedigri','$nombreamo')",$link);

mysql_query("INSERT INTO fotos (foto) VALUES ('$foto')",$link);


echo 'El usuario '.$usuario.' ha sido registrado de manera satisfactoria.<br />';
echo 'Ahora puede entrar ingresando su usuario y su password<br />';

}
?>

//Un formulario de login, que aparecera despues de el registro fue exitoso

<FORM ACTION="comprobar.php" METHOD="post">
Usuario : <INPUT TYPE="text" NAME="usuario" SIZE=20 MAXLENGTH=20><br />
Password: <INPUT TYPE="password" NAME="password" SIZE=10 MAXLENGTH=10><br />
<INPUT TYPE="submit" VALUE="Ingresar">
</FORM>
<?php

}
}
}

?>
  #3 (permalink)  
Antiguo 01/01/2012, 15:55
 
Fecha de Ingreso: julio-2010
Mensajes: 197
Antigüedad: 13 años, 9 meses
Puntos: 32
Respuesta: No se me añaden todos los datos a la bd

entre cada variable del intro prueba esto

'{$variable}',
  #4 (permalink)  
Antiguo 01/01/2012, 15:56
 
Fecha de Ingreso: julio-2010
Mensajes: 197
Antigüedad: 13 años, 9 meses
Puntos: 32
Respuesta: No se me añaden todos los datos a la bd

tu lo que dices es que te agrega el usuario pero no carga la foto que examinaste en el browser

corrigeme si me equivoco
  #5 (permalink)  
Antiguo 01/01/2012, 16:19
 
Fecha de Ingreso: octubre-2011
Mensajes: 160
Antigüedad: 12 años, 5 meses
Puntos: 2
Respuesta: No se me añaden todos los datos a la bd

Gracias por contestar jmabreu. No, tal vez me he explicado mal. Tengo 3 tablas: usuarios, animal y fotos. Pues bien, sólo me ingresa datos en la tabla usuarios. No creo que sirva lo que me has comentado, porque si fuera eso, tampoco introduciría datos en usuarios, ¿no?
Por cierto, he visto que al pegar los códigos aquí hay algunos espacios en las palabras, eso es un fallo al pegar, tales espacios no existen en mi código.
  #6 (permalink)  
Antiguo 01/01/2012, 16:27
 
Fecha de Ingreso: julio-2010
Mensajes: 197
Antigüedad: 13 años, 9 meses
Puntos: 32
Respuesta: No se me añaden todos los datos a la bd

ok lo miro de nuevo a ver que es lo que te falla
  #7 (permalink)  
Antiguo 01/01/2012, 16:34
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: No se me añaden todos los datos a la bd

¿Qué FK hay en las tablas donde no se producen los INSERTs? ¿Hay dependencias declaradas?
¿Qué es el campo "usuario" en la tabla "animal"?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 01/01/2012, 16:43
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: No se me añaden todos los datos a la bd

Antes de dar veredictos y demás, debes debuggear cada consulta que haces para ver qué error hay:
Código PHP:
Ver original
  1. mysql_query('tu_consulta') or die (mysql_error());

Debuggea todas tus consultas y dinos qué error sale
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #9 (permalink)  
Antiguo 01/01/2012, 16:45
 
Fecha de Ingreso: julio-2010
Mensajes: 197
Antigüedad: 13 años, 9 meses
Puntos: 32
Respuesta: No se me añaden todos los datos a la bd

bueno para la imagen debes subirla a una carpeta del servidor primero aqui te pongo este codigo que deberia insertarlo entre las dos consultas que insertan los datos del animal y la foto y la pregunta de gnzsoloyo es muy buena pk deberia agregarte los datos




codigo php para subir la imagen

<?php
// aqui inicia el codigo de cargar fichero
$editFormAction = $_SERVER['PHP_SELF'];

if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {

////////////// Parte añadida 1 //////////////
//array de archivos disponibles
$archivos_disp_ar = array('jpg', 'jpeg', 'gif', 'png', 'tif', 'tiff', 'bmp');
//carpteta donde vamos a guardar la imagen
$carpeta = 'files/';
//recibimos el campo de imagen
$imagen = $_FILES['imagen']['tmp_name'];
//guardamos el nombre original de la imagen en una variable
$nombrebre_orig = $_FILES['imagen']['name'];
//el proximo codigo es para ver que extension es la imagen
$array_nombre = explode('.',$nombrebre_orig);
$cuenta_arr_nombre = count($array_nombre);
$extension = strtolower($array_nombre[--$cuenta_arr_nombre]);

//validamos la extension
if(!in_array($extension, $archivos_disp_ar)) $error = "Este tipo de archivo no es permitido";

if(empty($error)){

//creamos nuevo nombre para que tenga nombre unico
$nombre_nuevo = time().'_'.rand(0,100).'.'.$extension;
//nombre nuevo con la carpeta
$nombre_nuevo_con_carpeta = $carpeta.$nombre_nuevo;
//por fin movemos el archivo a la carpeta de imagenes
$mover_archivos = move_uploaded_file($imagen , $nombre_nuevo_con_carpeta);
//de damos permisos 777
chmod($nombre_nuevo_con_carpeta,0777);

///////////////////////////////////////////

//esto es para la fecha
$fecha = date("d-m-Y");

// se agrega "archivo_archivos, extension_archivos y la fecha" a la consulta y dos extra %s separados por comas
$nombre = $_POST["tipo"]; $usuario = $_POST["nombre"];
$sql = "INSERT INTO Archivos (Nombre, Usuario, Archivo, Extension, Fecha)VALUES('{$nombre}','{$usuario}','{$nombre_nu evo}','{$extension}','{$fecha}')";
mysql_query($sql);


//este codigo es para informarle al usuario que el archivo se ha cargado exitosamente
$respuesta ='Su archivo se ha enviado exitosamente';


}
}

?>






deberias adadptarlo pk esa tabla de imagenes mia tiene muchos campos tu solo tiene suponiendo yo el ID y la foto este seria el HTML





<table width="1024" border="0" align="center">
<tr>
<td width="49"><span class="style1">
<img src="img_btn/<?php if(!empty($error)){echo 'cancelar';}elseif(!empty($respuesta)){echo 'acept';}else{echo '';}?>.png" width="<?php if(!empty($error)){echo '48';}elseif(!empty($respuesta)){echo '48';}else{echo '0';}?>" height="<?php if(!empty($error)){echo '48';}elseif(!empty($respuesta)){echo '48';}else{echo '0';}?>" /></span></td>
<td width="965"><span class="style1">
<?php if(!empty($error)){echo 'Error: este formato no es permitido';}elseif(!empty($respuesta)){echo 'Su archivo se ha enviado exitosamente';}else{echo '';}?>
</span></td>
</tr>
</table>





<table width="60%" border="0" align="center">
<tr>
<td><span class="style1">Tamaño maximo Permitido 1.99 MB</span><br />
<form action="<?php echo $editFormAction; ?>" method="post" enctype="multipart/form-data" name="form1" id="form1">
<label for="imagen"></label>
<table width="100%" border="0">
<tr>
<td width="50%"><div align="center" class="style1">1. Seleccione la imagen</div></td>
<td width="50%"><div align="center" class="style1">2. Nombre de la imagen</div></td>
</tr>
<tr>
<td><div align="center">
<input name="imagen" type="file" class="style21" id="imagen" />
<input type="hidden" name="MM_insert" value="form1" />
<input name="nombre" type="hidden" id="nombre" value="<?php echo $_SESSION['Usuario']; ?>" />
</div></td>
<td><div align="center">
<input name="tipo" type="text" id="tipo" size="40" maxlength="99" />
</div>
</label></td>
</tr>
<tr>
<td colspan="2"><div align="center" class="enviar">
<input name="enviar2" type="image" onclick="MM_validateForm('tipo','','R');return document.MM_returnValue" src="img_btn/add.png" />
<br />
<span class="style1">Subir imagen</span></div></td>
</tr>
</table>
</form> <hr /> </td>
</tr>
</table>
  #10 (permalink)  
Antiguo 01/01/2012, 16:46
 
Fecha de Ingreso: julio-2010
Mensajes: 197
Antigüedad: 13 años, 9 meses
Puntos: 32
Respuesta: No se me añaden todos los datos a la bd

excelente recomendacion de Sourcegeek
  #11 (permalink)  
Antiguo 01/01/2012, 16:57
 
Fecha de Ingreso: octubre-2011
Mensajes: 160
Antigüedad: 12 años, 5 meses
Puntos: 2
Respuesta: No se me añaden todos los datos a la bd

Os pongo las tablas a ver si al final, sí que tienen fallos y para que quede un poco más claro (x cierto, usuario sería el nombre del animal, con su correspondiente contraseña):
Cita:
Esta es la tabla usuarios:
idusuario int(8) UNSIGNED No auto_increment
nombreamo varchar(35) utf8_spanish_ci No
telefono int(15) UNSIGNED Sí NULL
email varchar(40) utf8_spanish_ci No
usuario varchar(30) utf8_spanish_ci No
contrasenna varchar(20) utf8_spanish_ci No
ciudad varchar(20) utf8_spanish_ci Sí NULL
provincia varchar(20) utf8_spanish_ci Sí NULL
pais varchar(20) utf8_spanish_ci Sí NULL
zona varchar(20) utf8_spanish_ci Sí NULL
PRIMARY PRIMARY 1 idusuario

Esta es la tabla animal:

idusuario int(8) UNSIGNED No
usuario varchar(30) utf8_spanish_ci No
raza varchar(20) utf8_spanish_ci No
edad int(3) UNSIGNED No
sexo enum('hembra', 'macho') latin1_spanish_ci No
capa varchar(20) utf8_spanish_ci Sí NULL
pedigri varchar(4) utf8_spanish_ci Sí NULL
especie varchar(20) utf8_spanish_ci No
nombreamo varchar(35) utf8_spanish_ci No
PRIMARY PRIMARY 0 usuario
idusuario INDEX 0 idusuario

Las relaciones de esta tabla:
idusuario -- idusuario usuarios-> ON DELETE -- CASCADE ON UPDATE -- CASCADE

Y la tabla fotos:

foto blob BINARY Sí NULL
idusuario int(8) UNSIGNED No auto_increment
idusuario INDEX 0 idusuario

Y las relaciones de esta tabla:

idusuario -- idusuario usuarios-> ON DELETE -- CASCADE ON UPDATE -- CASCADE
  #12 (permalink)  
Antiguo 01/01/2012, 16:59
 
Fecha de Ingreso: octubre-2011
Mensajes: 160
Antigüedad: 12 años, 5 meses
Puntos: 2
Respuesta: No se me añaden todos los datos a la bd

Probaré lo que me habéis comentado y ya os contaré qué sale. Gracias!!!
  #13 (permalink)  
Antiguo 01/01/2012, 17:01
 
Fecha de Ingreso: octubre-2011
Mensajes: 160
Antigüedad: 12 años, 5 meses
Puntos: 2
Respuesta: No se me añaden todos los datos a la bd

Lo que me mosquea de verdad es que no suba los datos a la tabla animal, porque lo de las fotos, bueno, es bastante complejo para mí, pero no entiendo por qué no lo hace a la otra tabla.
  #14 (permalink)  
Antiguo 01/01/2012, 17:06
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: No se me añaden todos los datos a la bd

Bueno, por lo pronto, en la tabla ANIMAL no estás poniendo el idUsuario, y en la tabla FOTO, tampoco, y siendo campos NOT NULL son obligatorios...

Código MySQL:
Ver original
  1. INSERT INTO animal (usuario, raza, edad, sexo, especie, capa, pedigri, nombreamo)
  2. VALUES ('$usuario', '$raza', '$edad', '$sexo', '$especie',' $capa', '$pedigri', '$nombreamo')
  3.  
  4. INSERT INTO fotos (foto)
  5. VALUES ('$foto')
Siendo ambos campos FK, no sólo no pueden ser nulos, sino que además el valor de ese campo debe corresponder con el id resultante de la inserción del usuario.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #15 (permalink)  
Antiguo 01/01/2012, 17:13
 
Fecha de Ingreso: octubre-2011
Mensajes: 160
Antigüedad: 12 años, 5 meses
Puntos: 2
Respuesta: No se me añaden todos los datos a la bd

Entonces, ¿debería cambiar las FK por otras que sí se ingresen explícitamente al rellenar el formulario?
  #16 (permalink)  
Antiguo 01/01/2012, 17:19
 
Fecha de Ingreso: julio-2010
Mensajes: 197
Antigüedad: 13 años, 9 meses
Puntos: 32
Respuesta: No se me añaden todos los datos a la bd

si gustas adapto el de la foto a lo que tienes
  #17 (permalink)  
Antiguo 01/01/2012, 17:21
 
Fecha de Ingreso: octubre-2011
Mensajes: 160
Antigüedad: 12 años, 5 meses
Puntos: 2
Respuesta: No se me añaden todos los datos a la bd

Si no fuera una gran molestia jmabreu, te lo agradecería un montón. :)
  #18 (permalink)  
Antiguo 01/01/2012, 17:30
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: No se me añaden todos los datos a la bd

Cita:
Iniciado por cheterporras2 Ver Mensaje
Entonces, ¿debería cambiar las FK por otras que sí se ingresen explícitamente al rellenar el formulario?



¡No, hombre! ¡Nada que ver!

Las FK no son adornos. Son elementos para mantener la integridad de datos de una base de datos. No puedes sacarlas y ponerlas como si fuesen cosas superfluas.

Lo que debe suceder es así (en tu caso):
1) Insertas el usuario.
2) Recuperas el ID generado (es un autoincrement, en tu caso).
3) Insertas el Animal, usando ese ID recuperado para el campo correspondiente.
3) Insertas la Foto, usando ese ID recuperado para el campo correspondiente.

¿Se entiende?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #19 (permalink)  
Antiguo 01/01/2012, 17:36
 
Fecha de Ingreso: octubre-2011
Mensajes: 160
Antigüedad: 12 años, 5 meses
Puntos: 2
Respuesta: No se me añaden todos los datos a la bd

... entiendo lo que dices, pero ¿cómo recupero la ID? y cuando la recupere, ¿dónde la tengo q colocar?, ¿en el código php? Perdona mi ignorancia... :P
  #20 (permalink)  
Antiguo 01/01/2012, 17:39
 
Fecha de Ingreso: julio-2010
Mensajes: 197
Antigüedad: 13 años, 9 meses
Puntos: 32
Respuesta: No se me añaden todos los datos a la bd

bueno aqui lo eh reducido un monton el codigo php que te agregara la imagen a la carpeta y la ruta al base datos en la tabla fotos ahora tengo que hacerte la parte de html el codigo php debes insertarlo despues de aque agregue el animal y no olvides que debes modificar del codigo que te doy algunas cosas te las nombrare ahora






codigo php para subir la imagen


if (isset ($_POST["nombre"])) {

//extensiones de archivos disponibles
$archivos_disp_ar = array('jpg', 'jpeg', 'gif', 'png', 'tif', 'tiff', 'bmp');
//carpeta donde vamos a guardar la imagen
$carpeta = 'files/';
//recibimos el campo de imagen
$imagen = $_FILES['imagen']['tmp_name'];
//guardamos el nombre original de la imagen en una variable
$nombrebre_orig = $_FILES['imagen']['name'];
//el proximo codigo es para ver que extension es la imagen
$array_nombre = explode('.',$nombrebre_orig);
$cuenta_arr_nombre = count($array_nombre);
$extension = strtolower($array_nombre[--$cuenta_arr_nombre]);

//validamos la extension
if(!in_array($extension, $archivos_disp_ar)) $error = "Este tipo de archivo no es permitido";

if(empty($error)){

//creamos nuevo nombre para que tenga nombre unico
$nombre_nuevo = time().'_'.rand(0,100).'.'.$extension;
//nombre nuevo con la carpeta
$nombre_nuevo_con_carpeta = $carpeta.$nombre_nuevo;
//por fin movemos el archivo a la carpeta de imagenes
$mover_archivos = move_uploaded_file($imagen , $nombre_nuevo_con_carpeta);
//de damos permisos 777
chmod($nombre_nuevo_con_carpeta,0777);

//recojo los datos
$nombre = $_POST["tipo"]; $usuario = $_POST["nombre"];
$sql = mysql_query("INSERT INTO fotos (Nombre, Usuario, Archivo)VALUES('{$nombre}','{$usuario}','{$nombre_ nuevo}')");

//este codigo es para informarle al usuario que el archivo se ha cargado exitosamente
$respuesta ='Su archivo se ha enviado exitosamente';}
}
  #21 (permalink)  
Antiguo 01/01/2012, 17:42
 
Fecha de Ingreso: julio-2010
Mensajes: 197
Antigüedad: 13 años, 9 meses
Puntos: 32
Respuesta: No se me añaden todos los datos a la bd

cambiaras el isset post la primera linea por un cambo de tu formulario

lo segundo es que cambiaras el valor de la variable $carpeta y pondras donde quieres guardarlo

y donde recojo los datos las penultima lineas pones los valores que quieres agregar
  #22 (permalink)  
Antiguo 01/01/2012, 17:46
 
Fecha de Ingreso: julio-2010
Mensajes: 197
Antigüedad: 13 años, 9 meses
Puntos: 32
Respuesta: No se me añaden todos los datos a la bd

y el textfield donde examinas la imagen ponle de nombre imagen
  #23 (permalink)  
Antiguo 01/01/2012, 17:50
 
Fecha de Ingreso: julio-2010
Mensajes: 197
Antigüedad: 13 años, 9 meses
Puntos: 32
Respuesta: No se me añaden todos los datos a la bd

y si te sirve de algo para obtener el id del usuario que has registrado puedes hacer lo siguiente

$rs = mysql_query("SELECT MAX(IDUsuario) AS id FROM usuarios");
if ($row = mysql_fetch_row($rs)) { $id = trim($row[0]); }

eso te sacara el ultimo ID que has insertado ese codigo deberia de ir despues que hagas la insercion del usuario obvio no lo puedes poner antes hay metodos mas efectivos sin necesidad de realizar una consulta pero ando generando poco hoy :D y no por borrachera
  #24 (permalink)  
Antiguo 01/01/2012, 17:56
 
Fecha de Ingreso: octubre-2011
Mensajes: 160
Antigüedad: 12 años, 5 meses
Puntos: 2
Respuesta: No se me añaden todos los datos a la bd

Muchas gracias a todos!!! Lo probaré mañana y os digo cómo ha ido.Y si me surge alguna duda, evidentemente, os lo comentaré también. Hoy ando espesita, y lo mío si es por borracheras... ayyyyy, jejejje. ;P
  #25 (permalink)  
Antiguo 01/01/2012, 18:08
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: No se me añaden todos los datos a la bd

Cita:
Iniciado por cheterporras2 Ver Mensaje
... entiendo lo que dices, pero ¿cómo recupero la ID?
1) Para obtener un id autoincremental, PHP tiene sus propios recursos: mysql_insert_id(), el que al ser ejecutado inmediatamente después del INSERT, devuelve el valor del ID generado.
Cita:
Iniciado por cheterporras2 Ver Mensaje
y cuando la recupere, ¿dónde la tengo q colocar?, ¿en el código php?
Esto estuve a punto de no contestarlo, porque es demasiado... No sé... ¿evidente?

¿Donde pones un valor generado en una operación?
En una variable...
¿Lo pones en el código PHP?

¿Y en dónde más? Estás trabajando en PHP, ejecutas sentencias de PHP, las variables son de PHP, para ser usadas en operaciones de PHP...
¿Donde la pones?
Es un valor para insertar en la tabla. Haz lo mismo que haces con los otros valores...
Esto es un ejemplo básico, tomado del manual de PHP on-line:
Código PHP:
Ver original
  1. <?php
  2. $link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
  3. if (!$link) {
  4.     die('Could not connect: ' . mysql_error());
  5. }
  6.  
  7. mysql_query("INSERT INTO mytable (product) values ('kossu')");
  8. ?>
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #26 (permalink)  
Antiguo 01/01/2012, 18:10
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: No se me añaden todos los datos a la bd

Cita:
Iniciado por jmabreu Ver Mensaje
y si te sirve de algo para obtener el id del usuario que has registrado puedes hacer lo siguiente

$rs = mysql_query("SELECT MAX(IDUsuario) AS id FROM usuarios");
if ($row = mysql_fetch_row($rs)) { $id = trim($row[0]); }

eso te sacara el ultimo ID que has insertado ese codigo deberia de ir despues que hagas la insercion del usuario obvio no lo puedes poner antes hay metodos mas efectivos sin necesidad de realizar una consulta pero ando generando poco hoy :D y no por borrachera
Esto sólo funciona si no hay concurrencia.
Además, ¿para qué hacer una consulta si con una función propia de PHP ya obtienes el valor? Eso sólo hará que el proceso tenga mala performance.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #27 (permalink)  
Antiguo 01/01/2012, 18:21
 
Fecha de Ingreso: julio-2010
Mensajes: 197
Antigüedad: 13 años, 9 meses
Puntos: 32
Respuesta: No se me añaden todos los datos a la bd

eh dejado una nota hoy ando medio oxidado pero nada gnzsoloyo dale una mejor solucion yo mirare :D
  #28 (permalink)  
Antiguo 01/01/2012, 18:25
 
Fecha de Ingreso: julio-2010
Mensajes: 197
Antigüedad: 13 años, 9 meses
Puntos: 32
Respuesta: No se me añaden todos los datos a la bd

creo que el cansancio no me deja jajaja ya lo habias posteado y no me di cuenta
  #29 (permalink)  
Antiguo 02/01/2012, 12:02
 
Fecha de Ingreso: octubre-2011
Mensajes: 160
Antigüedad: 12 años, 5 meses
Puntos: 2
Respuesta: No se me añaden todos los datos a la bd

Muchas gracias a todos, me sirvió de mucho lo de recuperar la id. Una pregunta jmabreu, no entiendo bien esta linea, porque no sé exactamente a qué datos se refiere, ya que $nombre, $usuario, no estaban reflejados en el código, excepto en esta última linea y por "Archivo" ¿debo entender que es la referencia a la imagen?:

$nombre = $_POST["tipo"]; $usuario = $_POST["nombre"];
$sql = mysql_query("INSERT INTO fotos (Nombre, Usuario, Archivo)VALUES('{$nombre}','{$usuario}','{$nombre_ nuevo}')");

Y por último, en el html, necesito algún código especial, que haga referencia a este proceso en php, ¿no?. Gracias
  #30 (permalink)  
Antiguo 03/01/2012, 00:43
 
Fecha de Ingreso: octubre-2011
Mensajes: 160
Antigüedad: 12 años, 5 meses
Puntos: 2
Respuesta: No se me añaden todos los datos a la bd

¿Alguien me podría decir q es lo q me falta en el html para reflejar la función?

Etiquetas: html, bases-de-datos
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 02:09.