la consulta no está insertando un valor
Frecuentes
Visto 124 veces
0
Estoy haciendo un script donde el usuario puede subir una imagen de su mascota. tengo este codigo:
<?php
session_start();
$name = $_SESSION['myusername'];
$petName = $_POST['picup']; // a pet name picked by a dropdown list
$con = mysql_connect( "localhost", "lalala", "blabla" );
mysql_select_db( "lalal_animal", $con );
if ( @$_POST ['submit'] ) {
$file = $_FILES ['file'];
$name1 = $file ['name'];
$type = $file ['type'];
$size = $file ['size'];
$tmppath = $file ['tmp_name'];
if ( $name1 != "" ) {
if ( move_uploaded_file( $tmppath, 'upload/' . $name1 ) ) {
$query = "insert into pics(animalName,username,image) VALUES('$petName','$name','$name1')";
mysql_query( $query ) or die( 'could not updated:' . mysql_error() );
echo "Your image upload successfully !!";
}
}
}
?>
<html >
<head>
<title>Image Upload</title>
</head>
<body>
<form name="form" action="" method="post" enctype="multipart/form-data">
Photo <input type="file" name="file" />
<input type="submit" name="submit" value="submit" />
</form>
</body>
</html>
Después de ejecutar esto, la columna tabele nombrada: "nombre del animal"es en blanco.
Cuando ejecuto este comando SQL dentro de phpmyadmin:
insert into pics(animalName,username,image) VALUES('Sparky','tester','sparky.jpg')
Las tablas están bien y la columna animalName contiene el valor correcto. El nombre de la mascota se muestra, si lo hago:
echo $petName;
El nombre de la mascota viene de otra forma. El usuario primero tiene que elegir la mascota y luego es redirigido al formulario de carga. Aquí está el menú desplegable que solicitó:
<table width="480" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<form name="upload" method="post" action="upload_form.php">
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td colspan="3"><strong>Upload image</strong></td>
</tr>
<td>Select a pet</td>
<td>:</td>
<td>
<?php
mysql_connect('localhost', 'blabla', 'lalal');
mysql_select_db('lalala_animal');
$sql = "SELECT name FROM animal where username='$name'";
$result = mysql_query($sql);
echo "<select name='picup'>";
while ($row = mysql_fetch_array($result)) {
echo "<option value='" . $row['name'] . "'>" . $row['name'] . "</option>";
}
echo "</select>";
?>
</td>
</tr>
<tr>
<td> </td>
<td> </td>
<td><input type="submit" name="Submit" value="Upload"></td>
</tr>
</table>
</td>
</form>
</tr>
</table>
Sospecho que hay algo mal con el formulario HTML debajo del código php, pero no puedo entender qué.
3 Respuestas
2
En su comentario menciona que $petName proviene de una selección en el formulario.
Sin embargo, en el formulario, falta la selección, por lo que $petName ($_POST['picup']) está vacío.
<html >
<head>
<title>Image Upload</title>
</head>
<body>
<select name="picup">
<option>Sparky</option>
<option>Lucky</option>
</select>
<form name="form" action="" method="post" enctype="multipart/form-data">
Photo <input type="file" name="file" />
<input type="submit" name="submit" value="submit" />
</form>
</body>
</html>
Respondido el 08 de Septiembre de 12 a las 09:09
El nombre de la mascota viene de otra forma. El usuario primero tiene que elegir la mascota y luego es redirigido al formulario de carga. Si lo hago: echo $petName está mostrando el nombre de la mascota - código bestia
Puede ser, pero $petName = $_POST['picup']; sobrescribirá el $petName original!! - jvdberg
Lo que necesito es: $_POST['picup']; Puedo mostrarlo usando echo, pero no se puede insertar en la tabla. :( - código bestia
1
Como dijiste que pasas el $_POST['picup']
desde el primer envío, simplemente modifique su segundo formulario y coloque el $_POST['picup']
valor en el campo oculto. Modifique su formulario así..
<form name="form" action="" method="post" enctype="multipart/form-data">
Photo <input type="file" name="file" />
<input type="hidden" name="picup" value="<?php echo $petName; ?>" />
<input type="submit" name="submit" value="submit" />
</form>
Espero que esto funcione ...
Porque cuando envías el segundo, esa vez los valores de tu primera publicación no funcionan.
Respondido el 08 de Septiembre de 12 a las 10:09
Creo que ahora entiendes dónde estaba el problema;) - jogesh_pi
-1
Tal vez su tipo de datos de animalName no sea varchar en phpmyadmin, verifique que
Respondido el 08 de Septiembre de 12 a las 09:09
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas php mysql phpmyadmin or haz tu propia pregunta.
¿también muestra su lista desplegable? - jogesh_pi
@jogesh_p Lo acabo de agregar a la publicación original: Code Beast
Se está volviendo confuso ahora. Está cambiando el código de una manera que es imposible dar una buena respuesta en primer lugar. ¡Piensa bien tu pregunta antes de publicarla! - JvdBerg
No habrá ningún cambio. Acabo de agregar el menú desplegable. :) - Code Beast
@CodeBeast prueba la respuesta y avísanos si funciona... - jogesh_pi