Inserire dati in un db tramite form

di Anonimizzato16645 il
8 risposte
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

  • 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?
  • 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..
  • 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
  • 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
  • Allora prova a stampare la query ed inseriscila a mano tramite myadmin vedi che succede
  • Ci sono finalmente riuscito, grazie.
    probabilmente sbagliavo qualche virgoletta

  • Bene.... posta la soluzione per tutti
  • //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