Visualizzazione risultati 1 fino 8 di 8

Discussione: [MYSQL] Ho una query sql di inserimento dati che non funziona

  1. #1
    Guest

    Predefinito [MYSQL] Ho una query sql di inserimento dati che non funziona [RISOLTO]

    Come da titolo, eseguo questa query per inserire dati in un database mysql.
    Codice PHP:
    $query = "INSERT INTO ".$table." (num_gara, data, squadra_casa, squadra_ospiti, ris_squadra_A, ris_squadra_B) VALUES ('".$num_gara."', '".$data."', '".$squadra_casa."', '".$squadra_ospiti."', '".$ris_squadra_A."', '".$ris_squadra_B."')";
    Lo eseguo tramite un form, che passa alla pagina stessa le variabili. Ogni volta mi appare il messaggio di corretto inserimento (vedi sotto), ma quando vado a vedere con phpmyadmin scopro che non ha inserito un bel niente. la tabella è sempre vuota. Riporto il pezzo di codice riguardante la connessione col database.

    Codice PHP:
    <?php
    function insert_ris() {
    /* DATI */
    $db_host = "localhost";
    $db_user = "polarcade";
    $db_password = "***************";
    $db_name = "my_polarcade";
    /* FINE DATI */
    $db = mysql_connect($db_host, $db_user, $db_password)
    or die (
    "Errore nella connessione al database. Verificare i parametri nel file mysql.php");
    mysql_select_db($db_name, $db)
    or die (
    "Errore nella selezione del database. Verificare i parametri nel file mysql.php");
    $table = "cal_" . $table ;
    $data = "$day/$month/$year";
    $query = "INSERT INTO ".$table." (num_gara, data, squadra_casa, squadra_ospiti, ris_squadra_A, ris_squadra_B) VALUES ('".$num_gara."', '".$data."', '".$squadra_casa."', '".$squadra_ospiti."', '".$ris_squadra_A."', '".$ris_squadra_B."')";
    mysql_query($query);
    mysql_close($db);
    echo
    "<font face=\"verdana\" size=\"3\" color=\"#000000\"><b>Risultato inserito correttamente</b></font>";
    }

    if (
    $insert_form)
    {
    if (
    $day && $month && $year && $table && $table != "null" && $squadra_casa && $squadra_ospite && $ris_squadra_A && $ris_squadra_B) {
    insert_ris();
    }
    else { echo
    "NON HAI INSERITO TUTTI I CAMPI"; }
    }
    ?>
    Ultima modifica di polarcade : 27-11-2005 alle ore 19.47.41 Motivo: Soluzione trovata

  2. #2
    Guest

    Predefinito

    ma $table non ha valore in

    $table = "cal_" . $table ;

    mavericck

  3. #3
    Guest

    Predefinito

    i valori glieli passo tramite un form. non ho mai detto che quello è tutto il codice della pagina. a me interessa sapere solo se la sintassi di quello che ho postato è corretta.

  4. #4
    Guest

    Predefinito

    La sintassi è corretta. Comunque per verificare l'effettiva esecuzione delle query
    sostituisci

    Codice PHP:
    mysql_query($query);
    con

    Codice PHP:
    if (mysql_query($query) == false)
    {
    echo(
    mysql_error());
    }
    mavericck

  5. #5
    Guest

    Predefinito

    ma nn fai prima a skrivere

    Codice PHP:
    mysql_query($query)or die(mysql_error());

  6. #6
    Guest

    Predefinito

    Citazione Originalmente inviato da mavericckweb
    La sintassi è corretta. Comunque per verificare l'effettiva esecuzione delle query
    sostituisci

    Codice PHP:
    mysql_query($query);
    con

    Codice PHP:
    if (mysql_query($query) == false)
    {
    echo(
    mysql_error());
    }
    mavericck

    cosi facendo mi restituisce questo mex:

    Table 'my_polarcade.cal_' doesn't exist

    my_polarcade è il nome del database o.o mi sa che ho fatto qualche errorino o.o posto il codice del form, che invia i dati alla stessa pagina in cui è contenuto:

    Codice:
    <table border="0" width="95%">
    <form method="post" action="inserisci_ris.php">
    <tr><td colspan="2" align="center"><font face="verdana" size="3" color="#000000"><b>Invia un risultato</b></font></td></tr>
    <tr><td colspan="2"><input type="hidden" name="insert_form" value="true"></td></tr> <!-- VERIFICA CHE 1 RIS SIA STATO MANDATO -->
    <tr>
    <td><font face="verdana" size="2" color="#000000"><b>Numero Gara</b></font></td>
    <td><input type="text" name="num_gara" size="22"></td>
    </tr>
    <tr>
    <td><font face="verdana" size="2" color="#000000"><b>Data *</b> <i>(gg/mm/aaaa)</i></font></td>
    <td><input type="text" name="day" size="2"> / <input type="text" name="month" size="2"> / <input type="text" name="year" size="4"></td>
    </tr>
    <tr>
    <td><font face="verdana" size="2" color="#000000"><b>Serie *</b></font></td>
    <td>
    <select name="table">
    <option value="null">&nbsp;</option>
    <option value="2div">Seconda Divisione Femminile Girone A</option>
    <option value="seried">Serie D Femminile Girone D</option>
    <option value="under16A">Under 16 Femminile Girone A</option>
    <option value="under16B">Under 16 Femminile Girone B</option>
    </select>
    </td>
    </tr>
    <tr>
    <td><font face="verdana" size="2" color="#000000"><b>Squadra locale *</b></font></td>
    <td><input type="text" name="squadra_casa" size="22"></td>
    </tr>
    <tr>
    <td><font face="verdana" size="2" color="#000000"><b>Squadra ospite *</b></font></td>
    <td><input type="text" name="squadra_ospite" size="22"></td>
    </tr>
    <tr>
    <td><font face="verdana" size="2" color="#000000"><b>Punteggio casa *</b></font></td>
    <td><input type="text" name="ris_squadra_A" size="22"></td>
    </tr>
    <tr>
    <td><font face="verdana" size="2" color="#000000"><b>Punteggio ospiti *</b></font></td>
    <td><input type="text" name="ris_squadra_B" size="22"></td>
    </tr>
    <tr>
    <td colspan="2">&nbsp;</td>
    </tr>
    <tr>
    <td align="center"><input type="submit" value="Invia risultato"></td>
    <td align="center"><input type="reset" value="Annulla"></td>
    </tr>
    </form></table>

  7. #7
    Guest

    Predefinito

    come dicevo prima non gli arriva il valore col nome della tabella. usa

    Codice PHP:
    $table = "cal_" . $_POST['table'];
    cioè per le var passate via post usa l'array globale $_POST con chiame il nome della var

    @livecommunity
    Se per ogni azione ci fosse un unico metodo per procedere, tutto sarebbe più facile, e non si riempirebbero databases di commenti inutili.

    mavericck

  8. #8
    Guest

    Predefinito

    Citazione Originalmente inviato da mavericckweb
    come dicevo prima non gli arriva il valore col nome della tabella. usa

    Codice PHP:
    $table = "cal_" . $_POST['table'];
    cioè per le var passate via post usa l'array globale $_POST con chiame il nome della var

    @livecommunity
    Se per ogni azione ci fosse un unico metodo per procedere, tutto sarebbe più facile, e non si riempirebbero databases di commenti inutili.

    mavericck
    avevo gia' tentato questa soluzione per conto mio, ma il risultato non cambia. Posto il codice:

    Codice PHP:
    <?php
    function insert_ris() {
    /* DATI */
    $db_host = "localhost";
    $db_user = "polarcade";
    $db_password = "************";
    $db_name = "my_polarcade";
    /* FINE DATI */
    $db = mysql_connect($db_host, $db_user, $db_password)
    or die (
    "Errore nella connessione al database. Verificare i parametri nel file mysql.php");
    mysql_select_db($db_name, $db)
    or die (
    "Errore nella selezione del database. Verificare i parametri nel file mysql.php");
    $tabella = "cal_" . $tabella ;
    $data = "$day/$month/$year";
    $query = "INSERT INTO ".$tabella." (num_gara, data, squadra_casa, squadra_ospiti, ris_squadra_A, ris_squadra_B) VALUES ('".$num_gara."', '".$data."', '".$squadra_casa."', '".$squadra_ospiti."', '".$ris_squadra_A."', '".$ris_squadra_B."')";
    // mysql_query($query);
    if (mysql_query($query) == false)
    {
    echo(
    mysql_error());
    }
    mysql_close($db);
    echo
    "<font face=\"verdana\" size=\"3\" color=\"#000000\"><b>Risultato inserito correttamente</b></font>";
    }

    if (
    $insert_form)
    {
    $day = $_POST['day'];
    $month = $_POST['month'];
    $year = $_POST['year'];
    $tabella = $_POST['tabella'];
    $squadra_casa = $_POST['squadra_casa'];
    $squadra_ospiti = $_POST['squadra_ospiti'];
    $ris_squadra_A = $_POST['ris_squadra_A'];
    $ris_squadra_B = $_POST['ris_squadra_B'];

    if (
    $day && $month && $year && $tabella && $tabella != "null" && $squadra_casa && $squadra_ospite && $ris_squadra_A && $ris_squadra_B) {
    insert_ris();
    }
    else { echo
    "NON HAI INSERITO TUTTI I CAMPI"; }
    }
    ?>
    come vedi prima ho passato i valori da $_POST['var'] a $var (nome ipotetico) e poi ho richiamato la funzione insert_ris()

    EDIT: ho cambiato anche il nome della variabile da $table a $tabella, per non trascurare niente. ovviamente ho cambiato il nome anche nel form.

    EDIT2 : Sono riuscito a risolvere eliminando la funzione, e mettendo il contenuto al posto di insert_ris(); grazie a tutti.
    Ultima modifica di polarcade : 27-11-2005 alle ore 19.46.56 Motivo: soluzione trovata

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •