yo tuve el mismo problema hace algun tiempo y te voy a explicar como lo resolvi aunque talvez no es la mejro manera pero a mi me funciono
tengo un formulario con todas las opciones para subir
Código HTML:
<form action="subir.php" method="POST" enctype="multipart/form-data" name="Alta" id="Alta"><!-- muy importante que tengas el enctype-->
<select name="opcion1">
<option value="valor1"> valor</option>
<option value="valor2"> valor2</option>
<select>
<input name="precio" type="text" id="precio" />
<input name="uploadedfile" type="file" /><!-- este es el de la imagen -->
<input name="EnviarAlta" type="submit" id="EnviarAlta" value="Enviar" />
</form>
como veras este formulario le manda la informacion a un archivo subir.php
codigo que te doy enseguida
Código PHP:
<?php require_once('TU CONEXION; ?>
<?php
$insertSQL = sprintf("INSERT INTO tabla (valor1, valor2, valor3, valor 4, valor5) VALUES ('%s', '%s', '%s', '%s', '%s')",
$_POST['valor1'],
$_POST['valor2'],
$_POST['valor3'],
$_POST['valor4'],
$_POST['valor5']); <!-- aqui inserto los valores a la base d datos--)
mysql_select_db($database_arellano, $arellano);
$Result1 = mysql_query($insertSQL, $arellano) or die(mysql_error());
<!-- apartir de aqui subo las imagenes-->
$id = mysql_insert_id(); <!-- este de aqui lo uso para renombrar las imagenes al mismo id_ de mi registro en la db-->
$target_path = "fotos/";<!-- aqui la subo-->
$target_path = $target_path . basename($id.'.jpg');
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
echo basename( $_FILES['uploadedfile']['name]).
" La propiedad ah sido de alta correctamente <br /><img src=\"fotos/" . $id . ".jpg\">";
} else{
echo "There was an error uploading the file, please try again!";
}
$source="fotos/".$id.".jpg"; // archivo de origen
$dest="fotos/".$id."_t.jpg"; // archivo de destino <!-- este te hace un thumb del mismo nombre-->
$width_d=80; // ancho de salida<!-- aqui cambias el tamaño del thumb-->
$height_d=80; // alto de salida
list($width_s, $height_s, $type, $attr) = getimagesize($source, $info2); // obtengo información del archivo
$gd_s = imagecreatefromjpeg($source); // crea el recurso gd para el origen
$gd_d = imagecreatetruecolor($width_d, $height_d); // crea el recurso gd para la salida
// desactivo el procesamiento automatico de alpha
imagealphablending($gd_d, false);
// hago que el alpha original se grabe en el archivo destino
imagesavealpha($gd_d, true);
imagecopyresampled($gd_d, $gd_s, 0, 0, 0, 0, $width_d, $height_d, $width_s, $height_s); // redimensiona
imagepng($gd_d, $dest); // graba
// Se liberan recursos
imagedestroy($gd_s);
imagedestroy($gd_d);
?>
<br ><br />
<a href="alta.php">Regresar</a>
en si yo no subo la imagen ala base de datos simplemente la subo a una carpeta y le pongo el mismo nombre que el id de mi base de datos en el registro y para recuperarla lo hago asi
<img src="upload/fotos/<?php echo $row_Recordset1['id_mobiliario']; ?>_t.jpg" />
mientras tu hagas un while con el record siempre te va a imprimir la imagen con el resto de sus datos por decir para imprimir la ciudad io imprimo esto
<?php echo $row_Recordset1['ciudad']; ?>
si te fijas es lo mismo :P
ojala te sirva