PHP - guardar ruta de archivos en bd

 
Vista:
sin imagen de perfil
Val: 336
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

guardar ruta de archivos en bd

Publicado por Alejandro (172 intervenciones) el 27/01/2020 09:39:28
hola a todos, como estan,

pues vereis estoy con una intranet, en una de sus paginas hay noticias donde en cada noticia cuelgo unos archivos relacionados con esa noticia. Pues bien quiero guardar la ruta de esos archivos en la bd pero no consigo hacerlo, ya que esas noticias tienen un ID y no lo guarda segun ese ID sino que me inserta otra fila en la bd con esa ruta
A continuación les dejo el codigo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
$id = $_GET['id'];
	  $fecha = date("Y-m-d",strtotime($_POST['theDate'])); // theDate es el nombre del boton donde introduces la fecha en "editar_noticias.php"
    $noticia = $_POST['noticia'];
    $enlace = $_POST['enlace'];
    $adjunto = $_FILES['adjuntos'];
 
 
 
    $archivo = (isset ($adjunto)) ? $adjunto : null;
    $ruta_destino_archivo = null;
if ($archivo) {
    $extension = pathinfo($archivo['name'], PATHINFO_EXTENSION);
    $extension = strtolower($extension);
    if ( $extension == "pdf" or $extension == "txt" or $extension == "jpg")
    {
        if ($extension=="pdf") {
 
            $ruta_destino_archivo = "archivos_adjuntados/PDF/".$archivo['name'];
 
        } elseif ($extension== "txt"){
 
            $ruta_destino_archivo = "archivos_adjuntados/TXT/".$archivo['name'];
 
        } else {
 
            $ruta_destino_archivo = "archivos_adjuntados/IMG/".$archivo['name'];
 
        }
        $archivo_ok = move_uploaded_file($archivo['tmp_name'], $ruta_destino_archivo);
 
 
        $query= "INSERT INTO noticias (adjunto) values ('".$ruta_destino_archivo."')";
        $result=mysql_query($query);
 
 
    } else {
        echo "La extension no es correcta";
    }
}
 
 
 
 
	/*-----------------------------*/
 
 
	$consulta = "UPDATE noticias SET fecha='".$fecha."',
        noticia='".$noticia."',enlace='".$enlace."',adjunto='".$adjunto."' WHERE id_noticia=".$_GET['id'];
 
        //echo $consulta;
 
	$resultado = mysql_query($consulta);
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 336
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

guardar ruta de archivos en bd

Publicado por Alejandro (172 intervenciones) el 27/01/2020 12:44:43
vale ya esta resuelto, no habia que hacer ningun "insert" simplemente en el update no he introducido bien la variable, os los dejo puesto:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
$archivo = (isset ($adjunto)) ? $adjunto : null;
    $ruta_destino_archivo = null;
if ($archivo) {
    $extension = pathinfo($archivo['name'], PATHINFO_EXTENSION);
    $extension = strtolower($extension);
    if ( $extension == "pdf" or $extension == "txt" or $extension == "jpg")
    {
        if ($extension=="pdf") {
 
            $ruta_destino_archivo = "archivos_adjuntados/PDF/".$archivo['name'];
 
        } elseif ($extension== "txt"){
 
            $ruta_destino_archivo = "archivos_adjuntados/TXT/".$archivo['name'];
 
        } else {
 
            $ruta_destino_archivo = "archivos_adjuntados/IMG/".$archivo['name'];
 
        }
        $archivo_ok = move_uploaded_file($archivo['tmp_name'], $ruta_destino_archivo);
 
    } else {
        echo "La extension no es correcta";
    }
}
 
 
 
 
	/*-----------------------------*/
 
 
	$consulta = "UPDATE noticias SET fecha='".$fecha."', noticia='".$noticia."',enlace='".$enlace."',adjunto='".$ruta_destino_archivo."' WHERE id_noticia=".$_GET['id'];
 
  //echo $consulta;
 
	$resultado = mysql_query($consulta);

Lo que pasa ahora es que no me acumula las rutas de los archivos, sino que las sustituye las por viejas por las nuevas, o sea suple los regsitros nuevos por los viejos, alguien tiene alguna idea?? gracias de antemano
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de José Manuel
Val: 150
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

guardar ruta de archivos en bd

Publicado por José Manuel (62 intervenciones) el 03/02/2020 11:10:28
Hola Alejandro:

En la línea 34 del código que indicas, tienes una consulta con UPDATE. ¿No será que estás actualizando con ella en vez de usar un INSERT? Digo como sugerencia a falta de saber más código que puedas tener.

Un saludo,
https://obelearningservices.com/blog/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 336
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

guardar ruta de archivos en bd

Publicado por Alejandro (172 intervenciones) el 03/02/2020 12:18:36
no porque no quiero insertar un registro nuevo sino modificar uno existente, de todas formas ya los solucioné. Ahora mi duda es que no puedo borrar los archivos subidos a la carpeta del servidor, por si el admin se equivoca. Puedo eliminar la ruta de la bd pero el archivo se queda en la carpeta. Os dejo el codigo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
$eliminar = $_POST['borrar'];
unlink($eliminar);
if($archivo = (isset ($adjunto)) ? $adjunto : null){
 
  $dir="archivos_adjuntados/PDF/";
  $dir2="archivos_adjuntados/TXT/";
  $dir3="archivos_adjuntados/IMG/";
  if ($dir)  {
 
    $handle = opendir($dir);
    if ($file = readdir($handle))  {
 
        if (is_file($dir.$file)) {
 
           unlink($dir.$file);
        }
 
    }
  }elseif($dir2){
 
        $handle = opendir($dir2);
        if ($file = readdir($handle))  {
 
          if (is_file($dir2.$file)) {
 
              unlink($dir2.$file);
          }
 
        }
  }else{
 
       $handle = opendir($dir3);
        if ($file = readdir($handle))  {
 
          if (is_file($dir3.$file)) {
 
              unlink($dir3.$file);
          }
 
        }
  }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar