PHP - Insertar elementos de array en bd

 
Vista:
sin imagen de perfil

Insertar elementos de array en bd

Publicado por musiker (31 intervenciones) el 08/01/2016 12:31:31
Hola a todos.

Tengo un archivo de texto con enlaces y quiero subir esos enlaces (clasificándolos por temas) a mi bd mediante un formulario. He conseguido almacenarlos en un array, pero el problema es que, a la hora de insertarlos, sólo me inserta la opción de los temas, es decir, me inserta la palabra "noticias" o "curiosidades" etc... ¿Cómo puedo insertar en la bd cada elemento del array (cada enlace) en vez de la opción del enlace?

Muchas gracias por adelantado.

formulario.html

1
2
3
4
5
6
7
8
9
<form method="post" action="pruebas.php">
 
<input type="hidden" name="formulario" value="">
 
<input type="checkbox" name="variable[]" value="CURIOSIDADES">CURIOSIDADES
<input type="checkbox" name="variable[]" value="NOTICIAS">NOTICIAS
 
<input type="submit">
</form>


pruebas.php

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
<?php
 
$conexion etc etc...................................
 
print_r($variable);
 
$codigos = "'" . implode("', '", $_POST['variable']) . "'";
 
 
//----------------------------
 
 
		if (($codigos)=='CURIOSIDADES')
 
		{
 
			echo "HA ELEGIDO LA OPCION 1 - CURIOSIDADES <br>";
 
			mysql_query("INSERT INTO curiosidades (enlace) VALUES ('$codigos')");
 
			echo "SE HA INSERTADO CORRECTAMENTE";
 
		}
 
 
		if (($codigos)=='NOTICIAS')
 
		{
 
			echo "HA ELEGIDO LA OPCION 2 - NOTICIAS <br>";
 
			mysql_query("INSERT INTO noticiascuriosas (enlace) VALUES ('$codigos')");
 
			echo "SE HA INSERTADO CORRECTAMENTE";
 
		}
 
?>
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: 8
Ha aumentado su posición en 16 puestos en PHP (en relación al último mes)
Gráfica de PHP

Insertar elementos de array en bd

Publicado por Mauricio (30 intervenciones) el 08/01/2016 15:17:39
Hola buen día.
Tengo la duda en como metes los valores del archito de texto en un array
Ahora:
1.en el formulario no estas mandando los enlaces en ningun elemento (input) ni siquiera de forma oculta
2. ni siquiera esta entrando a los IF porque al usar la funcion implode estas guardando esto "CURIOSIDADES,NOTICIAS"
ESTO ES LO QUE ESTA COMPARANDO EL CODIGO
1
2
3
4
5
if (('CURIOSIDADES,NOTICIAS')=='CURIOSIDADES')
 
		{
 
}

¿pregunta, el archivo de texto no están clasificados los enlaces?
¿hay algo que los relacione?
¿cual es la estructura de ese archivo de texto que mencionas?

Saludos.
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

Insertar elementos de array en bd

Publicado por musiker (31 intervenciones) el 08/01/2016 16:56:20
Hola Mauricio, gracias por la respuesta.

En otro archivo he hecho otro script para que cada enlace esté en una posición array, y en "pruebas.php" hago el include de ese array.
En el archivo de texto no están clasificados los enlaces. No hay nada que los relacione. Mi idea es que salgan todos los enlaces en el formulario, y mediante las casillas de verificación, los vaya enviando a su tabla correspondiente. Por ese motivo estoy intentando hacer el script, como he dicho al principio, para clasificarlos.
Con respecto a la estructura del archivo, son simplemente enlaces "pegados" uno debajo de otro. Por ejemplo:

www.google.es
www.gmail.com

etc...
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: 8
Ha aumentado su posición en 16 puestos en PHP (en relación al último mes)
Gráfica de PHP

Insertar elementos de array en bd

Publicado por Mauricio (30 intervenciones) el 08/01/2016 21:46:43
Hola primero necesitas crear los inputs para cada enlace
lo haremos con nombres dinamicos
1
2
3
4
5
6
7
8
9
10
11
12
<?php
	for($icontador=0;$i<count($array);$contador++){
?>
	<div>
		<input type="text" name="enlace_<?php echo $contador;?>" value="<?php echo $array[$contador];?>">
		<input type="radio" name="categoria_<?php echo $contador;?>" value="NOTICIAS"><label>noticias</label>
		<input type="radio" name="categoria_<?php echo $contador;?>" value="CURIOSIDADES"><label>curiosidades</label>
	</div>
 
		<?php
	}
	?>
si te fijas el contador concatenado al nombre de los inputs hace que sea diferente cada uno
enlace_0
enlace_1
enlace_2
asi cuando el usuario elegiria para cada enlace a que categoria lo quiere mandar , estoy usando radiobuton quiere decir que solo puede mandarse a una categoria

ahora cuando mandamos el post y lo recuperamos
este es el codigo a utilizar
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
	//y en el post haces esto
 
	for($i=0;$i<count($_POST);$i++){
		if(isset($_POST["enlace_".$i])){
			//es para saber si existe el enlace
			//evaluamos cual categoria selecciono para ese registro
			if($_POST["categoria_".$i]=="NOTICIAS"){
				//insert
			}elseif($_POST["categoria_".$i]=="NOTICIAS"){
				//insert
			}
 
		}
		}
	}
}

Si tienes dudas me avisas

si te sirvio marca como respuesta plis :) te lo agradeceria.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

Insertar elementos de array en bd

Publicado por musiker (31 intervenciones) el 09/01/2016 11:15:13
Muchas gracias por tu detallada solución!! Saludos!!
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: 8
Ha aumentado su posición en 16 puestos en PHP (en relación al último mes)
Gráfica de PHP

Insertar elementos de array en bd

Publicado por Mauricio (30 intervenciones) el 09/01/2016 15:55:11
no hay de que :)
saludos
perdon puse dos veces noticias en el if

1
2
3
4
5
if($_POST["categoria_".$i]=="NOTICIAS"){
				//insert
			}elseif($_POST["categoria_".$i]=="CURIOSIDADES"){
				//insert
			}
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