PHP - Utilización del "id" de una tabla de mysql en un for

   
Vista:

Utilización del "id" de una tabla de mysql en un for

Publicado por Elisa (71 intervenciones) el 04/06/2014 13:18:17
Buenas tardes.

Tengo creada una tabla con 4 dispositivos, sus id´s, nombres y dirección mac. Esta tabla se irá incrementando cada vez que se conecte un nuevo dispositivo.

Lo que pretendo es que se ejecuten diferentes tareas para cada uno de los dispositivos. Para ello utilizo un for, y he pensado que lo más lógico es que juegue con el id adjunto a cada dispositivo. El problema es que no se cómo poder trabajar con el id de esa tabla en mi php. Estoy haciendo un select pero la página no me hace lo que debe, se queda en blanco sin más, asiq obviamente lo estoy haciendo mal. Si alguien ha hecho algo similar y sabe cómo puedo dar con el resultado que quiero, agradecería que me comentara. Adjunto código para aclarar la situación.

Muchas gracias!

$id = mysql_query("SELECT id FROM dispositivos");
$nombre_raspi = mysql_query("SELECT nombre_disp FROM dispositivos");

for($i=1; $i<=($id); $i++){
//Conjunto de instrucciones
}
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
Imágen de perfil de xve

Utilización del "id" de una tabla de mysql en un for

Publicado por xve (5525 intervenciones) el 04/06/2014 15:19:05
Hola Elisa, primeramente decirte que las instrucciones mysql_... estan en deprecated...

mysql_query() te devuelve un array de valores que tienes que leer con mysql_fetch_array() algo así:
1
2
3
4
5
$result = mysql_query("SELECT id FROM dispositivos");
while($id=mysql_fetch_array($result))
{
    echo $id;
}

No se si me he sabido explicar... coméntanos, ok?
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

Utilización del "id" de una tabla de mysql en un for

Publicado por Elisa (71 intervenciones) el 05/06/2014 09:22:57
Sí si, está perfectamente explicado. Lo he ejecutado y me aparece un aviso:

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\Trabajo\insertar_contenido1.php on line 15. ¿Podría corregir algo para que desaparezca?

Aparte de eso tengo un problema y no se cómo dar con la solución... procedo a explicar a ver si soy concisa y no me extiendo mucho.

Voy a tener un número ilimitado de dispositivos conectados. Cada vez que se vaya conectando uno, aparecerá su nombre, id y mac en una tabla de mysql. A su vez creará una carpeta con el nombre de su mac.
Lo que tiene que hacer el servidor es, si el dispositvo ha creado dicha carpeta, crear una nueva dentro de esta con el archivo que selecciono en examinar. He pensado que lo mejor para mi caso, es adherir un .php diferente para cada botón de 'subir contenido' que se crea con cada dispositivo que se conecta, ya que de otra forma me resulta muy complicado gestionar todos estos cambios dinámicamente.
El problema es que no me crea la carpeta que quiero dentro de la otra con la mac del dispositivo (aunque he puesto en comentario todo el código restante para ver si eso funciona solo). De momento estoy probando el código como si tuviera un sólo dispositivo conectado. Adjunto el código porque alomejor estoy metiendo la pata en algo tonto y no lo veo ya...

$result = mysql_query("SELECT $MAC FROM dispositivos where id = 1");

//ya que he limitado el id, el while aquí ya no tendría sentido, no es cierto?

while($MAC = mysql_fetch_array($result)){
echo $MAC;
}

//creamos un directorio dentro de la carpeta que crea el dispositivo conectado

if (file_exists("C:/Dispositivos/$MAC/contenido/") == False){
mkdir("C:/Dispositivos/$MAC/contenido/", 0755);
}else{
echo " ";
}
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
Imágen de perfil de xve

Utilización del "id" de una tabla de mysql en un for

Publicado por xve (5525 intervenciones) el 05/06/2014 14:51:32
Hola Elisa, a que equivale la variable $MAC en esta consulta:
1
$result = mysql_query("SELECT $MAC FROM dispositivos where id = 1");
prueba esto:
1
$result = mysql_query("SELECT * FROM dispositivos where id = 1");

Si nos puedes comentar...
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

Utilización del "id" de una tabla de mysql en un for

Publicado por Elisa (71 intervenciones) el 05/06/2014 16:02:02
MAC es la dirección del dispositivo, que coincidirá con el nombre de la carpeta que crea y en la que quiero crear la nueva carpeta. Ya lo he solucionado y lo comenté en otra parte, adjunto las aclaraciones:

1
2
3
4
5
6
7
8
9
$query = "SELECT MAC FROM dispositivos";
$resultado = mysql_query($query);
while ($fila = mysql_fetch_array($resultado)){
     if (file_exists("C:/Dispositivos/ . $fila["MAC"] . /contenido/") == False){
          mkdir("C:/Dispositivos/ . $fila["MAC"] . /contenido/", 0755);
     }else{
          die('No pudo crearse la tabla. ');
     }
}

Si ponemos un where en la consulta, no será necesario el while.
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
Imágen de perfil de xve

Utilización del "id" de una tabla de mysql en un for

Publicado por xve (5525 intervenciones) el 05/06/2014 20:22:30
Gracias por compartirlo Elisa!!!
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