Non so neanche bene come rendere l'idea ma ci provo.... sicuramente mi direte che non ha senso....
Ho un database con 3 tabelle:
lista_servizi popolata da console mysql con i campi id, linea, partenza, orario
users questa si popola di man in mano che un nuovo collega viene registrato nel sito. (i colleghi registrati son tutti autisti e hanno accesso ad una voce di menu con cui raggiungono un url che per visualizzare i servizi che devono svolgere)
servizi__da_svolgere ha i campi users, data, stato(operativo, ferie, riposo, malattia), tipologia, macchina, servizi_assegnati
Il sito ha una funzione che si prende l'id di chi è loggato, e della tabella servizi_assegnati gli mostra i record a lui riferiti.
La tabella servizi_assegnati si popola con un form:
Il campo cruciale del form (ed è il motivo per cui Vi sto scrivendo) è la select che prende come option i valori della lista dei servizi dalla tabella lista_servizi con la query
$query_sql = "SELECT servizio,partenza,orario_corsa FROM gbgar_lista_servizi;";
e la mette nella variabilie
$servizi_da_svolgere = $Conn->query($query_sql);
A sto punto vabbhe apro la select e poi inserisco il ciclo while che reitera il prelievo di ogni record presente nella tabella lista_servizi e ne fa un array associativo al quale viene assegnato il nome di $riga e cha ha tre chiavi : servizio, partenza e orario_corsa.
while ($riga = $servizi_da_svolgere -> fetch_assoc()) {
$servizio = $riga["servizio"];
fin qua direi ok
poi imposto la option
echo "<option value='$servizio'>
$servizio
</option>";
}
echo"</select>";
ma io ora ho bisogno che il valore che la select assume con la scelta delle option ad ogni invio del form non corrisponda al valore della sola chiave ["servizio"] ma di tutte tre le chiavi cosicchè il file inserito nella action del form riceva per questo campo i valori delle tre chiavi e le deve scrivere nella colonna servizi_da_svolgere della tabella servizi_assegnati.
Questo è il codice del file "insert-serv.php" cioè il file che riceve i dati dal form descritto.
<?php
try{
$conn = new mysqli("localhost","matteo","spranga","gbgarage_servizi");
}catch(Exception $e){
$error = $e -> getMessage();
echo $error;
echo "<br><a href=\"http://localhost/test-gbgarage/gestione-servizi/form-serv.php\">torna alla maschera di inserimento</a>";
}?>
<?php
//creazione variabili che ricevono i dati dai campi del form.
$autista = $_POST["seleziona_autista"];
$stato = $_POST["stato"];
$data_servizio = $_POST["data_servizio"];
$tipologia = $_POST["tipologia"];
$macchina = $_POST["macchina"];
$servizi_da_svolgere = $_POST["servizi_da_svolgere"];
//inizializzo e riempio la variabile con la query al database.
$insert_sql = "INSERT INTO gbgar_servizi_assegnati //gbgar è il prefisso che ogni tabelle del database di joomla dovrebbe avere cosi visto che poi tutta sta roba è da implementare nel sito in costruzione fatto partendo da joomla appunto mi sono abituato ad inserirlo nelle query.
autista,
stato,
data_servizio,
tipologia,
macchina,
servizi_da_svolgere)
VALUES(
'$autista',
'$stato',
'$data_servizio',
'$tipologia',
'$macchina',
'$servizi_da_svolgere');";
/*ora si esegue la query contenuta nella viriabile chiamata $insert_sql per ottenere il risultato di scrittura del record e un output nella pagina page.php */
$risultato = $conn->query($insert_sql);
if ($risultato == TRUE) {
echo "inserimento servizio riuscito";
} else {
echo "inserimento servizio fallito: $insert_sql";
}
?>
<br>
<a href="http://localhost/test-gbgarage/gestione-servizi/form-serv.php">torna alla maschera di inserimento</a>
</body>
</html>
Come vedete dall'associazione dei campi tra form e database, si dovrebbe scrivere il servizio scelto nella select, composto da tre valori, dentro la colonna "servizi_da svolgere"
Ma.... è possibile ottenere questo?
Se lo è, come dovrei impostare il tag della option per fare assumere alla select del form tutti i valori di $riga?
Grazie infinitamente per la pazienza... nella speranza di essermi fatto capire e anche di esser in grado di comprendere i Vs eventuali suggerimenti.
Filippo P.