- Home
- Categorie
- Coding e Sistemistica
- PHP
- Form GET con variabili e controllo
-
Form GET con variabili e controllo
Salve a tutti sono un novizio del php, sto creando un sistema di gestione. In pratica devo:
- Attraverso un form, creare una tabella mysql, e metterci al suo interno alcuni valori. Non tutti i valori, per esempio un utente potrebbe fermarsi a tre valori anzichè metterli tutti.
Il codice che posto funziona perfettamente se l'utente compila tutti i campi. Cosa devo fare per farlo funzionare quando l'utente ne compila ad esempio solo 3? Avevo pensato di sicuro a un ciclo (for o while?) potete aiutarmi?
Ecco il codice:
file form_tabelle.php
codice: <form action="crea_tabelle.php" method="get"> Nome Tabella: <input type="text" name="nome_tabella" /><br /> Valore1:<input type="text" name="valore1" /> <br /> Valore2:<input type="text" name="valore2" /> <br /> Valore3:<input type="text" name="valore3" /> <br /> <input type="submit" /> </form>
codice:<?php require_once("connessione_db.php"); $tabella = $_GET["nome_tabella"]; $valore1 = $_GET["valore1"]; $valore2 = $_GET["valore2"]; $valore3 = $_GET["valore3"]; // Create table mysql_select_db("noli", $connessione); $sql = "CREATE TABLE $tabella ( $valore1 varchar(15), $valore2 varchar(15), $valore3 varchar(15) )"; // Execute query mysql_query($sql,$connessione); mysql_close($connessione); ?>
-
Puoi creare il form in questo modo:
[HTML]<form action="crea_tabelle.php" method="get">
Nome Tabella: <input type="text" name="nome_tabella" />
<br />Valore1: <input type="text" name="valore[]" />
<br />Valore2: <input type="text" name="valore[]" />
<br />Valore3: <input type="text" name="valore[]" />
<br /><input type="submit" />
</form>[/HTML]E modificare lo script di inserimento in questo modo:
[PHP]<?php
require_once('connessione_db.php');
mysql_select_db('noli',$connessione);
//Controllo che il nome della tabella sia stato inserito e che siano stati inseriti i valori
if(isset($_GET['tabella']) && is_string($_GET['tabella']) && trim($_GET['tabella'])!='' && isset($_GET['valore']) && is_array($_GET['valore']) && !empty($_GET['valore'])){
$valori = array();
foreach($_GET['valore'] as $v){
if(is_string($v) && trim($v)!=''){
$valori[] = mysql_real_escape_string($v).' VARCHAR(15)';
}
unset($v);
}
//Controllo che sia stato inserito almeno un valore
if(!empty($valori)){
//Eseguo la query
$sql = 'CREATE TABLE '.mysql_real_escape_string($_GET['tabella']).' ('.implode(',',$valori).')';
mysql_query($sql,$connessione);
unset($sql);
}
unset($valori);
}
mysql_close($connessione);
?>[/PHP]