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

    Aiutooo! Il programma mi inserisce di nuovo tutti i vecchi campi nel database!

    Salve a tutti e auguri di buone feste!
    Mi trovo con un problema che non sono riuscito a risolvere.
    Ho realizzato un programmino per prelevare dati da una tabella per inserirli in un'altra e all'inizio sembrava che tutto funzionasse per il meglio, ma successivamente mi sono accorto che ogni volta che richiamo il link per nuovi inserimenti, senza che io inserisca niente ma solo per il richiamo del programma mi fa l'inserimento di tutti i dati inseriti precedentemente.
    In altre parole dopo aver inserito cinque nominativi,tutte le volte che richiamo il programma mi inserisce nuovamente le cinque righe nel database e inserendo un nuovo nominativo il programma va ad inserire i cinque nominativi precedenti più quello nuovo.
    Spero davvero che ci possa essere qualcuno che mi può aiutare!
    Il codice completo del HTML e PHP è il seguente:

    <body>
    <br><br><br><br>
    <form action="inserimento_soci_raduno.php" name="archivio_soci" method="POST" onSubmit="return controllo1();">
    <div align="center">


    INSERIMENTO SOCI PER RADUNI
    <table border="1" cellpadding="0" width="40%">
    <tr>
    <td width="65%"><font size="4" face="Verdana" color="#FF0000">Cognome socio</font></td>
    <td width="65%" align="center">
    <p align="center">
    <font face="Verdana" size="4">
    <font color="#0000FF">
    <span style="mso-bidi-font-size: 12.0pt">
    <input type="text" name="cognomesocio1" size="22" style="color: #FF0000; font-family: Verdana; font-size: 14 pt;">
    </span></font></font></p>
    </td>
    </tr>


    <tr>
    <td width="134%" colspan="2">
    <p align="center"><input type="submit" value="INSERIMENTO SOCIO" name="cerco" style="font-family: Verdana; font-size: 14 pt"></td>
    </tr></table></div>
    </form>


    <br><br><br>
    <div align="center">
    <table width="" height="" border="1">
    <tr><td><a href="/tcc/inserimento_raduni.html">Vai all'inserimento raduni</a></td>
    <td><a href="/tcc/cercodato_socio.php">Vai alla ricerca dati soci</a></td>
    </tr>
    </table>
    </div>

    <br><br><br>
    <div align="center">
    <table width="" height="" border="1">
    <tr><td><a href="/tcc/archiviosoci_tcc.html">Vai all'inserimento soci</a></td>
    <td><a href="/tcc/cercodati_soci.php">Vai all'archivio soci</a></td>
    </tr>
    </table>
    </div>

    </body>
    </html>


    <?php


    //print ("Programma per l'inserimento soci per il raduno.");


    $nomehost = "localhost";


    $utente = "root";


    $parola = "";


    $nome = "gestione_tcc";


    $connessione=mysql_connect($nomehost,$utente,$paro la);


    $selezione = mysql_select_db($nome, $connessione);


    $q_1 = mysql_query("SELECT * FROM archivio_soci ORDER BY tessera1, cognomesocio1 ");


    while ($riga=mysql_fetch_array($q_1)) {


    $tessera1 = $riga['tessera1'];
    $cognomesocio1 = $riga['cognomesocio1'];
    $nomesocio1 = $riga['nomesocio1'];
    $pm1 = $riga['pm1'];
    $cognomesocio2 = $riga['cognomesocio2'];
    $nomesocio2 = $riga['nomesocio2'];
    $pm2 = $riga['pm2'];
    $telefono1 = $riga['telefono1'];
    $cellulare1 = $riga['cellulare1'];
    $qualifica1 = $riga['qualifica1'];


    $q_2 = mysql_query("INSERT INTO partecipanti_carrara (tessera1, cognomesocio1, nomesocio1, pm1, cognomesocio2, nomesocio2, pm2, telefono1, cellulare1, qualifica1)
    VALUES ('$tessera1','$cognomesocio1','$nomesocio1','$pm1' ,'$cognomesocio2','$nomesocio2','$pm2','$telefono1 ','$cellulare1','$qualifica1')");


    }
    mysql_close($connessione);
    ?>
    paolomass36

  2. #2
    Fai una select di tutti i record presenti nella tabella, la scorri nel while e fai una insert per ogni record. Cosa ti aspettavi accadesse?!?!
    Non capisco il motivo della select? Devi semplicemente prendere i dati passati dal form ed effettuare una insert.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Grazie per la risposta, ma forse mi sono spiegato male.
    Dal form prendo solo il cognome del socio per la ricerca e per inserire i dati da una tabella ad un'altra.
    La select serve per prendere i dati dalla tabella "archivio_soci" e la insert successiva per inserire tutti quei dati presi dalla select nella tabella "partecipanti_carrara" e senza la select non inserirei niente.
    O forse non ho capito bene quello che mi dici?
    Grazie comunque per il tuo interessamento.
    Ciao
    paolomass36

  4. #4
    La select che fai non ha alcuna condizione where per cui prelevi tutti i record inoltre l'order by si effettua su campi della tabella.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    Avrai certamente capito che non sono molto pratico del php.
    Allora secondo te che cosa dovrei fare? Sostituire where con order by?
    Potresti darmi delle indicazioni più precise?
    Ti ringrazio e ti saluto
    paolomass36

  6. #6
    Tralasciando il fatto che l'esigenza di dover effettuare una insert di valori già presenti nel DB è indice di una errata progettazione del DB stesso, se devi semplicemente recuperare le info del socio inserito nel form allora devi aggiungere una clausola where alla select.

    Codice PHP:
    ...
    $cognomesocio1 $_POST['cognomesocio1'];
    ...
    $q_1 mysql_query("SELECT * FROM archivio_soci WHERE cognomesocio1 = '$cognomesocio1'"); 

    Però ti faccio notare che potrebbero esserci soci con lo stesso cognome.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  7. #7
    Parse error: syntax error, unespected T_VARIABLE in C:\ ecc. ecc rigo 90.
    Il rigo 90 è quello della select.
    Avevo già provato a usare il where ma ero andato sull'order by perchè where non mi funzionava.
    paolomass36

  8. #8
    Scusami, ma non avevo messo il punto e virgola dopo la stringa $_POST.
    Adesso funziona perfettamente.
    Sei stato bravissimo e ti ringrazio con tutto il cuore!
    Ciaooooooooooooooo!!!!!!!!!!!!!
    paolomass36

  9. #9
    Quote Originariamente inviata da paolomass36 Visualizza il messaggio
    Parse error: syntax error, unespected T_VARIABLE in C:\ ecc. ecc rigo 90.
    Il rigo 90 è quello della select.
    Avevo già provato a usare il where ma ero andato sull'order by perchè where non mi funzionava.
    Nella riga postata da me non vedo errori di sintassi.

    Non capisco cosa significa che hai utilizzato l'order by piuttosto che il where dato che NON fanno la stessa cosa.


    Ok abbiamo postato contemporaneamente vedo che hai risolto.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  10. #10
    Visto che sei così bravo nel php e anche molto disponibile, potrei chiederti un ulteriore informazione?
    Se usassi la update al posto della insert, in questo programma come in qualcun altro, cosa dovrei fare?
    paolomass36

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 © 2025 vBulletin Solutions, Inc. All rights reserved.