RESPUESTA: con este sencillo tuturial
1º tener una tabla en la BD de MySQL con estos campos
Estructura de tabla para la tabla `noticias`
--
CREATE TABLE `noticias` (
`id_not` int(11) NOT NULL auto_increment,
`titular` varchar(150) NULL,
`resumen` varchar(150) NULL,
`noticia` text NULL,
`imagen` varchar(100) NULL,
`fecha` date(15) NULL,
PRIMARY KEY (`id_not`),
ARCHIVO add_noticia.php
Código PHP:
?php
function mysql_escape($cadena) { //funcion para limpiar campos del form de codigo malicioso
if(get_magic_quotes_gpc() != 0) {
$cadena = stripslashes($cadena);
}
return mysql_real_escape_string($cadena);
}
//nos conectamos a la base de datos
mysql_connect('localhost','xxxx','xxxx')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('xxxxx')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
if(isset($_FILES['fichero']['name'])) { //comprovamos que se haya cargado el archivo
if(is_uploaded_file($_FILES['fichero']['tmp_name'])) {
//empieza la redimension, tomamos la imagen temporal subida que puede ser jpg, png o gif
$info = getimagesize($_FILES['fichero']['tmp_name']);
//segun el caso sera jpg, gif, png
switch ($info[2]) {
case 1:
$imagen = imagecreatefromgif($_FILES['fichero'] ['tmp_name']); break;
case 2:
$imagen = imagecreatefromjpeg($_FILES['fichero'] ['tmp_name']); break;
case 3:
$imagen = imagecreatefrompng($_FILES['fichero'] ['tmp_name']); break;
// etcétera //
}
$original = $imagen;
$original_w = imagesx($original);
$original_h = imagesy($original);
$max = 175; //AQUI PONES EL TAMAÑO DE LA IMAGEN A LO QUE QUIERAS segun la tabla donde la muestres
if($original_w>$original_h) {
$muestra_w = $max;
$muestra_h = intval(($original_h/$original_w)*$max);
} else {
$muestra_w = intval(($original_w/$original_h)*$max);
$muestra_h = $max;
}
$muestra = imagecreatetruecolor($muestra_w,$muestra_h);
imagecopyresampled($muestra,$original,0,0,0,0, $muestra_w,$muestra_h,$original_w,$original_h);//aqui se crea la imagen en la variable $muestra
imagedestroy($original); // aqui destruyo el original, pues no hace falta ya
// comenzamos a guardar el archivo
$ruta_destino = "../carpeta/archivos/"; //ponemos la ruta donde queremos almacenar los archivos en el server
$namefinal= trim ($_FILES['fichero']['name']); //quito espacios iniciales y finales del nombre del archivo
$namefinal= ereg_replace (" ", "", $namefinal); //quito los espacios entre el nombre para no tener despues problemas de codigo
$uploadfile= $ruta_destino . $namefinal; //monto la ruta seguida del nombre del archivo en $uploadfile
if(imagejpeg($muestra,$uploadfile,'100')) { // se coloca en su lugar final, el 100 el la calidad del jpg
echo "<b>Upload exitoso!. Datos:</b><br>";
echo "Nombre: <i><a href=\"".$uploadfile."\">".$_FILES['fichero']['name']."</a></i><br>";
echo "Tipo MIME: <i>".$_FILES['fichero']['type']."</i><br>";
echo "Peso: <i>".$_FILES['fichero']['size']." bytes</i><br>";
echo "<br><hr><br>";
// Aqui es donde tendre que insertar en la BD la variable $namefinal que con tiene el nombre del archivo sin espacios
//recojo las variables del form mediante POST
$titular = mysql_escape($_POST["titular"]);
$resumen = mysql_escape($_POST["resumen"]);
$noticia = mysql_escape($_POST["noticia"]);//cambiar el nl2br a la salida del texto mejor, y no a la entrada para inform. excell
$fecha = $_POST["fecha"];
//insertamos en la BD los campos del form
$query = "INSERT INTO noticias (titular, resumen, noticia, imagen, fecha)
VALUES ('$titular', '$resumen' , '$noticia', '$namefinal','$fecha')";
mysql_query($query) or die(mysql_error());
echo "La noticia <b>'".$titular."'</b> ha sid registrados de manera satisfactoria.<br />";
echo "<br><hr><br>";
}else{echo "no se guardo la foto, ni se inserto el articulo en la Base de Datos";}
}else{echo "no se subio foto";}
}else{echo "no se selecciono la foto";}
//ahora el formulario
?>
Código PHP:
<body>
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post" enctype="multipart/form-data">
<p>Imagen noticia 1:
<input name="fichero" type="file" size="150" maxlength="150">
<br>
Titular:
<input name="titular" type="text" size="46" maxlength="45" id="titular" >
</p>
<p>Resumen
<label>
<input name="resumen" type="text" id="resumen" size="150" maxlength="300">
</label>
</p>
<p><br>
Noticia:
<label>
<textarea name="noticia" id="noticia" cols="100" rows="20"></textarea>
</label>
</p>
<p>
<input type="hidden" name="fecha" id="fecha" value="<?php echo date("d-m-Y"); //aqui le pongo la fecha para mas info ?>">
<label></label>
<br>
</p>
<p><br>
<input name="submit" type="submit" value="Upload!">
</p>
</form> </body>
Archivo noticias.php donde se mostraran las noticias con foto subidas y redimensionadas, para no preocuparnos de las dimensiones de la imagen, la redimensionamos mediante codigo.
Código PHP:
<?php
$conexion = mysql_connect('localhost','xxxxx','xxxxx')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('xxxxxxx')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
$result_1= "SELECT * FROM noticias ";
$result = mysql_query($result_1 , $conexion) or die ( mysql_error() );
while ($row = mysql_fetch_array($result)){
echo "<table width=\"450\" cellspacing=\"4\" cellpadding=\"4\">";
echo "<tr>";
echo "<td rowspan=\"2\" width=\"200\" ><b>";
echo "<img src=\"archivos/$row[imagen]\" >";
echo "</td>";
echo "<td width=\"200\" height=\"75\"bgcolor= #E9E9E9 style='border:1px solid #000000'><b>";
echo $row['titular'];
echo "</b></td>";
echo "</tr>";
echo "<tr>";
echo "<td height=\"20\" style='border:1px solid #000000'>";
echo "<div aling=\"right\">";
echo "Por mi";
echo " ".$row ['fecha'];
echo "</div></td>";
echo "</tr>";
echo "</table >";
echo"<br>";
echo "<table width=90% style='border:1px solid #000000' cellspacing=\"4\" cellpadding=\"4\">";
echo "<tr><td >";
echo nl2br($row ['noticia']);
echo "</td></tr>";
echo "<tr><td>";
echo "</td></tr>";
echo "</table>";
echo "<br>";
echo "<br>";
}
?>
Un saludo a todos y espero que a alguien le sirva.