Inserire dati in un db tramite form

di il
8 risposte

Inserire dati in un db tramite form

Buona sera a tutti, sono alle prime armi con PHP e non riesco a capire come mai non funziona il codice che ho inserito, ho creato una pagina "nuovagara.php" con un form:
<table border="0">
<tr>
<td align="center">Nuova Gara</td>
</tr>
<tr>
<td>
<table width="100%">
<form method="post" action="garacreata.php">
<tr>

<td>ID Gara:</td>
<td><input name="idfci" type="text" size="10">
</td>
</tr>
<tr>
<td>Data:</td>
<td>
<input name="data" type="text" size="15" maxlength="10">
</td>
</tr>
  <td>Nome Manifestazione:</td>
<td><input type="text" name="nomegara" size="40">
</td>
</tr>

<tr>
<td>Città:</td>
<td><input type="text" name="luogo" size="40">
</td>
</tr>

<tr>
<td>Società Organizzatrice:</td>
<td><input type="text" name="societa" size="40">
</td>
</tr>

<tr>
<td></td>
<td align="right"><input type="submit" value="Crea" name="submit"></td>
</tr>
</table>
</td>
</tr>
</table>
poi i dati me li invia nella pagina "garacreata.php"
<?php
echo $_POST['idfci'];?><p><?php
echo $_POST['nomegara'];?><p><?php
echo $_POST['data'];?><p><?php
echo $_POST['luogo'];?><p><?php
echo $_POST['societa'];?><p><?php

$idfci=$_POST['idfci'];
$nomegara=$_POST['nomegara'];
$data=$_POST['data'];
$luogo=$_POST['luogo'];
$societa=$_POST['societa'];

//recupero dati database
require ("conn.php");
$query = "INSERT INTO gare ('idfci','nomegara','data','luogo','societa')
VALUES ('$idfci','$nomegara','$data','$luogo','$societa')";
if (!$query)
{
die('Errore! Dati non registrati correttamente.');
}
if ($query)
{
die('Dati registrati correttamente.');
}
$conn = null;
?>
appena inserisco la nuova gara mi dice "dati registrati correttamente" ma quando vado a vedere nel database non vedo nessuna riga.
Un'ultima cosa, sto usando phpmyadmin.

Grazie in anticipo

8 Risposte

  • Re: Inserire dati in un db tramite form

    Ciao se non ho letto male manca proprio la funzione per eseguire le query, ora dipende da che versione php stai usando, prova con il buon vecchio metodo

    $query = mysql_query($query);
    Ma prima devi collegarti al DB che suppongo farai in conn.php giusto?
  • Re: Inserire dati in un db tramite form

    Si $conn è per la connessione al db, ho già provato con 'mysql_query()' ma non funziona e ho provato con
    $result = mysqli_query($conn, $query, 'MYSQL_STORE_RESULT');
    ma non mi funziona..
  • Re: Inserire dati in un db tramite form

    Nel dubbio stampa a video la query e prova ad inserirla manualmente nel db..... cosi da poter constatare se sbagli la query o altro.
    Comunque a naso sembra che tu scriva male la query, prova a modificarla cosi:
    $query = 'INSERT INTO gare (idfci,nomegara,data,luogo,societa) VALUES (\''.$idfci.'\',\''.$nomegara.'\',\''.$data.'\',\''.$luogo.'\',\''.$societa.'\')';
    $result = mysqli_query($query);
    
    Ovviamente da formattare secondo le specifiche del tuo db, ma cosi generalmente dovrebbe andare

    piccolo PS
    echo $_POST['idfci'].'<br>'.
    $_POST['nomegara'].'<br>'.
    $_POST['data'].'<br>'.
    $_POST['luogo'].'<br>'.
    $_POST['societa'];
    anziche:
    <?php
    echo $_POST['idfci'];?><p><?php
    echo $_POST['nomegara'];?><p><?php
    echo $_POST['data'];?><p><?php
    echo $_POST['luogo'];?><p><?php
    echo $_POST['societa'];?><p><?php
  • Re: Inserire dati in un db tramite form

    Ho provato sia così
    $insert = "INSERT INTO 'gare'('idfci', 'nomegara', 'data', 'luogo', 'societa', 'codreg', 'cin', 'codsoc', 'id_cat') VALUES (\''.$idfci.'\',\''.$nomegara.'\',\''.$data.'\',\''.$luogo.'\',\''.$societa.'\',\''.$codreg.'\',\''.$cin.'\',\''.$codsoc.'\',\''.$cat.'\')"
    che così
    $insert = "INSERT INTO `gare`(`id_gare`, `idfci`, `nomegara`, `data`, `luogo`, `societa`, `codreg`, `cin`, `codsoc`, `id_cat`) VALUES (NULL,$idfci,$nomegara,$data,$luogo,$societa,$codreg,$cin,$codsoc,$cat)";
    e poi ho messo
    $result = $conn->query($insert);
    if (!$result)
    {
    die('Errore! Dati non registrati correttamente.');
    }
    if ($result)
    {
    die('Dati registrati correttamente.');
    }
    
    $conn = null;
    alla fine mi da "Errore, Dati non registrati correttamente."

    Ho provato di agni ma non riesco a scrivere sul database
  • Re: Inserire dati in un db tramite form

    Allora prova a stampare la query ed inseriscila a mano tramite myadmin vedi che succede
  • Re: Inserire dati in un db tramite form

    Ci sono finalmente riuscito, grazie.
    probabilmente sbagliavo qualche virgoletta

  • Re: Inserire dati in un db tramite form

    Bene.... posta la soluzione per tutti
  • Re: Inserire dati in un db tramite form

    //Query
    $insert = "INSERT INTO `gare`(`idfci`, `nomegara`, `data`, `luogo`, `societa`, `codreg`, `cin`, `codsoc`, `id_cat`) VALUES ('$idfci','$nomegara','$data','$luogo','$societa','$codreg','$cin','$codsoc','$cat')";
    
    //Invio query
    $result = $conn->query($insert);
Devi accedere o registrarti per scrivere nel forum
8 risposte