Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    10

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

    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"; }

    ?>

  2. #2
    a prescindere dalla correttezza della sintassi... hai fatto una funzione a cui non passi manco un valore, come potrebbe funzionare?

    se i dati li passi con POST si presume tu li debba estrarre con $_POST ... ma questa e' una storia diversa dalla prima.

    http://it2.php.net/manual/it/languag...s.user-defined

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    10
    ho detto che quello è solo un pezzo del codice, non tutto. i valori glieli passo tramite un form:

    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">Invia un risultato</font></td></tr>
    <tr><td colspan="2"><input type="hidden" name="insert_form" value="true"></td></tr>
    <tr>
    <td><font face="verdana" size="2" color="#000000">Numero Gara</font></td>
    <td><input type="text" name="num_gara" size="22"></td>
    </tr>
    <tr>
    <td><font face="verdana" size="2" color="#000000">Data * (gg/mm/aaaa)</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">Serie *</font></td>
    <td>
    <select name="table">
    <option value="null"></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">Squadra locale *</font></td>
    <td><input type="text" name="squadra_casa" size="22"></td>
    </tr>
    <tr>
    <td><font face="verdana" size="2" color="#000000">Squadra ospite *</font></td>
    <td><input type="text" name="squadra_ospite" size="22"></td>
    </tr>
    <tr>
    <td><font face="verdana" size="2" color="#000000">Punteggio casa *</font></td>
    <td><input type="text" name="ris_squadra_A" size="22"></td>
    </tr>
    <tr>
    <td><font face="verdana" size="2" color="#000000">Punteggio ospiti *</font></td>
    <td><input type="text" name="ris_squadra_B" size="22"></td>
    </tr>
    <tr>
    <td colspan="2"></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>

  4. #4

    Allora....

    Penso che dovresti recuperare le variaabili che spedisci col post dal form.
    Penso che dovresti fare
    $num_gara=$_POST[$num_gara];
    ecc. ecc.
    Una volta che le tue variabili sono state prese puoi passarle alla funzione insert_ris().
    Comunque prova a togliere la funzione insert_ris() per fare una prova.
    Dopo che hai provato fai un altro tentivo passando le variabili alla funzione insert_ris().
    Prova così.

  5. #5
    Potrei quotarmi... rileggi la mia risposta:

    1) Non passi le variabili alla funzione.
    2) Se usi method = post la variabile si trova in $_POST['var'].


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    10
    ho fatto come mi dicevi, sostituendo $var con $_POST['var'] ma non funziona lo stesso. Dietro suggerimento ho sostituito

    Codice PHP:
    mysql_query($query); 
    con

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

    e ora mi restituisce questo mex Table 'my_polarcade.cal_' doesn't exist. my_polarcade è il nome del database.. e non capisco perche' sia andato a infilarsi dentro la variabile $table

  7. #7
    non si e' infilato .. c'e' di buon diritto. Se noti la tabella e':

    'my_polarcade.cal_'

    in pratica manca il suffisso:

    $table = "cal_" . $table ;

    devi mettere :

    $table = "cal_" . $_POST['table'] ;

    $_POST['var'] il 'var' significa "il nome della variabile" e sono tante.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    10
    lo so che con var te intendevi la variabile.. e difatti ho fatto (credo) correttamente. Ecco come ho fatto.

    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()

  9. #9
    elimina la funzione, buttala proprio. Prima fai funzionare lo script poi se conviene racchiudi lo script nella funzione.

    Le variabili non hanno visibilita' dentro la funzione se non gliele passi in qualche modo. Da sole dentro non vanno....

    e tre.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    10
    abbi pazienza, sto tentando di capirci qualcosa.. se ti scoccia rispondere non farlo..

    EDIT: eliminando la funzione e mettendo il contenuto funziona. Thanks

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.