• User

    Funzione update con somma di variabili

    Ciao a tutti,

    ho un problema. Questo di seguito è il mio codice:

    $hits_subiti_blue_snakes_giornata_1 = mysql_query (" SELECT giornata_1 AS g1_blue_snakes FROM squadre WHERE id = 'sporting_team' ");
    $hits_subiti_blue_snakes_giornata_2 = mysql_query (" SELECT giornata_2 AS g2_blue_snakes FROM squadre WHERE id = 'vikings' ");
    $hits_subiti_blue_snakes_giornata_3 = mysql_query (" SELECT giornata_3 AS g3_blue_snakes FROM squadre WHERE id = 'gears' ");
    $hits_subiti_blue_snakes_giornata_4 = mysql_query (" SELECT giornata_4 AS g4_blue_snakes FROM squadre WHERE id = 'decepticon' ");
    $hits_subiti_blue_snakes_giornata_5 = mysql_query (" SELECT giornata_5 AS g5_blue_snakes FROM squadre WHERE id = 'die_hard' ");

    $hits_subiti_blue_snakes = mysql_query (" UPDATE squadre SET hits_subiti = $hits_subiti_blue_snakes_giornata_1 + $hits_subiti_blue_snakes_giornata_2 + $hits_subiti_blue_snakes_giornata_3 + $hits_subiti_blue_snakes_giornata_4 + $hits_subiti_blue_snakes_giornata_5 WHERE id = 'blue_snakes'");

    Io ho una sola tabella in cui in cui ho bisogno di prelevare alcuni campi. Dopodichè ho bisogno di fare un "update" con la somma dei risultati derivanti dalle query.

    Se eseguo le 5 query una per una funzionano correttamente, ma una volta che faccio l'update sommandole non mi aggiorna il campo.

    Potete aiutarmi per favore? Sto muovendo i primi passi nel php, spero di essere stato chiaro nell'esporre il mio problema.

    Grazie. Ivan


  • ModSenior

    Ciao,

    $hits_subiti_blue_snakes_giornata_1 è il risultato di mysql_query, devi prima fare un mysql_fetch_array.


  • User

    Ciao,

    ti chiedo scusa per la mia ignoranza...cosa intendi per fare un mysql_fetch_array ?

    E' un array unico che deve comprendere le 5 differenti query?


  • ModSenior

    [php]
    $hits_subiti_blue_snakes_giornata_1 = mysql_fetch_array(mysql_query (" SELECT giornata_1 AS g1_blue_snakes FROM squadre WHERE id = 'sporting_team' "));
    $hits_subiti_blue_snakes_giornata_2 = mysql_fetch_array(mysql_query (" SELECT giornata_2 AS g2_blue_snakes FROM squadre WHERE id = 'vikings' "));
    $hits_subiti_blue_snakes_giornata_3 = mysql_fetch_array(mysql_query (" SELECT giornata_3 AS g3_blue_snakes FROM squadre WHERE id = 'gears' "));
    $hits_subiti_blue_snakes_giornata_4 = mysql_fetch_array(mysql_query (" SELECT giornata_4 AS g4_blue_snakes FROM squadre WHERE id = 'decepticon' "));
    $hits_subiti_blue_snakes_giornata_5 = mysql_fetch_array(mysql_query (" SELECT giornata_5 AS g5_blue_snakes FROM squadre WHERE id = 'die_hard' "));

    $hits_subiti_blue_snakes = mysql_query (" UPDATE squadre SET hits_subiti = ".($hits_subiti_blue_snakes_giornata_1['giornata_1']+$hits_subiti_blue_snakes_giornata_2['giornata_2']+$hits_subiti_blue_snakes_giornata_3['giornata_3']+$hits_subiti_blue_snakes_giornata_4['giornata_4']+$hits_subiti_blue_snakes_giornata_5['giornata_5'])." WHERE id = 'blue_snakes'");
    [/php]
    Era fattibile anche con delle subquery invece di fare 6 query separate. Il carattere ` viene usato per indicare i campi nelle query, non va messo ovunque ed è differente da '.


  • User

    Perfetto. Funziona finalmente!! Grazie mille.

    Ti chiedo ancora una cosa. Nell'ultima query, quella in cui si sommano le 5 precedenti hai scritto così:

    mysql_query (" UPDATE squadre SET hits_subiti = ".($hits_subiti_blue_snakes_giornata_1['g1_blue_snakes'] + .......

    Le virgolette aperte e il punto, che hai poi chiuso alla fine della somma, cosa indicano? A cosa servono?

    Grazie mille per l'aiuto.
    Ivan