Foros del Web » Programando para Internet » PHP »

Problema con variable

Estas en el tema de Problema con variable en el foro de PHP en Foros del Web. Buenas, tengo un problema con una variable en una pagina que he nombrado "administrar_fotos.php", el error es: ( ! ) Notice: Undefined index: id in ...
  #1 (permalink)  
Antiguo 11/06/2015, 18:03
 
Fecha de Ingreso: febrero-2015
Mensajes: 61
Antigüedad: 9 años, 2 meses
Puntos: 0
Problema con variable

Buenas, tengo un problema con una variable en una pagina que he nombrado "administrar_fotos.php", el error es:

( ! ) Notice: Undefined index: id in C:\wamp\www\facebookbueno\administrar_fotos.php on line 15


Y esque tengo esta variable

Código PHP:
Ver original
  1. $id = $_GET['id'];

Que me la marca como error, y me diréis, "esa variable de donde viene?"

Pues esa variable viene de otro archivo, el archivo "fotos.php":

Código PHP:
Ver original
  1. echo "<td><a href='administrar_fotos.php?id=$columna[id]'>Administrar fotos</a></td>";

Le paso a la pagina administrar_fotos.php una id.



Y ahora os preguntaréis, "Vale, cuando te sale el error?"

Pues el error sale cuando intento hacer esto en administrar_fotos.php:

Código PHP:
Ver original
  1. echo "<a href='borrar_foto.php?id=$columna[idfoto]'> Borrar</a>";


Aqui el archivo de borrar foto:

Código PHP:
Ver original
  1. <?php
  2.  
  3. if(isset($_GET['idfoto']) ){
  4.  
  5. $idfoto = $_GET['idfoto'];
  6.  
  7. $host = "localhost";
  8. $user = "root";
  9. $pass = "123456";
  10. $bd = "foto";
  11. $dbc;
  12.  
  13.     $conexion = mysqli_connect($host, $user, $pass, $bd);
  14.  
  15.     if($conexion->connect_errno){
  16.       echo "ERROR AL CONECTARSE ($conexion->connect_errno)";
  17.     }
  18.  
  19. $consulta = "DELETE FROM fotos WHERE idfoto = '$idfoto'";
  20.  
  21.  
  22. mysqli_query($conexion, $consulta);
  23. }
  24.  
  25. header("Location: administrar_fotos.php");
  26.  
  27. ?>


Intento borrar una foto con una id, pero cuando vuelve al archivo administrar_fotos.php... me da el error que os he escrito al principio, "undefined index".


¿Como puedo solucionar el problema?
  #2 (permalink)  
Antiguo 11/06/2015, 18:26
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Problema con variable

buenas, si rediriges a "administrar_fotos.php" sin pasarle el id en la dirección no puedes esperar que te consiga un indice en el array global $_GET, ahora si lo que quieres hacer es quitarlo simplemente antes de querer asignarlo valida como haces aca "if(isset($_GET['idfoto']) ){" que el indice id exista, pero como lo estas manejando claramente no lo estas pasando a la url, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #3 (permalink)  
Antiguo 11/06/2015, 19:13
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Problema con variable

Es por la forma en la que imprimes la variable.

Utiliza llaves para que puedas obtener el valor real y, de ser posible, entrecomilla el índice del array (escapando las comillas).

Por cierto, esto:

Código PHP:
Ver original
  1. echo "ERROR AL CONECTARSE ($conexion->connect_errno)";

Es terrible. Las funciones y métodos no pueden ser invocados si se les toma como cadenas (excepto en las funciones que permiten el uso de llamadas de retorno). Concatena $conexion->connect_errno con la cadena o usa las llaves (como te expliqué líneas arriba).

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 12/06/2015 a las 01:11 Razón: Dato extra
  #4 (permalink)  
Antiguo 12/06/2015, 09:39
Avatar de jpint  
Fecha de Ingreso: junio-2012
Ubicación: Ciudad Real - España
Mensajes: 97
Antigüedad: 11 años, 10 meses
Puntos: 12
Respuesta: Problema con variable

Prueba a llamar a los indices del array con comillas dobles, tal como te dice Alexis88.

Código PHP:
echo '<a href="borrar_foto.php?id='.$columna["idfoto"].'"> Borrar</a>'

Además la variable que estás enviando por GET es "id" no "idfoto", por lo que debes pedir $_GET['id']:

Código PHP:
if(isset($_GET['id']) ) 
  #5 (permalink)  
Antiguo 13/06/2015, 06:44
 
Fecha de Ingreso: febrero-2015
Mensajes: 61
Antigüedad: 9 años, 2 meses
Puntos: 0
Respuesta: Problema con variable

