• User Attivo

    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); ?>


  • User Attivo

    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]