• User

    Ciao net,
    credo ci siano un pò di errori nel codice che hai postato.
    prima alla variabile query è assegnato
    $query="CREATE TABLE....
    poi senza eseguire la query la variabile viene riassegnata
    $query="insert into..
    a questo punto viene eseguita solo la query di insert (la tabella non viene mai creata) che funzionerebbe solo se la tabella dati fosse stata già creata nel db e se fosse corretta la query di inserimento: infatti nella definizione della tabella tutti i campi sono "not null" e nella query di insert il campo sesso non è impostato e quindi darebbe errore nuovamente.....

    facci sapere

    ciao ciao


  • User

    Capisco si infatti funziona solo se la tabella la creo da phpmyadmin mentre secondo quella istruzione non la crea la tabella, vorrei sapere come fare quindi per creare una tabella attraverso il codice php visto k come ho scritto è sbagliato


  • User Attivo

    @net said:

    vorrei sapere come fare quindi per creare una tabella attraverso il codice php visto k come ho scritto è sbagliato
    Non è che è sbagliato... il fatto è che non esegui la query... come ha detto aernews...
    Poi non devi metterla in uno script che esegui sempre...
    Personalmente non uso mai phpmyadmin; mi preparo uno script separato che contiene i codici per cancellare e creare le tabelle... lo eseguo una volta sola e poi lo elimino dal server...
    Una sorta di file di installazione.


  • User

    Esattamente come dice tigrone,
    script per gestire la creazione ed eventuali future modifiche alla struttura della tabelle, da utilizzare una-tantum
    E il resto nell'applicazione.....


  • User

    Questo è il codice che ho scritto in uno script a parte per creare la tabella ma mi da errore! Questo:
    Parse error: syntax error, unexpected T_SL in E:\Program Files\EasyPHP-5.3.2i\www\creazionetabella.php on line 8

            <?php
                $host='127.0.0.1';
                $user='mionome';
                $password='miapassword';
                $database='informazionipers';
                $db=mysql_connect($host, $user, $password) or die ("impossibile connettersi al server $host");
                mysql_select_db($database, $db) or die ("impossibile connettersi al database $database");
                $stringa_crea=<<<TABELLA 
                         CREATE TABLE dati IF NOT EXIST(
                          id int(20) NOT NULL auto_increment,
                          nome varchar(15) NOT NULL,
                          cognome varchar(15) NOT NULL,
                          luogo_nascita varchar(20) NOT NULL,
                          data_nascita varchar(20) NOT NULL,
                          sesso varchar(7) NOT NULL,
                          via varchar(30) not null,
                          cap varchar(7) not null,
                          numero varchar(3) not null,
                          citta varchar(20) not null,
                          provincia varchar(2) not null,
                          PRIMARY KEY (id) )ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1
                TABELLA;
                var_dump($stringa_crea); 
    
                mysql_query($stringa_crea) or die("non è stato possibile creare la tabella");
                mysql_close($db);
            ?>
    

    Dove sbaglio??


  • User

    [PHP]$stringa_crea="TABELLA
    CREATE TABLE IF NOT EXISTS dati(
    id int(20) NOT NULL auto_increment,
    nome varchar(15) NOT NULL,
    cognome varchar(15) NOT NULL,
    luogo_nascita varchar(20) NOT NULL,
    data_nascita varchar(20) NOT NULL,
    sesso varchar(7) NOT NULL,
    via varchar(30) not null,
    cap varchar(7) not null,
    numero varchar(3) not null,
    citta varchar(20) not null,
    provincia varchar(2) not null,
    PRIMARY KEY (id) )ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1"[/PHP]


  • User

    Ok grazie mille ho sistemato tutto.
    Sapete dirmi come verificare quale elemento di una listbox ho selezionato?
    Io ho provato con la sintassi isset($_POST['nome']) ma sembra che non passa niente.


  • User

    Il form in cui è inserita la select, che tipo di method ha, POST o Get?
    ciao ciao


  • User

    metodo post


  • User

    Hai controllato se nella richiesta vengono inviati tutti i parametri di cui hai bisogno?


  • User

    Questo il codice:
    <html>
    <head>
    <title>Animale preferito</title>
    </head>
    <body>
    <FORM METHOD=POST ACTION="sceltanim.php">
    <TABLE border="2" width="330" height="140">
    <tr>
    <td colspan="2">Seleziona l'animale preferito</td>
    </tr>
    <tr>
    <td><SELECT NAME="animali" size="5" >
    <OPTION VALUE="Cane" SELECTED>Cane </option>
    <OPTION VALUE="Gatto">gatto</option>
    <OPTION VALUE="Giraffa">giraffa</option>
    <OPTION VALUE="Cavallo">cavallo</option>
    <OPTION VALUE="Leone">leone</option>
    </SELECT>
    <td align="right"><INPUT TYPE="submit" value="Invia i dati" name="invia"><INPUT TYPE="submit" value="Cancella tutto!"></td>
    </td>
    </tr>
    </FORM>
    </body>
    </html>

    Questa sintassi è sbagliata?
    if (isset($_POST['cane']))
    print("<H3>Il tuo animale preferito è il cane</H3>");


  • User

    OK, ora è più chiaro.
    Il problema è in quel cerchi.
    La variabile che viene inviata, in POST, non è il valore selezionato nella select ma il nome dell'oggetto select (nel tuo caso "animali") che ha come valore la selezione effettuata nelle select.

    Quindi nella variabile POST dovrai controllare che sia settato "animali" e non "cane" se impostato allora verifichi che valore ha cane, gatto, eccc .

    un saluto


  • User

    e quindi qualè la sintassi per far riferimento al singolo animale ?


  • User

    Beh, dovrebbe essere qualcosa del genere

    if (isset($_POST['animali']))
    print("<H3>Il tuo animale preferito è il ".$_POST['animali']."</H3>");

    Ovviamente devi sistemare l'articolo , così ti verrebbe fuori
    "Il tuo animale preferito è il Giraffa" :smile5:


  • User

    si ok, ma se io non sò cosa ho selezionato come faccio a modificare la frase in base all'animale scelto?


  • User

    Non conosco il contesto, però potresti fare anche così

    if (isset($_POST['animali'])) {
    if ($_POST['animali']=='Cane')
    print("<H3>Il tuo animale preferito è il Cane</H3>");
    elseif ($_POST['animali']=='Gatto')
    print("<H3>Il tuo animale preferito è il Gatto</H3>");

    // .... e così via....
    }

    comunque sai cosa è stato selezionato, è il valore della variabile "animali"

    ciao


  • User

    a ok grazie mille ora è tutto kiaro 😉


  • User

    di nulla.:ciauz: