• User

    Inserimento dati in database per regione

    Ciao a tutti.
    Vi spiego in breve ciò di cui ho bisogno.
    Devo creare un elenco, diviso per regioni, di utenti del sito.
    Questo avviene tramite un form che loro compilano.
    Vorrei che gli utenti venissero "catalogati" per regione. Ho riutilizzato un vecchio codice che mi aveva fatto un amico per una situazione analoga (infatti i nomi saranno un po' strampalati perchè la si parlava di stati, e qui regioni e la si dovevano inserire anche delle foto.... e qui no, quindi ho eliminato alcune parti)
    ecco il form
    [PHP]<form method="POST" action="salva.php" enctype="multipart/form-data">
    <table width="90%" height="515" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr valign="middle" class="Stile4">
    <td width="60%" align="left" height="32"><p align="left" class="Stile4">Nome e
    cognome:</td>
    <?php
    if(isset($_GET["nomecognome"]))
    {
    echo("<td width='59%' height='35'><input type='text' name='nome_cognome' size='40' value='$nomecognome'></td>");
    }
    else
    {
    echo("<td width='59%' height='35'><input type='text' name='nome_cognome' size='40'></td>");
    }
    ?>
    </tr>
    <tr>
    <td width="60%" height="30" align="left" valign="middle" class="Stile4">
    <p align="left">Regione</td>
    <td width="59%" height="35"><select size="1" name="stato">

      <?php
       include("connessione.php");
       $query="SELECT codice_stato, nome_stato FROM stati";
       $result=mysql_query($query, $conn);
       $i=0;
       while($row=mysql_fetch_array($result))
       {
        $codice_stato=$row["codice_stato"];
        $nome_stato=$row["nome_stato"];
        if($i==0)
        {
         echo("<option selected value=$codice_stato>$nome_stato</option>");
        }
        else
        { 
         echo("<option value=$codice_stato>$nome_stato</option>");
        }
    

    $i++;
    }
    ?>

        </select></td>
    </tr>
    <tr>
      <td width="60%" height="30" align="left" valign="middle" class="Stile4">
        <p align="left">Citt&agrave;:</td>
      <td width="59%" height="35"><input type="text" name="localita" size="25"></td>
    </tr>
    <tr>
      <td width="60%" height="30" align="left" valign="middle" class="Stile4">Recapito:</td>
      <td width="59%" height="35"><input type="text" name="data" size="25"></td>
    </tr>
    
    
    <tr>
      <td width="60%" height="158" align="left" valign="middle" class="Stile4"><span class="Stile5">Specie Allevate</span></td>
      <td width="59%" height="158"><textarea name="commento" cols="40" rows="5">...</textarea></td>
    </tr>
    <tr>
      <td width="60%" height="27" align="left" valign="middle" class="Stile4"></td>
      <td width="59%" height="27"><input type="submit" value="Invia" name="B1">
        <input type="reset" value="Cancella" name="B2"></td>
    </tr>
    

    </table>
    </form>[/PHP]
    che si collega al database myslq
    [PHP]<?php
    $conn=mysql_connect("localhost","ilbarrato","password");
    $db=mysql_select_db("my_ilbarrato", $conn);
    ?>[/PHP]
    e qui salva.php
    [PHP]<?php

    //testo
    $nomecognome=$_POST["nome_cognome"];
    $stato=$_POST["stato"];
    $localita=$_POST["localita"];
    $data=$_POST["data"];
    $commento=$_POST["commento"];
    if($nomecognome=="")
    {
    echo("
    <p align='left'><font face='Arial' color='#FFffff' size='2'><b>ERRORE</b></font></p>
    <p align='left'><font face='Arial' size='2' color='#FFffff'>Devi inserire il tuo nome.</font></p>
    <p align='left'><font face='Arial' size='2' color='#FFffff'><a href=javascript:history.back()>Torna indietro</a></font></p>
    ");
    }
    else
    { if($localita=="")
    {
    echo("
    <p align='left'><font face='Arial' color='#FFffff' size='2'><b>ERRORE</b></font></p>
    <p align='left'><font face='Arial' size='2' color='#FFffff'>Devi inserire la tua città.</font></p>
    <p align='left'><font face='Arial' size='2' color='#FFffff'><a href=javascript:history.back()>Torna indietro</a></font></p>
    ");
    }
    else
    { if($data=="")
    {
    echo("
    <p align='left'><font face='Arial' color='#FFffff' size='2'><b>ERRORE</b></font></p>
    <p align='left'><font face='Arial' size='2' color='#FFffff'>Devi inserire un recapito.</font></p>
    <p align='left'><font face='Arial' size='2' color='#FFffff'><a href=javascript:history.back()>Torna indietro</a></font></p>
    ");
    }
    else
    {
    //immagine
    include('connessione.php');
    $result=mysql_query("select max(codice_viaggio)as massimo from viaggi", $conn);
    $row=mysql_fetch_array($result);
    $result=mysql_query("insert into viaggi(codice_viaggio, data_viaggio, nomeCognomeUtente_viaggio, codice_stato, localita_viaggio, commento_viaggio, pubblicato_viaggio) values ('$data', '$nomecognome', '$stato', '$localita', '$commento', 'n', )", $conn);
    echo("
    <p align='left'><font face='Arial' color='#FFffff' size='2'><b>Processo corretto</b></font></p>
    <p align='left'><font face='Arial' size='2' color='#FFCC00'>$nomecognome, i tuoi dati sono stati registrati sul Database de ilBarrato.</font></p>
    <p align='left'><font face='Arial' size='2' color='#FFCC00'><a href=javascript:history.back()>Torna indietro</a></font></p>
    ");
    }
    }
    }
    ?>[/PHP]
    Il tutto funziona, dice che l'invio è stato effetuato... Ma poi sul database mi sembra non compari nulla.
    Come mai? Dove sbaglio?
    Ho cancellato qualcosa di troppo?
    Dimenticavo... Ho anche importato l'sql su mysql per l'elenco delle regioni.
    GRAZIE


  • User Attivo
    1. usa l'isruzione

    if (...) {
    } ELSEIF (...) {
    }

    invece che

    if (...) {
    } else {
    if (...) {
    } else {
    }
    }

    è mooolto + comodo....

    1. non hai inckluso in salva.php nesusn file perciò se nella query gli dici "su $conn", lui non sa cos'è connessione, e non salva!

    2. prova a mettere: $result = mysql_query("ecceccecc, $conn) or die ('errore:' . mysql_error());

    dimmi quando hai fatto, e che errore ti viene se viene


  • User

    @Oliviero said:

    1. non hai inckluso in salva.php nesusn file perciò se nella query gli dici "su $conn", lui non sa cos'è connessione, e non salva!
      dimmi quando hai fatto, e che errore ti viene se viene

    Quindi, cosa devo aggiungere?


  • User

    Senza fare il punto due, mi da questo errore
    errore: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 ')' at line 1


  • User Attivo

    mmm non dipende da ciò che ho scritto ma da qualcos'altro...

    per includere qualcosa in un'altra pagina i modo che sia "condiviso", puoi usare:

    include('pagina.ext'); --> se nn trova la pagina va avanti

    require('pagina.ext'); --> se jon trovala pagina blocca lo script


  • User

    Questo è il file originale che mi aveva fatto il mio amico e che funziona benissimo....
    Non vedo nessun include, a parte per connessione.php che ho lasciato anche io.

    [PHP] <?php
    error_reporting(0);
    $dimensionemassimaimmagine='6000000';
    $larghezzamassimaimmagine='550';
    $altezzamassimaimmagine='600';
    //testo
    $nomecognome=$_POST["nome_cognome"];
    $stato=$_POST["stato"];
    $localita=$_POST["localita"];
    $data=$_POST["data"];
    $commento=$_POST["commento"];
    if($nomecognome=="")
    {
    echo("
    <p align='left'><font face='Arial' color='#FFCC00' size='3'><b>ERRORE</b></font></p>
    <p align='left'><font face='Arial' size='2' color='#FFCC00'>Devi inserire il tuo nome e cognome.</font></p>
    <p align='left'><font face='Arial' size='2' color='#FFCC00'><a href=javascript:history.back()>Torna indietro</a></font></p>
    ");
    }
    else
    {
    //immagine
    include('connessione.php');
    $result=mysql_query("select max(codice_viaggio)as massimo from viaggi", $conn);
    $row=mysql_fetch_array($result);
    $nomefile=$row["massimo"]+1;
    if ($_FILES["file"]["type"] == "image/gif")
    {
    $formato='gif';
    }
    if ($_FILES["file"]["type"] == "image/jpg")
    {
    $formato='jpg';
    }
    if ($_FILES["file"]["type"] == "image/pjpeg")
    {
    $formato='jpeg';
    }

    $dimensioni = getimagesize($_FILES['file']['tmp_name']);
    $larghezza = $dimensioni[0];
    $altezza = $dimensioni[1];
    if (($_FILES["file"]["type"] == "image/gif")
    || ($_FILES["file"]["type"] == "image/jpg")
    || ($_FILES["file"]["type"] == "image/pjpeg")
    && ($_FILES["file"]<=$dimensionemassimaimmagine)
    && $larghezza<=$larghezzamassimaimmagine && $altezza<=$altezzamassimaimmagine)
    {
    $result=mysql_query("insert into viaggi(codice_viaggio, data_viaggio, nomeCognomeUtente_viaggio, codice_stato, localita_viaggio, commento_viaggio, pubblicato_viaggio, formatoImmagine_viaggio) values ('$nomefile', '$data', '$nomecognome', '$stato', '$localita', '$commento', 'n', '$formato')", $conn);
    copy($_FILES['file']['tmp_name'],'public/immagini_caricate/'.$nomefile.'.'.$formato);
    echo("
    <p align='left'><font face='Arial' color='#FFCC00' size='3'><b>IMMAGINE CARICATA CORRETTAMENTE</b></font></p>
    <p align='left'><font face='Arial' size='2' color='#FFCC00'>$nomecognome, la tua foto è stata salvata correttamente.</font></p>
    <p align='left'><font face='Arial' size='2' color='#FFCC00'><a href=javascript:history.back()>Carica una nuova foto</a></font></p>
    ");
    unlink($_FILES['file']['tmp_name']);
    }
    else
    {
    echo("
    <p align='left'><font face='Arial' color='#FFCC00' size='3'><b>ERRORE</b></font></p>
    <p align='left'><font face='Arial' size='2' color='#FFCC00'>$nomecognome, la tua foto non è stata caricata, controlla la dimensione, la lunghezza e l'altezza dell'immagine.</font></p>
    <p align='left'><font face='Arial' size='2' color='#FFCC00'><a href=javascript:history.back()>Torna indietro</a></font></p>
    ");
    }
    }
    ?>[/PHP]


  • User

    quindi?


  • User Attivo

    forse ho capito, ma non ti assicuro niente!

    prima di tutto leva alla 1a riga dopo il tag <?php

    il codice

    [php]

    error_reporting(0);

    [/php]

    che io non vedo a cosa serva... forse perchè non me ne intendo tantissimo...

    così da ottenere

    [php]

    <?php
    $dimensionemassimaimmagine='6000000';

    [...]

    [/php]

    rilancia lo script e dimmi...


  • User

    Funziona, ma come funzionava prima...

    Quello è il codice che ho usato per arrivare a questo, che NON FUNZIONA e non capisco il perchè:

    [PHP]<?php
    //testo
    $nomecognome=$_POST["nome_cognome"];
    $stato=$_POST["stato"];
    $localita=$_POST["localita"];
    $data=$_POST["data"];
    $commento=$_POST["commento"];
    if($nomecognome=="")
    {
    echo("
    <p align='left'><font face='Arial' color='#FFffff' size='2'><b>ERRORE</b></font></p>
    <p align='left'><font face='Arial' size='2' color='#FFffff'>Devi inserire il tuo nome.</font></p>
    <p align='left'><font face='Arial' size='2' color='#FFffff'><a href=javascript:history.back()>Torna indietro</a></font></p>
    ");
    }
    else
    { if($localita=="")
    {
    echo("
    <p align='left'><font face='Arial' color='#FFffff' size='2'><b>ERRORE</b></font></p>
    <p align='left'><font face='Arial' size='2' color='#FFffff'>Devi inserire la tua città.</font></p>
    <p align='left'><font face='Arial' size='2' color='#FFffff'><a href=javascript:history.back()>Torna indietro</a></font></p>
    ");
    }
    else
    { if($data=="")
    {
    echo("
    <p align='left'><font face='Arial' color='#FFffff' size='2'><b>ERRORE</b></font></p>
    <p align='left'><font face='Arial' size='2' color='#FFffff'>Devi inserire un recapito.</font></p>
    <p align='left'><font face='Arial' size='2' color='#FFffff'><a href=javascript:history.back()>Torna indietro</a></font></p>
    ");
    }
    else
    {
    include('connessione.php');
    $result=mysql_query("select max(codice_viaggio)as massimo from viaggi", $conn);
    $row=mysql_fetch_array($result);
    $result=mysql_query("insert into viaggi(codice_viaggio, data_viaggio, nomeCognomeUtente_viaggio, codice_stato, localita_viaggio, commento_viaggio, pubblicato_viaggio) values ('$data', '$nomecognome', '$stato', '$localita', '$commento', 'n', )", $conn) or die ('errore:' . mysql_error());
    echo("
    <p align='left'><font face='Arial' color='#FFffff' size='2'><b>Processo corretto</b></font></p>
    <p align='left'><font face='Arial' size='2' color='#FFCC00'>$nomecognome, i tuoi dati sono stati registrati sul Database de ilBarrato.</font></p>
    <p align='left'><font face='Arial' size='2' color='#FFCC00'><a href=javascript:history.back()>Torna indietro</a></font></p>
    ");
    }
    }
    }
    ?>[/PHP]


  • ModSenior

    L'errore è la query hai messo che vuoi riempire tutti i campi, ma nei valori ne hai messi un numero inferiore, ed inoltre c'è una virgola alla fine.


  • User

    Cosa manca?
    data c'è
    nome c'è
    stato c'è
    località c'è
    commento c'è

    Ho tolto la virgola

    [PHP]$result=mysql_query("insert into viaggi(codice_viaggio, data_viaggio, nomeCognomeUtente_viaggio, codice_stato, localita_viaggio, commento_viaggio, pubblicato_viaggio) values('$data', '$nomecognome', '$stato', '$localita', '$commento', 'n' )", $conn) or die ('errore:' . mysql_error());
    [/PHP]


  • ModSenior

    Campi:
    (codice_viaggio, data_viaggio, nomeCognomeUtente_viaggio, codice_stato, localita_viaggio, commento_viaggio, pubblicato_viaggio)

    Valori:
    ('$data', '$nomecognome', '$stato', '$localita', '$commento', 'n'

    i campi sono più dei valori


  • User

    [PHP]$result=mysql_query("insert into viaggi(data_viaggio, nomeCognomeUtente_viaggio, codice_stato, localita_viaggio, commento_viaggio) values('$data', '$nomecognome', '$stato', '$localita', '$commento', 'n' )", $conn) or die ('errore:' . mysql_error());
    [/PHP]

    Provo così?


  • ModSenior

    I campi sono 5 forse ti sei scordato qualche virgola(nomeCognomeUtente_viaggio) e i valori sono 6


  • User

    Ho risolto. Lo metto per eventuali curiosi o bisognosi:

    [PHP]
    <?php
    error_reporting(0);
    $nomecognome=$_POST["nome_cognome"];
    $stato=$_POST["stato"];
    $localita=$_POST["localita"];
    $data=$_POST["data"];
    $commento=$_POST["commento"];
    if($nomecognome=="")
    {
    echo("ERRORE");
    }
    else
    { if($localita=="")
    {
    echo("ERRORE");
    }
    else
    { if($data=="")
    {
    echo("ERRORE");
    }
    else
    {

    include('connessione.php');
    $result=mysql_query("select max(codice_viaggio)as massimo from viaggi", $conn);
    $row=mysql_fetch_array($result);
    $nomefile=$row["massimo"]+1;
    $result=mysql_query("insert into viaggi(codice_viaggio, data_viaggio, nomeCognomeUtente_viaggio, codice_stato, localita_viaggio, commento_viaggio, pubblicato_viaggio) values ('$nomefile', '$data', '$nomecognome', '$stato', '$localita', '$commento', 'n')", $conn);

    echo("CORRETTO");
    }
    }
    }
    ?>
    [/PHP]