• Bannato User Attivo

    Problema inserimento in db mysql da form

    Salve a tutti..

    io ho questo tipo di problema, ho un form che all'inserimento dei dati dovrebbe inserirli nel database mysql ma mi dà sempre errore "Errore nella query. Query non eseguita":

    vi posto i due file:

    vendi.php
    <form action="inserisci.php" method="POST" enctype="multipart/form-data">
    <table
    style="width: 530px; height: 100px; text-align: left; margin-left: auto; margin-right: auto;">
    <tbody>
    <tr>
    <td style="text-align: right;"><strong>Data:</strong></td>
    <td width="100"><input type="text" name="data" class="input_valuta_data" value="" onclick="Calendar.show(this, '%m/%d/%Y', true)" onfocus="Calendar.show(this, '%m/%d/%Y', true)" onblur="Calendar.hide()" /></td>
    </tr>
    <input size="30" name="venditore" value="" type="hidden" class="input" readonly>
    <input type="hidden" name="email" value='""size="30" class="input" readonly>
    <input type="hidden" name="regione" value="'' size="30" class="input" readonly>
    <input type="hidden" name="localita" value=''" size="30" class="input" readonly>
    <input size="35" name="mail_asta" value="" type="hidden" readonly>

    <tr>
    

    <tr>
    <td style="width: 18%; text-align: right;"><strong>*</strong></td>
    <td width="75%"><input type="text" name="titolo" size="30" class="input"></td>
    </tr>
    <tr>
    <td style="text-align: right;"><strong></strong></td>
    <td width="100"><input size="15"
    value="" name="ean" type="text" class="input"> <a href="javascript:;"
    onclick="window.open('ean.php', 'titolo', 'width=410, height=220, resizable, status, scrollbars=1, location');">+ info</a></td>
    </tr>
    <tr>
    <td style="text-align: right;"><strong></strong><br><br></td>
    <td width="100"> <select name="categoria" type="Text" id="categoria" class="input">
    <option value="false" > </option>
    le varie option
    </select></td>
    </tr>
    <tr>
    <td style="text-align: right;"><strong>

    </strong></td>
    <td><input size="8" name="prezzo" value="" type="text" class="input_valuta"> Dividi i centesimi con il punto</td>
    </tr>
    <td style="text-align: right;"><strong></strong></td>
    <td>
    <input size="8" name="prezzo_asta" value="" type="text" class="input_valuta"> Dividi i centesimi con il punto
    </td>
    </tr>

    <tr>
    <td style="text-align: right;"><strong>* </strong></td>
    <td><input size="8" name="risp1" value="" type="text" class="input_valuta"> Dividi i centesimi con il punto <a href="javascript:;"
    onclick="window.open('riserva.php', 'titolo', 'width=410, height=210, resizable, status, scrollbars=1, location');">+ info</a>
    </td>
    </tr>
    <tr>
    <td style="text-align: right;"><strong></strong></td>
    <td><input type="text" name="dom1" class="input_valuta_data" value="" onclick="Calendar.show(this, '%m/%d/%Y', true)" onfocus="Calendar.show(this, '%m/%d/%Y', true)" onblur="Calendar.hide()" />
    </td>
    </tr>
    <tr>
    <tr>
    <td style="text-align: right;"><strong></strong></td>
    <td><input size="8" name="spedizione" value="" type="text" class="input_valuta"> Se la spedizione è gratuita inserisci 0 oppure lascia vuoto.
    </td>
    </tr>
    <tr>
    <td style="width: 18%; text-align: right;"><strong>
    :</strong></td>
    <td width="75%"><input type="text" name="quantita" size="4" class="input_valuta"></td>
    </tr>

    <tr>
    <td style="width: 18%; text-align: right;"><strong></strong></td>
    <td width="75%"><textarea name = "descrizione" ROWS = "20" COLS = "50" class="textarea"></TEXTAREA></td>
    </tr>
    <tr>
    <td style="text-align: right;"><br><strong>*</strong><br><br></td>
    <td>
      
    Nuovo <input type="radio" name="condizione" value="Nuovo"/>
    Usato <input type="radio" name="condizione" value="Usato"/>
    </td>
    </tr>
    <tr>
    <td style="text-align: right;"><strong></strong></td>
    <td width="100"><input type="file" name="linkimg" size="40" class="input"></td>
    </tr>

    <tr>
    <td style="text-align: right;"><input name="captcha" size="4" type="text" value="<?= $frasi[$rand] ?>" readonly></td>
    <td style="text-align: left;"><input type="text" name="contr_cap" value="" class="input_valuta_data"> Scrivi il codice</td>
    </tr>
    </tbody>
    </table><br>      *campi obbligatori
    <hr>
    <input type="submit" class="submit" name="submit" value="Inserisci Oggetto" />
    </form>

    inserisci.php
    <?php
    $username="";
    $password="";
    $database="";

    do {
    if (is_uploaded_file($_FILES['linkimg']['tmp_name'])) {
    // Controllo che il file non superi i 18 KB
    if ($_FILES['linkimg'] > 52428800) {
    $msg = "<p>Il file non deve superare i 180 KB!!</p>";
    break;
    }
    // Sposto il file nella cartella da me desiderata in questo caso upload_img
    if (move_uploaded_file('upload_img/'.$_FILES['linkimg']['tmp_name'],'upload_img/'.$_FILES['linkimg']['name'])) {
    $msg = "<p>Errore nel caricamento dell'immagine!!</p>";
    break;
    }
    }
    } while (false);
    echo $msg;

    $data=$_POST['data'];
    $venditore=$_POST['venditore'];
    $titolo=$_POST['titolo'];
    $ean=$_POST['ean'];
    $categoria=$_POST['categoria'];
    $prezzo=$_POST['prezzo'];
    $prezzoasta=$_POST['prezzo_asta'];
    $mailasta=$_POST['mail_asta'];
    $spedizione=$_POST['spedizione'];
    $email=$_POST['email'];
    $regione=$_POST['regione'];
    $localita=$_POST['localita'];
    $descrizione=$_POST['descrizione'];
    $condizione=$_POST['condizione'];
    $linkimg='upload_img/'.$_FILES['linkimg']['name'];
    $quantita=$_POST['quantita'];
    $dom1=$_POST['dom1'];
    $risp1=$_POST['risp1'];
    $cap=$_POST['captcha'];
    $cont=$_POST['contr_cap'];

    mysql_connect("",$username,$password);

    @mysql_select_db($database)
    or die( "Impossibile selezionare il database.");

    $query = "INSERT INTO utenti ('$id','$data','$venditore','$titolo','$ean','$categoria','$prezzo','$prezzoasta','$mailasta','$spedizione','$email','$regione','$localita','$descrizione','$condizione','$linkimg','$quantita','$dom1','$risp1','$cap',$contr')";

    mysql_query($query) or die( "Errore nella query. Query non eseguita");
    mysql_close();

    ?>

    AIUTATEMI STO IMPAZZENDO...


  • ModSenior

    Ciao,
    invece di:
    [php]
    mysql_query($query) or die( "Errore nella query. Query non eseguita");
    [/php]
    Metti:
    [php]
    mysql_query($query) or die( "Errore nella query. Query non eseguita".mysql_error());
    [/php]
    In modo da visualizzare l'errore nella query.


  • Bannato User Attivo

    Grazie ora ci provo...e ti dico...


  • Bannato User Attivo

    Dark,

    ho provato ad inserire un oggetto e questo mi ha dato come 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 'hard disk portatile Rikiki di LaCie presenta uno dei formati più piccoli sul me' at line 1

    penso sia l'apostrofo " ' " quindi come faccio a dire al database che sono dei caratteri speciali??

    Se sbaglio correggimi subito...


  • ModSenior

    Devi utilizzare mysql_real_escape_string sulle variabili prima di utilizzarle nella query.


  • Bannato User Attivo

    MI faresti un esempio?


  • ModSenior

    Una cosa di questo genere:
    [php]
    $data=mysql_real_escape_string($_POST['data']);
    [/php]


  • Bannato User Attivo

    Ho fatto come mi hai detto e questo è il risultato:

    Warning: mysql_real_escape_string(): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)


  • ModSenior

    Puoi postare il codice completo che hai utilizzato?

    EDIT: Il mysql_connect mettilo all'inizio non prima di fare la query.


  • Bannato User Attivo

    Dal codice che ho postato ho modificato questo:

    $data=mysql_real_escape_string($_POST['data']);
    $venditore=mysql_real_escape_string($_POST['venditore']);
    $titolo=mysql_real_escape_string($_POST['titolo']);
    $ean=mysql_real_escape_string($_POST['ean']);
    $categoria=mysql_real_escape_string($_POST['categoria']);
    $prezzo=mysql_real_escape_string($_POST['prezzo']);
    $prezzoasta=mysql_real_escape_string($_POST['prezzo_asta']);
    $mailasta=mysql_real_escape_string($_POST['mail_asta']);
    $spedizione=mysql_real_escape_string($_POST['spedizione']);
    $email=mysql_real_escape_string($_POST['email']);
    $regione=mysql_real_escape_string($_POST['regione']);
    $localita=mysql_real_escape_string($_POST['localita']);
    $descrizione=mysql_real_escape_string($_POST['descrizione']);
    $condizione=mysql_real_escape_string($_POST['condizione']);
    $linkimg='upload_img/'.$_FILES['linkimg']['name'];
    $quantita=mysql_real_escape_string($_POST['quantita']);
    $dom1=mysql_real_escape_string($_POST['dom1']);
    $risp1=mysql_real_escape_string($_POST['risp1']);
    $cap=mysql_real_escape_string($_POST['captcha']);
    $cont=mysql_real_escape_string($_POST['contr_cap'];


  • Bannato User Attivo

    Ho effettuato 2 inserimenti e non ha dato ancora problemi per ora...Se ho risolto ti ringrazio con tutto il cuore!!!