Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Problema con insert multiplo

    Ciao a tutti,

    ho un form di qeusto tipo:

    dataInizio
    dataFine
    veicolo1
    ...

    Nella tabella mysql:
    data
    veicolo1
    veicolo....

    Ho provato a creare un ciclo per l'inserimento dei dati, infatti i veicoli devono essere inseriti tutti uguali per una settimana o un mese (dal XX al YY).

    Ho provato questo ciclo:

    Codice PHP:
    include('../inc/db/connectmySQL.inc.php');
    $dataIni $_REQUEST['dataIni'];
    $dataFine $_REQUEST['dataFin'];
    $primaUrg $_REQUEST['primaUrg'];
    //iserisci query
    for($i=$dataIni;$i<=$dataFine;$i++);
    {
        
    $sql="insert into veicoli_rotazione(data,primaUrgenza) values ('$data[i]', '$primaUrg')";
        
    $result =mysql_query($sql$connection);

    Cosa sbaglio?

    Ciao e grazie Mau

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    ad occhio, a meno che non sia un problema del forum, ti manca un $ in

    codice:
    $dati[$i]
    e poi è buona norma, in fase di debug, aggiungere le istruzioni di controllo, ovvero quel
    $result = ...

    codice:
    //query x
    $result = mysql_query($sql, $connection) or die (mysql_error()."
    query x");
    //query x
    dove ovviamente x è un numero o altro identificativo a commento della query che stai eseguendo ti aiuta a trovare immediatamente la query problematica nel caso in cui tu abbia uno script molto lungo e vi siano diverse possibili query, anche simili tra loro, che possano andare in esecuzione.

    PS: sappi che comunque MySQL è in grado di gestire insert multipli con una singola query, basta costruirla per bene:
    codice:
    INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
    estratto da
    http://dev.mysql.com/doc/refman/5.5/en/insert.html
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Grazie andrea per la cortese risposta,

    la query funziona, ma non mi cicla le date. Quello che vorrei, è che data una data iniziale e una finale, la query mi inserisse tutte le date che ci sono tra i due estremi con i valori del form.

    Non so se mi sono spiegato

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    non avevo nemmeno letto correttamente la richiesta. Ora vedo come hai strutturato la cosa e come provavi a fare quell'inserimento.
    In che formato sono dataIni e dataFin? Conviene passare per gli appositi metodi (date, strtotime) e aggiungere un giorno per volta? Oppure, conviene forse ripensare alla struttura della tabella per evitare dati ridondanti? (ovvero, che esista un campo inizio ed uno fine per ogni record)
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    i due campi del form (dataInizio e dataFine) sono in formato date.

    In pratica non è necessario avere un data fine e un data inizio nella tabella, perché in realtà ogni record si riferisce ad un giorno singolo. Il fatto di ciclare l'inserimento è per facilitare la vita a chi gestisce queste rotazioni (v isto che comunque per 7 giorni gli inserimenti sono uguali).

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    hai detto tutto e niente (che cos'è il formate date per te? gg/mm/aaaa?)
    Ti serve davvero avere un recordo per ogni giorno (ottimizzazione del database)?
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    il formato è quello di mysql YYYY-MM-DD

    Si ho bisogno di avere un dato per giorno, perché di base la rotazione vale per 7 giorni, ma se vi sono imprevvisti o cambiamenti, deve essere possibile anche modificare solo un giorno

  8. #8
    Mi scuso se mi permetto di riesumare questo post, ma proprio mi sto arenando con questo sistema. C'è un'anima pia che mi potrebbe suggerire una via ottimale per il mio problema?

    CIao mauro

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Aggiungere intervalli temporali ad una data in mysql.
    MySQL Date Functions
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

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.