• User Attivo

    Ciao,
    hai scritto:
    [PHP]
    $a="1";
    if ($a=="0"){
    ...codice per inserimento nel db...
    [/PHP]
    Così la query non la eseguirà mai...

    Alessandro


  • User

    Grazie per la tua risposta, scusami è vero questo l'avevo scritto per bloccare il programma, ma poi l'ho tolto riposto il codice.
    file 'insericsi_socio.php':

    
    <?php
    session_start();
    include("./inc/config.php");
    include "my_config.php";
    Pagina_protetta();
    if($_SESSION['stato'] > 3 && $_SESSION['stato'] < 7){
    ?>
    <div id='inserimento_soci'>
    
    <form method="POST" action="salva_socio.php">
    
    <table width="70%" height="100px" align="center">
      
        <tr> 
            <td>Data Iscrizione:</td>
            <td> 
                <?php
                /* calcolo data attuale*/
                    $adesso=time();
                    $data=date("d/m/Y H:m:s");
                ?>
                <input type='text' 
                <?echo'value='.$data?> size='8' name='data_iscrizione' />
            </td>
        </tr>        
        <tr> 
            <td>Cognome:</td>
            <td><input type='text' size='20' name='cognome'></td>
        </tr>    
        <tr>
            <td>Nome:</td>
            <td><input type='text' size='20' name='nome'></td>
        </tr>    
        <tr>
            <td>Nazionalit&aacute;:</td>
            <td><input type="text" name="nazionalita" value="ITALIANA" size="12"></td>
      </tr>
          <tr>       
            <td>Comune di Nascita:</td>
            <td><input type="text" name="comune_nascita"  size="30"></td>
        </tr>
          <tr>       
            <td>Provincia di Nascita:</td>
            <td><input type="text" name="provincia_nascita"  size="10" /></td>
        </tr>
      <tr> 
        <td>Data di Nascita:</td>
        <td>
            <select name="giorno">
                <?php
                for ($i=1; $i<=31; $i++)
                echo "<option value = $i>$i";
                ?>
            </select>
            <select name="mese">
              <option value="1">Gennaio 
              <option value="2">Febbraio 
              <option value="3">Marzo 
              <option value="4">Aprile 
              <option value="5">Maggio 
              <option value="6">Giugno 
              <option value="7">Luglio 
              <option value="8">Agosto 
              <option value="9">Settembre 
              <option value="10">Ottobre 
              <option value="11">Novembre 
              <option value="12">Dicembre 
            </select>
            <select name="anno">
            <?php
                $anno=date(Y);
                $anno_inizio=$anno-17;
                $anno_fine=$anno-7;
                 for ($i=$anno_inizio; $i<=$anno_fine; $i++)
                echo "<option value = $i>$i"; 
            ?>
            </select>
        </td>
      </tr>
      <tr> 
        <td>Sesso:</td>
        <td><select name="sesso">
                <option value="M">M    
                <option value="F">F
            </select>    
        </td>
     </tr>
     <tr>
        <td>Codice Fiscale:</td>
        <td><input type="text" name="codice_fiscale"  size="16"></td>
      </tr>
      <tr>
        <td>Comune di Residenza:</td>
        <td><input type="text" name="comune_residenza" size="30"></td>
      </tr>
      <tr>
        <td>Provincia di Residenza:</td>
        <td><input type="text" name="provincia_residenza" size="10"></td>
      </tr>
      <tr>
        <td>Cap:</td>
        <td><input type="text" name="cap" size="5"></td>
      </tr>
      <tr>
        <td>Indirizzo:</td>
        <td><input type="text" name="indirizzo" size="30"></td>
      </tr>
      <tr>
        <td>Cartellino FIGC:</td>
        <td><input type="text" name="cartellino_figc" size="10"></td>
      </tr>
      <tr>
        <td>Telefono Abitazione:</td>
        <td><input type="text" name="telefono_abitazione" size="10"></td>
      </tr>
      <tr>
        <td>Telefono Cellulare:</td>
        <td><input type="text" name="telefono_cellulare" size="10"></td>
      </tr>
      <tr>
        <td>E-Mail:</td>
        <td><input type="text" name="email" size="10"></td>
      </tr>
      <tr>
        <td height="9" colspan="2" align="center" valign="top">
          <div align="center">
            Assicurati di aver inserito, bene, tutti i dati e clicca 
           <input type="submit" name="submit" value="Salva"> per continuare
          </div>
        </td>
      </tr>
      </table>
    </form>
    </div>
    <?php } ?>
    
    ```file 'salva_socio.php':
    

    <?php
    //
    /* Aggiungi Socio Dati Tesseramento */
    /
    /
    include("./inc/config.php");
    include "my_config.php";
    //Pagina_protetta();
    //if($_SESSION['stato'] > 3 && $_SESSION['stato'] < 7){

    $data_iscrizione=time();
    $username=strtolower($_POST['nome'].$_POST['cognome']);
    $password=$username;
    $cognome = strtoupper($_POST['cognome']);
    $nome = strtoupper($_POST['nome']);
    $nazionalita = $_POST['nazionalita'];
    $comune_nascita = strtoupper($_POST['comune_nascita']);
    $provincia_nascita = strtoupper($_POST['provincia_nascita']);
    $giorno = $_POST['giorno'];
    $mese = $_POST['mese'];
    $anno = $_POST['anno'];
    $data_nascita=mktime(0,0,0,$mese,$giorno,$anno);
    $sesso = $_POST['sesso'];
    $codice_fiscale = strtoupper($_POST['codice_fiscale']);
    $comune_residenza = strtoupper($_POST['comune_residenza']);
    $provincia_residenza = strtoupper($_POST['provincia_residenza']);        
    $cap = $_POST['cap'];    
    $indirizzo = strtoupper($_POST['indirizzo']);
    $cartellino_figc = $_POST['cartellino_figc'];
    $telefono_abitazione = $_POST['telefono_abitazione'];
    $telefono_cellulare = $_POST['telefono_cellulare'];
    $email = $_POST['email'];
    ?>    
    <div align="center">"Riepilogo dati inseriti:"
    <table width="40%" align="center">
        <tr>
            <td>Data Iscrizione:</td><td><? echo "$data_iscrizione"; ?></td>
        </tr>
        <tr>
            <td>username:</td><td><? echo "$username"; ?></td>
        </tr>
        <tr>
            <td>password:</td><td><? echo "$password"; ?></td>
        </tr>
        <tr>
            <td>Cognome:</td><td><? echo "$cognome"; ?></td>
        </tr>
        <tr>
            <td>Nome:</td><td><? echo "$nome"; ?></td>
        </tr>
        <tr>
            <td>Nazionalità:</td><td><? echo "$nazionalita"; ?></td>
        </tr>
        <tr>
            <td>Comune di Nascita:</td><td><? echo "$comune_nascita"; ?></td>
        </tr>
        <tr>
            <td>Provincia di Nascita::</td><td><? echo "$provincia_nascita"; ?></td>
        </tr>
        <tr>
            <td>Data di Nascita:</td><td><? echo "$data_nascita"; ?></td>
        </tr>
        <tr>
            <td>Sesso:</td><td><? echo "$sesso"; ?></td>
        </tr>
        <tr>
            <td>Codice Fiscale:</td><td><? echo "$codice_fiscale"; ?></td>
        </tr>
        <tr>
            <td>Comune di Residenza:</td><td><? echo "$comune_residenza"; ?></td>
        </tr>
        <tr>
            <td>Provincia di Residenza:</td><td><? echo "$provincia_residenza"; ?></td>
        </tr>
        <tr>
            <td>Cap:</td><td><? echo "$cap"; ?></td>
        </tr>
        <tr>
            <td>Indirizzo:</td><td><? echo "$indirizzo"; ?></td>
        </tr>
        <tr>
            <td>Cartellino F.I.G.C.:</td><td><? echo "$cartellino_figc"; ?></td>
        </tr>
        <tr>
            <td>Telefono Abitazione:</td><td><? echo "$telefono_abitazione"; ?></td>
        </tr>
        <tr>
            <td>Telefono Cellulare:</td><td><? echo "$telefono_cellulare"; ?></td>
        </tr>
        <tr>
            <td>E-mail:</td><td><? echo "$email"; ?></td>
        </tr>
    </table>
    

    </div>
    <?php
    /* connessione al database */
    $db=mysql_connect($db_host, $db_user, $db_pass);
    if ($db==false)
    die("Errore nella connessione.
    Verificare i parametri nel file ./inc/config.php");

    /* seleziona database */
    mysql_select_db($db_name, $db)
    or die("Errore nella selezione del database.
    Verificare i parametri nel file ./inc/config.php");

    $query = "INSERT INTO 'elenco_soci'
    ('data_iscrizione', 'username', 'password', 'cognome', 'nome', 'nazionalita', 'comune_nascita', 'provincia_nascita', 'data_nascita', 'sesso', 'codice_fiscale', 'comune_residenza', 'provincia_residenza', 'cap', 'indirizzo', 'cartellino_figc', 'telefono_abitazione', 'telefono_cellulare', 'email') VALUES
    ('$data_iscrizione', '$username', '$password', '$cognome', '$nome', '$nazionalita', '$comune_nascita', '$provincia_nascita', '$data_nascita', '$sesso', '$codice_fiscale', '$comune_residenza', '$provincia_residenza', '$cap', '$indirizzo', '$cartellino_figc', '$telefono_abitazione', '$telefono_cellulare', '$email)";

    echo "<br><br> Query: $query<br><br> db: $db";

    $risultato=mysql_query($query,$db);
    echo "<br><br>Risultato: $risultato | mysql_query($query,$db)";
    echo "<br><br>db_host, db_user e db_pass: $db_host, $db_user, $db_pass";
    mysql_close();
    //echo "<meta http-equiv="Refresh" content="5; URL=index.php">Operazione registrata correttamente!";
    /} else {
    echo "<meta http-equiv="Refresh" content="5; URL=index.php">Non sei abilitato all'inserimento dei Soci!";
    }
    /
    //}
    ?>

    
    $query me la scrive completa
    $risultato no 
    mysql_query($query,$db) mi ritorna la query, $db mi ritorna Resource id #4
    $db_host, $db_user e $db_pass mi ritornano rispettivamente i parametri giusti.
    
    Da quello che ho capito sembrerebbe che non scrive la riga nel db.
    
    Ciao

  • User Attivo

    Ciao,
    puoi postare la struttura della tabella?

    Nel frattempo:
    forse è solo un errore di trascrizione quando hai postato qui, ma alla fine della query manca un apice:

    
    '$email)";
    
    

    dovrebbe essere

    
    '$email')";
    
    

    Fai anche questa modifica e controlla se è generato un errore:
    [php]
    $risultato=mysql_query($query,$db);
    echo mysql_error($db);
    [/php]

    Alessandro


  • User

    Ciao Alessandro,
    per quanto riguarda '$email' ho commesso un errore di battitura, per quanto riguarda 'echo mysql_error($db)' mi ritorna: mysql_error(Resource id #4).
    inserisco la tabella 'elenco_soci' ricavate dall'esportazione di phpmyadmin:

    
    --
    -- Struttura della tabella `elenco_soci`
    --
    
    CREATE TABLE IF NOT EXISTS `elenco_soci` (
      `id_socio` int(10) NOT NULL auto_increment,
      `data_iscrizione` int(13) default NULL,
      `username` varchar(32) default NULL,
      `password` varchar(32) default NULL,
      `cognome` varchar(30) default NULL,
      `nome` varchar(30) default NULL,
      `nazionalità` varchar(20) default NULL,
      `comune_nascita` varchar(30) default NULL,
      `provincia_nascita` varchar(2) default NULL,
      `data_nascita` int(13) default NULL,
      `sesso` varchar(1) default NULL,
      `codice_fiscale` varchar(16) default NULL,
      `comune_residenza` varchar(30) default NULL,
      `provincia_residenza` varchar(2) default NULL,
      `cap` varchar(5) default NULL,
      `indirizzo` varchar(50) default NULL,
      `cartellino_figc` varchar(8) default NULL,
      `telefono_abitazione` varchar(15) default NULL,
      `telefono_cellulare` varchar(15) default NULL,
      `email` varchar(50) default NULL,
      PRIMARY KEY  (`id_socio`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=769 ;
    
    

    e l'ultima parte di codice per il salvataggio dei dati

    
    $query = "INSERT INTO 'elenco_soci' 
    ('data_iscrizione', 'username', 'password', 'cognome', 'nome', 'nazionalita', 'comune_nascita', 'provincia_nascita', 'data_nascita', 'sesso', 'codice_fiscale', 'comune_residenza', 'provincia_residenza', 'cap', 'indirizzo', 'cartellino_figc', 'telefono_abitazione', 'telefono_cellulare', 'email') VALUES
    ('$data_iscrizione', '$username', '$password', '$cognome', '$nome', '$nazionalita', '$comune_nascita', '$provincia_nascita', '$data_nascita', '$sesso', '$codice_fiscale', '$comune_residenza', '$provincia_residenza', '$cap', '$indirizzo', '$cartellino_figc', '$telefono_abitazione', '$telefono_cellulare', '$email')";
    
    echo "<br><br> Query: $query<br><br> db: $db";
    
    $risultato=mysql_query($query,$db);
    echo "<br>my_sql error: mysql_error($db)<br>";  
    echo "<br><br>Risultato: $risultato | mysql_query($query,$db)";
    echo "<br><br>db_host, db_user e db_pass: $db_host, $db_user, $db_pass";
    mysql_close();
    
    

  • User Attivo

    Nome del campo sul db:

    
    `nazionalità`
    
    

    lo hai scritto con à, mentre nella insert è senza accento.


  • User

    E' vero..
    l'ho rinominato nel db da 'nazionalità' a 'nazionalita'
    però mi ritorna sempre lo stesso errore.

    Ma cosa significa 'mysql_error(Resource id #4)'?


  • User Attivo

    Significa che non hai scritto il codice come ti ho suggerito:
    [PHP]
    echo mysql_error($db);
    [/PHP]
    è diverso da
    [PHP]
    echo "<br>my_sql error: mysql_error($db)<br>";
    [/PHP]

    All'interno dei doppi apici vengono valutate le variabili, ma non vengono eseguite le funzioni. Quindi invece di eseguire la funzione che ti ho suggerito hai semplicemente scritto a video il nome della funzione con, tra le parentesi, il contenuto della variabile $db che, come detto prima, è l'unica che è stata valutata.

    Volendo inserire i <br> e altro testo oltre al normale output della funzione avresti dovuto scrivere:
    [PHP]
    echo "<br>my_sql error: ".mysql_error($db)."<br>";
    [/PHP]

    Lo stesso discorso vale per
    [PHP]
    echo "<br><br>Risultato: $risultato | mysql_query($query,$db)";
    [/PHP]
    (Qui sarebbe inutile comunque eseguire la funzione visto che mysql_query() è già utilizzata 2 righe prima).

    Alessandro


  • User

    scusami, hai perfettamente ragione, ma mi sto perdendo un pò.
    l'errore che mi restituisce:

    
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''elenco_soci' ( 'data_iscrizione', 'username', 'password', 'cognome', 'nome' at line 1
    
    

  • User

    Ho tolto tutti gli apici ai nomi dei campi e funziona.

    E' possibile che mi vedeva i singoli apici come doppi apici?

    Ho altre tabelle con gli apici tipo questa e funziona regolarmente:

    
    $query = "INSERT INTO `news` 
    		(`data`, `titolo`, `contenuto`, `nome`, `cognome`) values 
    		('$data', '$titolo','$contenuto', '$nome', '$cognome')";
    		
    		Echo "News inserita correttamente!";
    		
    		$risultato=mysql_query($query,$db);
    
    		mysql_close();
    
    

    qual'è la differenza di questi apici?

    Grazie mille per la tua disponibilità


  • User Attivo

    Confronta la struttura della tabella che ti ha generato phpmyadmin con la tua query.

    Questo ` (backquotes)
    e questo **' **(quotes)
    sono due apici differenti.

    Per delimitare i nomi delle tabelle e dei campi devi usare il primo, backquotes.
    L'altro, ovvero l'apice semplice che ottieni normalmente premendo il relativo tasto sulla tastiera, serve a delimitare i dati.

    [Edit:] stavo giusto scrivendoti quello che poi hai chiesto 🙂

    Alessandro


  • User

    Grazie mille Alessandro, se volsessi scrivere il backquotes da tastiera?


  • User Attivo

    Sulla tastiera italiana non è presente.
    L'unico modo che conosco è passando attraverso il codice ASCII, che è 96.

    ALT + 96 dal tastierino numerico]

    Alessandro


  • User

    grazie e buonanotte 😉