Gracias, al final conseguí arreglar el error, ahora tengo otro problema, ahora con SQL :(


Como os enseñe el archivo borrar foto redirecciona a administrar_fotos.php. Mi intencion es que cuando borre una foto, redireccione a administrar_fotos.php y se muestren todas las fotos que hay, sin la que acabo de borrar claro.

Os muestro el archivo, ahora:


Código PHP:
Ver original
  1. <?php
  2.  
  3. if(isset($_GET['id']) ){
  4.  
  5. $idfoto = $_GET['id'];
  6.  
  7. $host = "localhost";
  8. $user = "root";
  9. $pass = "123456";
  10. $bd = "foto";
  11. $dbc;
  12.  
  13.     $conexion = mysqli_connect($host, $user, $pass, $bd);
  14.  
  15.     if($conexion->connect_errno){
  16.       echo "ERROR AL CONECTARSE ($conexion->connect_errno)";
  17.     }
  18.  
  19. $consulta = "DELETE FROM fotos WHERE idfoto = '$idfoto'";
  20. $consulta2 = "SELECT Album FROM fotos WHERE idfoto = '$idfoto'";
  21.  
  22.  
  23. mysqli_query($conexion, $consulta);
  24. mysqli_query($conexion, $consulta2);
  25. }
  26.  
  27.  
  28.  
  29.                
  30.                     header("Location: administrar_fotos.php?id=XXXXXXX[Album]");                    
  31.  
  32.  
  33.  
  34.  
  35. ?>


En la linea 30 veis que hay muchas XXXX, esa es la parte que me falta.

Como veis tengo una consulta que pide un Album ( a parte de la de borrar), que es un numero. Quiero redireccionar a administrar_fotos.php con el álbum de la foto que acabo de borrar ya que la primera vez que entro a administrar_fotos.php entro desde aqui:


Código PHP:
Ver original
  1. <a href='administrar_fotos.php?id=$columna[id]'>Administrar fotos</a>

Como veis, le paso la id (que es lo mismo que "Album" en la consulta de arriba).



como puedo pasarle "Album" a esa redireccion? Gracias.
  #6 (permalink)  
Antiguo 13/06/2015, 07:22
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con variable

El id ya lo tienes de origen, es $_GET['id'] así que sólo debes usarlo:

Código PHP:
Ver original
  1. <a href='administrar_fotos.php?id=$columna[id]'>Administrar fotos</a>

Como dicho script ya recibe el dato:
Código PHP:
Ver original
  1. header("Location: administrar_fotos.php?id=$_GET[id]");
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 13/06/2015, 08:29
 
Fecha de Ingreso: febrero-2015
Mensajes: 61
Antigüedad: 9 años, 2 meses
Puntos: 0
Respuesta: Problema con variable

Cita:
Iniciado por pateketrueke Ver Mensaje
El id ya lo tienes de origen, es $_GET['id'] así que sólo debes usarlo:

Código PHP:
Ver original
  1. <a href='administrar_fotos.php?id=$columna[id]'>Administrar fotos</a>

Como dicho script ya recibe el dato:
Código PHP:
Ver original
  1. header("Location: administrar_fotos.php?id=$_GET[id]");


Pero en el archivo borrar_foto.php le estoy pasando la id de la foto (para borrar esa foto claro), no "id" (id del album). Entonces esta mal.


No puedo hacer una consulta para coger la id del album de la foto borrada y pasarselo en el archivo borrar_foto.php???
  #8 (permalink)  
Antiguo 13/06/2015, 09:44
 
Fecha de Ingreso: febrero-2015
Mensajes: 61
Antigüedad: 9 años, 2 meses
Puntos: 0
Respuesta: Problema con variable

Cita:
Iniciado por skywolker Ver Mensaje
creo que puedes.
Por eso preguntaba esto.

Código PHP:
Ver original
  1. $consulta2 = "SELECT Album FROM fotos WHERE idfoto = '$idfoto'";
  2.  
  3.  
  4. mysqli_query($conexion, $consulta);
  5. mysqli_query($conexion, $consulta2);
  6. }
  7.  
  8.  
  9.  
  10.                
  11.                     header("Location: administrar_fotos.php?id=XXXXXXX[Album]");

Hago una consulta, hago el query y como se lo paso al headeR?? Las XXX es la parte que me falta.
  #9 (permalink)  
Antiguo 13/06/2015, 12:09
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Problema con variable

Échale un vistazo a los ejemplos del manual para la función mysqli_fetch_array.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #10 (permalink)  
Antiguo 13/06/2015, 14:06
 
Fecha de Ingreso: febrero-2015
Mensajes: 61
Antigüedad: 9 años, 2 meses
Puntos: 0
Respuesta: Problema con variable

Sigo sin poder, no se como en el mismo archivo de borrar_foto.php poder retornar la url con el album :/
  #11 (permalink)  
Antiguo 13/06/2015, 23:06
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Problema con variable

¿Leíste la información del enlace que te dejé? ¿Probaste con lo que pudiste ver ahí? ¿Podrías mostrarnos tu código actualizado?

No olvides usar el highlight respectivo.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: mysql, variable
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 20:19.