Foros del Web » Programando para Internet » PHP »

Elegir desde formulario tabla en la que insertar datos php

Estas en el tema de Elegir desde formulario tabla en la que insertar datos php en el foro de PHP en Foros del Web. Ayuda Urgente !! Quisiera hacer un formualario en el que al desplegarse un SELECT me diera a elegir entre diferentesnombres de tablas ya creadas en ...
  #1 (permalink)  
Antiguo 29/09/2014, 07:50
 
Fecha de Ingreso: septiembre-2014
Mensajes: 2
Antigüedad: 9 años, 6 meses
Puntos: 0
Elegir desde formulario tabla en la que insertar datos php

Ayuda Urgente !!

Quisiera hacer un formualario en el que al desplegarse un SELECT me diera a elegir entre diferentesnombres de tablas ya creadas en la DB. Ya lo he diseñado, y le he dado en la opción value el nombre de las diferentes tablas.


Ahora bién mi problema es a la hora de declarar una variable en el insert to $variable recogiendo el dato del formulario.

ejemplo:

insert to $variable y a continuación el resto.


Se trata de elegir una tabla e insertar las variables
  #2 (permalink)  
Antiguo 29/09/2014, 08:35
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 2 meses
Puntos: 1146
Respuesta: Elegir desde formulario tabla en la que insertar datos php

y cual es el problema? que error te arroja?

eso no debería ser ningún problema solo debes concatenar la query, ya sea que uses comillas dobles para poder meter la variable dentro o bien uses comillas simples y puntos para concatenar variables.

Muéstranos tu código y dinos que error recibes para ver como ayudarte.
  #3 (permalink)  
Antiguo 29/09/2014, 09:07
 
Fecha de Ingreso: septiembre-2014
Mensajes: 2
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Elegir desde formulario tabla en la que insertar datos php

Bien el programa se dividide en tres partes. Con el primero subo la imagén al servidor por medio de un formulario y guardo la ruta, en una tabla de la base de datos:


<section id="principal">
<form id="formulario" action="php/subir.php" method="POST" enctype="multipart/form-data">
<div class="campos">
<label > Nick </label>
<input type="text" name="nombre" required/>
</div>

<div class="campos">
<label> Mail </label>
<input type="email" name="apellido" required/>
</div>

<div class="campos">
<label> Edad </label>
<input type="number" min="15" max="70" name="apellido" required/>
</div>
<div class="campos">
<label> Seleccionar una tabla </label>
<select name=clase[]>
<option value="imagenes">imagenes</option>
<option value="modelos">modelos</option>
<option value="strippers">strippers</option>
<option value="actrices">actrices</option>
<option value="azafatas">azafatas</option>
<option value="bailarines">bailarines</option>
</select>
</div>
<div class="campos">
<label for="imagen">Imagen:</label>
<input type="file" name="hugo" id="imagen" />
<input type="submit" name="subir" value="Subir"/>
</div>
</form>

</section>


El problema llega en este punto al no saber con mis pocos "conocimientos" realizar el siguiene paso. Es decir recoger los datos del formulario, e insertarlos en la tabla determinada y elegida desde el select:

<?php
class myDBC{

public $mysqli=null;

public function __construct(){

include_once 'dbconfig.php';
$this->mysqli = new mysqli(DB_SERVER, DB_USER, DB_PASS, DB_NAME);

if ($this->mysqli->connect_errno){
echo "Error MySQLi: ("&nbsp. $this->mysqli->connect_errno.") " . $this->mysqli->connect_error;
exit();
}
$this->mysqli->set_charset("utf8");
}

public function __destruct(){
$this->CloseDB();
}

public function runQuery($qry){
$result = $this->mysqli->query($qry);
return $result;
}

public function CloseDB(){
$this->mysqli->close();
}

public function clearText($text){
$text = trim($text);
return $this->mysqli->real_escape_string($text);
}

public function subirTodo($nombre, $mail, $ruta, $clase ){
$clase=$_POST["clase"]; // ----------> Aquí debe estar el error al no recoger bién los datos enviados por el formulario y no saber declarar la setencia insert to..


$q = "INSERT INTO $clase (nombre, email, ruta) VALUES ('$nombre', '$mail', '$ruta')";
$result = $this->mysqli->query($q);

if($result){ //Si resultado es true, se agregó correctamente
echo'<script type="text/javascript">
alert("Agregado Exitosamente a la BD");
window.location="http://localhost/subirArchivos/index.php"
</script>';
}
else{ //Si hubo error al insertar, se avisa
echo'<script type="text/javascript">
alert("Chispas... Algo anda mal");
window.location="http://localhost/subirArchivos/index.php"
</script>';
}

}

public function seleccionar_images(){
$q = "select ruta, nombre from imagenes";

$result = $this->mysqli->query($q);

//Array asociativo que contendrá los datos
$valores = array();

//Si no hay resultados
//Se avisa al usuario y se redirige al index de la aplicación
if( $result->num_rows == 0)
{
echo'<script type="text/javascript">
alert("Ningun registro");
</script>';
return false;
}
//En otro caso, se recibe la información y se
//se regresa un array con los datos de la consulta
else{
while($row = mysqli_fetch_assoc($result)){
//Se agrega cada valor en el array
array_push($valores, $row);
}
}
//Regresa array asociativo
return $valores;
}
}
?>


Y este es el problema es decir que no sé como recoger desde el formulario el dato del campo select y concatenarlo en la INSERT TO (y aquí vendría el nombre de la tabla elegida desde la página del formulario ); De todas formas muchas gracias por ayudarme y leer este enrevesado código. En serio, muchas gracias por contestar.
  #4 (permalink)  
Antiguo 29/09/2014, 09:50
 
Fecha de Ingreso: julio-2012
Mensajes: 15
Antigüedad: 11 años, 9 meses
Puntos: 1
Respuesta: Elegir desde formulario tabla en la que insertar datos php

Hola.

Tienes que tener mucho cuidado con ese tipo de sentencias porque puede permitir ataques de inyección sql con mucha facilidad.

Puedes usar un valor numérico en el select, y en la página destino haces un Case para ese valor numérico, en cada caso escribes en forma manual la sentencia de inserción a la bd.

Un saludo!!

Edit: el error son los corchetes en la declaración del select con el nombre: clase[]

Etiquetas: formulario-php, mysql
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 18:05.