Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    salvare dati in table mysql

    ciao a tutti
    ho una table (candidati) così composta:
    id
    numero_candidato
    candidato
    numero lista
    nome lista.
    con un file richiamo tutti i candidati che hanno le caratterisiche richieste inseririsco i voti per ognuno di essi e poi vorrei salvare i dati in una seconda table (preferenze)così composta:
    sez
    numero_candidato
    candidato
    numero_lista

    ho povato ma mi salva solo l'ultimo candidato della lista

    come fare?

  2. #2
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Se posti il codice vediamo dove sbagli

  3. #3
    Codice PHP:
    mysql_query("insert into preferenze (sez, numero_cand, candidato, voti) 
                VALUES ('
    $_POST[sez]', '$_POST[num_cand]', '$_POST[candidato]', '$_POST[voti]')"); 

  4. #4
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Intentevo tutto lo script php...così mica si capisce perchè ti salva solo l'ultimo

  5. #5
    questo è lo script che invia i dati
    $query = "SELECT * FROM candidati WHERE numero_lista = 21
    ";
    $result = mysql_query($query)or die(mysql_error());
    while ($row = mysql_fetch_assoc($result))
    {
    ?>
    <table width="950" cellpadding="2" cellspacing="1">
    <tr>
    <td width="2%" valign="center" >
    <form action="preferenze_salva.php" method="post" name="form" id="form" onSubmit="return calcola(this);" >
    <input type=hidden name="sez" id="sez" value="<?php print $_POST['sez']; ?>">
    <input type="text" name="num_cand" id="num_cand" size="5" align="right" value="<?php print $row['numero_cand']; ?>">
    </td>

    <td width="50%" valign="center" >
    <input type="text" name="candidato" id="candidato" size="70" value="<?php print $row['candidato']; ?>">

    </td>
    <td width="50%" valign="center" align="left">
    <input type="text" name="voti" id="voti" >
    </td>

    <?php
    }
    ?>
    </tr>
    </table>
    <table width="950" cellpadding="2" cellspacing="1">
    <tr>
    <td width="100%" valign="center" align="center">
    <input name="submit" type="submit" value="Salva" tabindex="37" style="text-align:center; ">
    </td>
    </tr>

    </table>
    </form>

  6. #6
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    E' normale: le variabili (input) hanno tutte lo stesso nome, quindi viene preso solo l'ultimo
    Cambia i name degli input cos':

    Codice PHP:
    // $row['id'] è l'id del candidato
    <input type="text" name="data[<?php echo $row['id'?>][num_cand]" id="num_cand" size="5" align="right" value="<?php print $row['numero_cand']; ?>">
    ...
    <input type="text" name="data[<?php echo $row['id'?>][candidato]" size="70" value="<?php print $row['candidato']; ?>">
    ...
    <input type="text" name="data[<?php echo $row['id'?>][voti]" id="voti" >
    Nella pagina preferenze_salva.php fatti un print_r($_POST['data']) e cambia il tuo script in base all'array che ti esce fuori.

    PS: Ma perchè ti salvi sia num_candidato che candidato nella tab preferenze? non è meglio solo l'id che fa riferimento alla tabella candidati ?

    PPS: Dimenticavo, metti
    <form action="preferenze_salva.php" method="post" name="form" id="form" onSubmit="return calcola(this);" >
    <input type=hidden name="sez" id="sez" value="<?php print $_POST['sez']; ?>">
    prima del ciclo while

  7. #7
    infatti per quento riguarda il nome del candidato non mi serve, hai ragione tu.
    spiegami un poco dove metere lo script che mia ha postato e più precisamente come fare

  8. #8
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Una volta che hai cambiato i nomi degli input (e spostato <form> e l'input hidden), nella pagina preferenze_salva.php se metti all'inizio un print_r($_POST['data']) dovresti vedere l'array dei voti. dovrebbe essere qualcosa del tipo

    codice:
    data=>array()
         [17] => array()
                   [num_cand] => ...
                   [candidato] => ...
                   [voti] => ...
         [23] => array()
                   [num_cand] => ...
                   [candidato] => ...
                   [voti] => ...
         ...
    Di conseguenza devi cambiare lo script per leggere questo array e salvarlo

  9. #9
    fatto e mi esce questoArray ( [1] => Array ( [num_cand] => 1 [numero_lista] => 21 [voti] => 1 ) [2] => Array ( [num_cand] => 2 [numero_lista] => 21 [voti] => 2 ) [3] => Array ( [num_cand] => 3 [numero_lista] => 21 [voti] => 3 ) [4] => Array ( [num_cand] => 4 ecc

    adesso come faccio a salvare?

  10. #10
    ah ma quindi ce l'avevi la tabella pronta anche nel db? allora perchè l'altro post?
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

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.