Ok.
Quindi in sostanza mi stai dicendo che è tutto a posto, cioè che nel momento in cui dovessi ripristinare il sito che si appoggia al database, cioè nella importazione, i dati utilizzati saranno usati per ricostruire il database completo e insomma io gli passo il file coi dati ma poi il database viene ricostruito dal SW Mariadb.
Resta solo la piccola differenza (25.5 MB contro 27 MB) che trovo nell'esportare il database in questione rispettivamente col comando mysqldump oppure usando l'interfaccia phpmyadmin.
In ogni caso grazie ugualmente... la cosa mi tranquillizza, ora posso mettere un po' di ordine tra vari progetti locali che ho, usando i virtual host cosi poi avendo root directory separate per ogni progetto o test insomma, posso anche impostare diverse aree di lavoro in vs codium.
buona serata e grazie ancora
Filippo .
teopieri
Post
-
differenza database.sql -
differenza database.sqlBuona sera
una curiosità che vorrei chiarire:Posto che database.sql è il file in cui ridireziono il dump del database che devo esportare
con questo comandomysqldump -u root -p nome-database > ~/backup/database.sql
ottengo un file che listato in modalità "human readable" il terminale mi da che la sua dimensione è di 25 M
cioè 25 MB ovviamente è un valore approssimato ma cmq al MB intero per cui in realtà, infatti il file pesa in effetti 25.5 MB secondo il file manager grafico di gnome.Calcolando la dimensione dello stesso database dalla console mysql ottengo 52 MB .... perchè?
forse il comando mysqldump fa una compressione di default nell'esportare il database?Facendo però anche l'esportazione dello stesso database dall'interfaccia phpmyadmin ottengo un file di 27 MB ....
e a sto punto sono davvero perplesso....
posso vedere che comando viene eseguito da phpmyadmin quando provo a fare l'esportazione ... forse usa delle opzioni che nn conosco... insomma, posso ritenere integro il database che ho esportato nel mio backup?
Grazie per eventuali risposte.
Filippo. -
Difficoltà nello script php di scrittura record sql@jabba
Ciao,
ti confermo che anche togliendo i backtick l'esecuzione della query avviene senza problemi.vorrei capire perchè nn mi viene fuori l'errore di esecuzione della query.... che tipo di errore posso simulare?
quelli che ho ottenuto sabotando un nome di campo per esempio dipendono dall'abilitazione delle funzioni di debug che ora che bene o male ho risolto posso commentare per disattivarle.va beh più tardi faccio delle altre prove.
Buona serata e grazie ancora
Filippo. -
Difficoltà nello script php di scrittura record sqlA dire il vero guarda . Ho messo i backtick per sicurezza quindi provo a toglierli poi ti dico.
Considera che io ho il server apache e Maria db su so Debian 12 che magari essendo conservatrice magari ha versioni differenti cioè meno aggiornate.
Cmq appena riesco a faccio la prova ma ho idea che avendo scazzato il nome di un campo nella query sql ....
A Presto
FILIPPO -
Difficoltà nello script php di scrittura record sqlBuona sera.
Ho risolto con il debug che mi hai suggerito. Avevo anche sbagliato una delle tre query per un nome campo che era abbreviato diversamente.
L'unica cosa che nn torna errore secondo l'echo impostato è appunto l'errore di esecuzione della query.
Simulando un errore infatti mi da Fatal error etc.... e mi dice che ovviamente non trova il campo col nome sbagliato ma nn mi ritorna la echo "inserimento fallito"
cmq ora le query insert into funzionano.
GraZie mille di nuovo
Filippo -
Difficoltà nello script php di scrittura record sql@jabba
Grazie per la tua consueta disponibilità....
Real escape è una funzione che nn conoscevo in ogni caso provo a modificare tutto secondo i suggerimenti avuti.
Sul fatto del carattere € francamente non lo ritenevo un problema visto che eseguendo delle query INSERT into direttamente nella console mysql non ottengo nessuno errore e il record viene popolato... ma possono cmq dare fastidio a php.... può essere benissimo.... d'altronde l'altro script funzionante non ne contiene di caratteri speciali per cui può essere un problema che fin ora non si era posto.
Interessante la correzione sul messaggio di errore. Infatti mi chiedevo perché anche nello script su cui mi son basato, simulando un errore a livello di query, ottenevo una pagina bianca senza alcun messaggio di errore.
Spero di poter presto applicare le correzioni suggerite e di poter darVi un riscontro.
Grazie infinite.
Filippo. -
Difficoltà nello script php di scrittura record sqlCiao.
Grazie per il suggerimento, ovviamente lo seguirò. Ma prima devo capire perché diavolo lo script non funziona. Cioè la query non viene eseguita. Eppure ho uno script identico funzionante dove cambiano solo i dati ovviamente le tabelle db che devo essere popolate.
Appena posso, anche se Jabba mi ha già risposto che nn dovrebbe dipendere da questo, modifico gli attributi delle colonne delle tabella sql che ora sono impostate a decimal(5,2) a numerici(5,2), sicuramente avrà ragione Jabba ma .. non avendo null'altro da controllare ed essendo che l'altro script funziona, a sto punto può essere solo (spero ben) un problema di tipo di dato che lo script cerca di inserire ma che non vengono accettati dal server sql. (Mariadb).
Grazie e buona giornata.
Filippo -
Difficoltà nello script php di scrittura record sql@jabba
Ciao,
francamente non ho capito esattamente cosa intendi ma cmq ho ricontrollato tutto il codice e ho pensato di postarlo , in caso riuscissi a dargli un'occhiata....<!DOCTYPE html> <html lang="it"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>scrittura_bolletta</title> <link rel="stylesheet" href="css/form.css"> </head> <body> <?php try{ $conn = new mysqli("localhost","matteo","spranga","bollette_via_miserocchi"); }catch(Exception $e){ $error = $e -> getMessage(); echo "<div class='errore-db'><p class='connect-error'>$error</p></div>"; } $utenza = $_POST["utenza"]; $data_emissione = $_POST["data_emissione"]; $consumo_fatturato_mc = $_POST["cons_fat_mc"]; $consumo_fatturato_kwh = $_POST["cons_fat_kwh"]; $prezzo_unitario = $_POST["prezzo_€"]; $spesa_materiale = $_POST["sps_mat_€"]; $altri_oneri = $_POST["altri_oneri_€"]; $conguagli = $_POST["conguagli_€"]; $importo_fattura = $_POST["imp_fat_€"]; var_dump($_POST); if($utenza==='hera_acqua'){ $insert_sql = "INSERT INTO hera_acqua ( data_emissione, consumo_fat_mc, prezzo_€, sps_materiale_€, altri_oneri_€, conguagli_€, imp_fat_€) VALUES( '$data_emissione', '$consumo_fatturato_mc', '$prezzo_unitario', '$spesa_materiale', '$altri_oneri', '$conguagli', '$importo_fattura');"; }elseif($utenza==='hera_gas'){ $insert_sql = "INSERT INTO hera_gas ( data_emissione, consumo_fat_mc, prezzo_€, sps_materiale_€, altri_oneri_€, conguagli_€, imp_fat_€) VALUES( '$data_emissione', '$consumo_fatturato_mc', '$prezzo_unitario', '$spesa_materiale', '$altri_oneri', '$conguagli', '$importo_fattura');"; } elseif($utenza==='hera_luce'){ $insert_sql = "INSERT INTO $utenza ( data_emissione, consumo_fat_kwh, prezzo_€, sps_materiale_€, altri_oneri_€, conguagli_€, imp_fat_€) VALUES( '$data_emissione', '$consumo_fatturato_mc', '$prezzo_unitario', '$spesa_materiale', '$altri_oneri', '$conguagli', '$importo_fattura');"; } $risultato = $conn->query($insert_sql); if ($risultato == TRUE) { echo "inserimento bolletta riuscito"; } else { echo "inserimento boletta fallito: $insert_sql"; } $conn->close(); ?> <br> <div class='return'> <a href="http://localhost/utenze/insert_bollette.php">torna alla maschera di inserimento </a> </div> </body> </html>
Non ti posto il codice del form perchè quello funziona visto che il var dump mi rende i valori inviati per cui il problema è nello script postato, che in base al valore di $POST["utenza"]; con una condizione if dovrebbe eseguire la stessa query a tre diverse tabelle dello stesso db .
Tra l'altro ho notato che anche il div html che dopo la chiusura della connessione al db e dopo l'uscita dal blocco php (?>), mi da il link per tornare al form per un nuovo inserimento, sparisce e appare solo se commento tutto il blocco in cui si esegue effettivamente la query$risultato = $conn->query($insert_sql);
if..... per intenderci.perchè sparisce un div che è fuori dal blocco php? che sia corretto o meno lo script php quel div col link dovrebbe apparire ugualmente....
va beh.... ora son cotto... se riesci a darci un'occhiata e ad individuare l'errore te ne son grato.... io in base a quanto ne possa capire non lo vedo .
Grazie cmq
Filippo -
Difficoltà nello script php di scrittura record sqlIl debug in PHP.ini credo sia abilitato di già...
Va beh stasera magari provo a postare il codice se potete darci un'occhiata.
Ma quelle righe che suggerisci son da inserire nello script che dovrebbe eseguire la query ?
Cmq fin lì va tutto bene mi pare tant'è che il vardump di. $Post conferma che i dati dal form arrivano....grazie.
Filippo. -
Difficoltà nello script php di scrittura record sqlNello scrivere uno script php che riceve dati da un form tramite $POST e li scrive in una tabella sql pur non ottenendo alcun messaggio di errore, non ottengo neppure la scrittura del record....
Ho controllato 20 volte che i campi del form avessero il name corretto e che esso fosse correttamente riversato nella variabile da passare a alla query_sql...
Insomma, dal punto di vista sintattico di errori nn c'è ne sono....
Ora son al lavoro e nn riesco a postare il codice .... Ma visto che ho una pausa volevo chiedere....
É possibile che i valori nn vengano scritti per il fatto che i campi del form sono input con dati tipo Number con step 0.1 (visto che son tutti numeri che possono avere al massimo due decimali)... Mentre la tabella sql ha i campi impostati come decimal(5,2)??
Non capisco davvero a sto punto quale errore possa esserci.
Anche perché ho copiato uno script tale e quale che funziona e ho adattato solo il tipo di dato che nello script funzionate è di tipo text sia nel form che nel db.
Boooohhh...
Buona giornata a tutti.
Filippo. -
differeinziare form per scrivere su relative tabelle sqlOk. Grazie 1000 stasera provo.
In effetti cercavo proprio un modo per passare quel dato... Mi sa che dovrebbe proprio funzionare.
In pratica ho una input invisibile e che è già compilata e che viene passata come ogni altra chiave-valore nell'array $post.
Un super grazie.Filippo
-
differeinziare form per scrivere su relative tabelle sqlBuon giorno a tutti,
Sto facendo un esperimento per poi inserirlo in aritcoli joomla attraverso il plugin sourcerer:
il mio intento è il seguente:
ho craeto un form principale con una select che contiene 3 option, la pagina, in base a queste mi visualizza un form con tre diverse tipologie di campi, in quanto poi il form invia tramite metodo post i dati ad una pagina che in base alla selezione principale (per intenderci, quella che mi visualizza i campi del form in maniera diversificata) mi va a inserire i dati nella relativa tabella sql.
In pratica la select mi differenzia la visualizzazione dello stesso form in tre modalità diverse perchè i campi del form sono delle input diversificate;
ma alla fine quando viene cliccato il submit, alla pagina impostata nell'attributo action oltre ad arrivare l'array $post con i valorii inviati, devo poter recuperare anche il valore della select principale per usarla nell'impostazione della query insert into.
Sperando di essere riuscito a spiegarmi chiedo...
Come recupero il valore della prima select ?
Questo è il codice del form<div class="form"> <div class="titolo_form">FORM DI INSERIMENTO BOLLETTE</div> <form action="" method="POST"> <table> <tr> <td> <label for="selezione-utenza"> Seleziona il tipo di utenza <label> </td> <td> <select name="utenza" id="" required> <option value="">scegli il tipo di utenza</option> <option value="acqua">acqua</option> <option value="gas">gas</option> <option value="elettricità">elettricità</option> </select> </td> <td> <input class="invio" type="submit" name="seleziona" value="visualizza il form"> </td> </tr> </table> </form> </div> <?php $utenza=$_POST["utenza"]; /*var_dump($utenza); echo $utenza;*/ ?> <div class="form"> <table> <form action="scrittura_bolletta.php" method="post"> <?php echo $utenza; if ($utenza==="acqua"){ echo" <div class=\"titolo_form\">Inserimento dati bolletta acqua</div> <tr> <td class=\"labinput\"> <label for=\"data-emissione\"> Data emissione </label> </td> <td> <input type=\"date\" name=\"data_emissione\" id=\"\" required> </td> </tr> <tr> <td class=\"labinput\"> <label for=\"cons_fat_mc\">Consumo fatturato (mc)</label> </td> <td> <input type=\"text\" name=\"cons_fat_mc\" id=\"\" required> </td> </tr> <tr> <td class=\"labinput\"> <label for=\"prezzo_€\">Prezzo unitario (€)</label> </td> <td> <input type=\"text\" name=\"prezzo_€\" id=\"\" required> </td> </tr> <tr> <td class=\"labinput\"> <label for=\"sps_mat_€\">Spesa materiale (€)</label> </td> <td><input type=\"text\" name=\"sps_mat_€\" id=\"\" required> </td> </tr> <tr> <td class=\"labinput\"> <label for=\"altri_oneri_€\">Altri oneri (€)</label> </td> <td> <input type=\"text\" name=\"altri_oneri_€\" id=\"\" required> </td> </tr> <tr> <td class=\"labinput\"> <label for=\"conguagli_€\">Conguagli (€)</label> </td> <td> <input type=\"text\" name=\"conguagli_€\" id=\"\" required> </td> </tr> <tr> <td class=\"labinput\"> <label for=\"imp_fat_€\">Importo fattura (€)</label> </td> <td> <input type=\"text\" name=\"imp_fat_€\" id=\"\" required> </td> </tr> <tr> <td colspan=\"2\" class=\"invio\"> <input type=\"submit\" name=\"invia\" value=\"inseirsci bolletta\"> </td> </tr> ";} elseif($utenza==="gas"){ echo" <div class=\"titolo_form\">Inserimento dati bolletta gas</div> <tr> <td class=\"labinput\"> <label for=\"data-emissione\"> Data emissione </label> </td> <td> <input type=\"date\" name=\"data_emissione\" id=\"\" required> </td> </tr> <tr> <td class=\"labinput\"> <label for=\"cons_fat_mc\">Consumo fatturato (mc)</label> </td> <td> <input type=\"text\" name=\"cons_fat_mc\" id=\"\" required> </td> </tr> <tr> <td class=\"labinput\"> <label for=\"prezzo_€\">Prezzo unitario (€)</label> </td> <td> <input type=\"text\" name=\"prezzo_€\" id=\"\" required> </td> </tr> <tr> <td class=\"labinput\"> <label for=\"sps_mat_€\">Spesa materiale (€)</label> </td> <td> <input type=\"text\" name=\"sps_mat_€\" id=\"\" required> </td> </tr> <tr> <td class=\"labinput\"> <label for=\"altri_oneri_€\">Altri oneri (€)</label> </td> <td> <input type=\"text\" name=\"altri_oneri_€\" id=\"\" required> </td> </tr> <tr> <td class=\"labinput\"> <label for=\"conguagli_€\">Conguagli (€)</label> </td> <td> <input type=\"text\" name=\"conguagli_€\" id=\"\" required> </td> </tr> <tr> <td class=\"labinput\"> <label for=\"imp_fat_€\">Importo fattura (€)</label> </td> <td> <input type=\"text\" name=\"imp_fat_€\" id=\"\" required> </td> </tr> <tr> <td colspan=\"2\" class=\"invio\"> <input type=\"submit\" name=\"invia\" value=\"inseirsci bolletta\"> </td> </tr> ";}elseif($utenza==="elettricità"){ echo" <div class=\"titolo_form\">Inserimento dati bolletta elettricità</div> <tr> <td class=\"labinput\"> <label for=\"data-emissione\"> Data emissione </label> </td> <td> <input type=\"date\" name=\"data_emissione\" id=\"\" required> </td> </tr> <tr> <td class=\"labinput\"> <label for=\"cons_fat_kwh\">Consumo fatturato (kw/h)</label> </td> <td> <input type=\"text\" name=\"cons_fat_kwh\" id=\"\" required> </td> </tr> <tr> <td class=\"labinput\"> <label for=\"prezzo_€\">Prezzo unitario (€)</label> </td> <td> <input type=\"text\" name=\"prezzo_€\" id=\"\" required> </td> </tr> <tr> <td class=\"labinput\"> <label for=\"sps_mat_€\">Spesa materiale (€)</label> </td> <td> <input type=\"text\" name=\"sps_mat_€\" id=\"\" required> </td> </tr> <tr> <td class=\"labinput\"> <label for=\"altri_oneri_€\">Altri oneri (€)</label> </td> <td> <input type=\"text\" name=\"altri_oneri_€\" id=\"\" required> </td> </tr> <tr> <td class=\"labinput\"> <label for=\"conguagli_€\">Conguagli (€)</label> </td> <td> <input type=\"text\" name=\"conguagli_€\" id=\"\" required> </td> </tr> <tr> <td class=\"labinput\"> <label for=\"imp_fat_€\">Importo fattura (€)</label> </td> <td> <input type=\"text\" name=\"imp_fat_€\" id=\"\" required> </td> </tr> <tr> <td colspan=\"2\" class=\"invio\"> <input type=\"submit\" name=\"invia\" value=\"inseirsci bolletta\"> </td> </tr> ";} ?> </form> </table> </body>
i campi della condizione if e della prima ifelse sono gli stessi e quindi posso ottimizzare il codice in effetti, ma nn importa per il momento, a me interessa sapere come portarmi dietro la variabile $utenza col suo valore perchè poi dovrà essere quello che mi permetterà di scrivere nella tabella mysql "acqua", "gas" oppure "elettricità".
Con la speranza di esser riuscito a spiegarmi,
Vi ringrazio fin da ora per le eventuali indicazioni
Buona giornata a tutti
Filippo P. -
gestione select a scelta multiplaBuona sera,
@jabba ha detto in gestione select a scelta multipla:Dipende tutto da come hai salvato i servizi all'interno del database, è un json? Sono salvati come testo delimitato da virgole?
Le tabelle del database che entrano in gioco sono tre e sono state create direttamente dalla console mysq in un database che ho fatto per fare dei test.
Tabella lista_servizi qua ci sono i servizi quotidiani che si ripetono sempre uguali o quasi.
Tabella servizi ed è quella che effettivamente viene popolata attraverso il form.
Tabella users dumpata dal database del sito joomla a quello citato per tirarmi su nella select "autisti" i nomi degli users in quanto sono sempre loro ovviamente .... gli users del sito sono in realtà gli autisti che vanno nella loro pagina a consultare i servizi che devono svolgere.
Questo è il risultato del vardump di $_Post che atterra in insert-serv.php
array(7) { ["seleziona_autista"]=> string(13) "Filippo_Pieri" ["stato"]=> string(9) "operativo" ["data_servizio"]=> string(10) "2025-02-06" ["tipologia"]=> string(3) "tpl" ["macchina"]=> string(7) "iveco47" ["servizi_da_svolgere"]=> array(2) { [0]=> string(33) "start L 157--Roncalceci--06:40:00" [1]=> string(42) "start L 157--Forlì Centro Studi--13:20:00" } ["invia"]=> string(5) "INVIA" } inserimento servizio riuscito torna alla maschera di inserimento
la tabella seguente è la tabella popolata coi dati del form.
Come vedi nella colonna SERVIZI_DA_SVOLGERE viene inserito "array" ma dovrei ottenere i value degli array con indice numerico inviati dalla select "servizi_da_svolgere" e provenienti ad ogni invio del form.
Ti allego lo screenshot anche della tabella Lista_serviziOvviamente lo screenshot riprende solo un estratto della tabella che contiene molti più records, per mostrati che le option della select prendono i dati di tre colonne e li concatena perchè ogni servizio viene cosi identificato in maniera inequivocabile.
Per ora vorrei ottenere quindi che venissero scritti i value delle chiavi numeriche e nn solo "array", cosi per ogni autista ogni giorno seleziono tutti i servizi che deve fare e quindi faccio una sola compilazione e invio del form per ogni autista.
Con la speranza di averti fatto capire meglio qual'è lo scopo di questo lavoretto, e quindi con la speranza che tu possa aiutarmi in questo ti ringrazio davvero tanto in ogni caso e ti auguro una buona serata.
Filippo P -
gestione select a scelta multiplaGentilissimo Jabba,
Ok,
stamattina ho provato a correggere il codice aggiungendo le parentesi come suggerito e facendo vardump di $_Post ottengo infatti un array contenente i dati arrivati dal form e in particolare, nella chiave corrispondente alla select in questione, invece di un singolo valore mi arriva un array a sua volta, non associativo ma con chiavi numeriche [0] e [1]... se avessi fatto tre selezioni avrei avuto immagino anche la chiave [3] e cosi via....
Ora; andando a controllare il contenuto della tabella nel database, nella colonna associata alla chiave associativa ["servizi_da_svolgere"] non ottengo i valori contenuti dalle chiavi numeriche dell'array annidiato diciamo, ma solo la parola array.
Ovviamente la pagina insert-serv.php non sa quale valore mettere se non glielo si dice, e fin qui... diciamo... che comprendo.
Immagino occorra un ciclo?
Saresti cosi gentile da illuminarmi?
A dire il vero sto cercando da tempo qualcuno che mi potesse dare qualche lezioncina su queste cose....
ma facendo tutt'altro mestiere fatico a trovare compatibilità di orari....
In ogni caso, grazie mille per le tue risposte, per giunta spesso anche molto rapide.
Ora devo tornare ai "miei" autobus.
Buona giornata.
Filippo P. -
gestione select a scelta multiplaUn lampo!!
Ma ho spento il PC nn pensando che avresti risposto subito.
Domani provo il tuo suggerimento.
In pratica avrò un Array dalla select annidiato dentro l'array $Post del form.... Immagino....
Domani provo var Dump cosa mi tira fuori.
Buona notte e grazie . -
gestione select a scelta multiplaok presto fatto e.... grazie di nuovo
<!DOCTYPE html> <html lang="it"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>invia servizio</title> <link rel="stylesheet" href="../css/form.css"> </head> <body> <div class="form"> <!-- contenitore del form con relativa classe css da richiamare nel file css del template front cassiopeia --> <form action="insert-serv.php" method="post"> <table class="tab-form"> <tr> <td><label for="autista">Autista</label></td> <td> <?php //connessione al database try { $Conn = new mysqli("localhost","matteo","spranga","gbgarage_servizi"); } catch(Exception $e){ //controllo connessione al db. $error = $e ->getMessage(); echo $error; }; //impostazione della query al db con esclusione di 3 records $query_sql = "SELECT username FROM gbgar_users where id not in (188,192,193);"; //esecuzione della query e memorizzazione dei dati ottenuti nella var $lista_autisti $lista_autisti = $Conn->query($query_sql); //controllo sull'esecuzione della query if ($lista_autisti == FALSE){ die("Errore nell'esecuzione della query:" . $query_sql); } //apertura della select echo "<select name='seleziona_autista' required>"; //inserisco una option introduttiva che invita a selezionare un'opzione. echo "<option value=\"\">Seleziona l'autista</option>"; //ciclo per prendere i record uno alla volta con fetc_assoc while ($riga = $lista_autisti -> fetch_assoc()) { $autista = $riga["username"]; //otteniamo le option della select con il contenuto del campo username stando ancora dentro il ciclo while per prelevare tutte le option corrispondenti a tuttti gli autisti. echo "<option value='$autista'> $autista </option>"; } //chiusura select echo"</select>"; ?> </td> </tr> <tr> <td><label for="stato">Stato di Servizio</label></td> <td><select name="stato" id="" required> <option value="">Imposta stato di servizio</option> <option value="operativo">OPERATIVO</option> <option value="riposo">RIPOSO</option> <option value="ferie">FERIE</option> <option value="indisponibile">INDISPONIBILE</option> </select> </td> </tr> <tr> <td><label for="data_servizio">Data Servizio</label></td> <td><input type="date" name="data_servizio" id="" required></td> </tr> <tr> <td><label for="tipologia">Tipo servizio</label></td> <td><select name="tipologia" id=""> <!--placeholder--> <option value="">Scegli la Tipogia</option> <!--opzioni a disposizione--> <option value="tpl">TPL</option> <option value="noleggio">NOLEGGIO</option> <option value="misto">MISTO</option> <option value="officina">OFFICINA</option> </select> </td> </tr> <tr> <td><label for="macchina">Macchina</label></td> <td><input type="text" placeholder="inserisci la macchina da utilizzare" name="macchina" id=""></td> </tr> <tr> <td> <label for="servizi_da_svolgere">Servizi da <br> svolgere</label> </td> <td> <?php //analogamente a quanto fatto per la select "seleziona_autista" si applica lo stesso metodo per avere una select sui campi servizio,partenza, orario_corsa della tabella lista_servizi $query_sql = "SELECT servizio,partenza,orario_corsa FROM gbgar_lista_servizi;"; $servizi_da_svolgere = $Conn->query($query_sql); if ($servizi_da_svolgere == FALSE){ die("Errore nell'esecuzione della query:" . $query_sql); } echo "<select name='servizi_da_svolgere' multiple='multiple'>"; echo "<option value=\"\">Seleziona il servizio</option>"; while ($riga = $servizi_da_svolgere -> fetch_assoc()) { $servizio_inserito = $riga['servizio'].'--'.$riga['partenza'].'--'.$riga['orario_corsa']; echo "<option value='$servizio_inserito'> $servizio_inserito </option>"; } echo"</select>"; $Conn->close(); ?> </td> </tr> </table> <input class="invio" type="submit" name="invia" value="INVIA"></td> </form> </div> </body> </html>
Filippo P.
-
gestione select a scelta multiplaFrancamente non capisco....
var dump ($Post), non mi dovrebbe mostrare il contenuto dei dati in un array associativo con le chiavi e i valori trasmessi dal form al file impostato nella action del relativo tag?
Io ho provato a lasciare vuoto la action per ottenere nella stessa pagina il var dump ma scopro che della select, appare nell'array solo l'ultimo valore selezionato, per cui anche se uso la sintassi nativa di joomla... cosa che vorrei evitare tra l'altro, preferirei usare sempre php nativo e inserirlo nell'articolo col modale del plugin sourcerer..... ma in ogni caso $Post non contiene tutti i valori selezionati nella select... non capisco questa dinamica....
Volevo capire appunto come gestire e mappare i dati per ottenere la scrittura dei relativi records nella tabella del db, quindi in file.php devo mettere una query dopo aver mappato i campi del form con le colonne della tabella, cosa che ho già fatto ma se uno dei campi del form è una select a scelta multipla che struttura di array in teoria viene trasmessa con la variabile $Post?Mi puoi spiegare in qualche modo il meccanismo?
Ti chiedo troppo se ti chiedessi un esempio senza la sintassi nativa di joomla ?
Provo a mandarti il codice del file.php che riceve i dati dal form cosi come è fatto ora, cioè col form senza la select a scelta multipla, considera che il campo "seleziona servizi" dovrebbe diventare a scelta multipla per limitare la quantità delle compilazioni da effettuare per ogni soggetto (autista nel caso ma ovviamente è solo un esempio)<html lang="it"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>insert into database</title> </head> <body> <?php /*$conn = new mysqli("localhost","matteo","spranga","gbgarage_servizi"); //controllo di connessione. if ($conn->connect_error) { die ("connessione fallita: " . $conn->connect_error); }*/ 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 ( 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 */ $risultato = $conn->query($insert_sql); if ($risultato == TRUE) { echo "inserimento servizio riuscito"; } else { echo "inserimento servizio fallito: $insert_sql"; } $conn->close(); ?> <br> <a href="http://localhost/test-gbgarage/gestione-servizi/form-serv.php">torna alla maschera di inserimento</a> </body> </html>
Grazie mille in ogni caso,
Filippo P. -
[RISOLTO] tabelle mysql con prefisso diversoEsatto, ho pensato ad una sintassi diversa ma che come concetto ci fosse modo di fare una cosa analoga in console mysql ma se devo far un lavoro del genere per una volta che devo eliminare delle tabelle da un db, uso l'interfaccia phpmyadmin e amen.... tanto è stata installata.... vorrà dire che per una volta sarà stata utile anche lei.
Filippo -
gestione select a scelta multiplaBuona sera,
vorrei sapere come gestire i dati provenienti da un form dove uno dei campi è una select a scelta multipla,
se faccio il var dump di $post assodato che Post è impostato nel tag <form> come attributo "method";
delle opzioni selezionate mi trovo solo l'ultimo valore nell'array $Post trasmesso.... quindi lo script di invio al database mi scrive solo l'ultimo valore selezionato nella select, mentre avrei necessita che scrivesse tanti records per quanti sono le opzioni selezionate.....
Il punto è che con il campo a scelta multipla ci si risparmierebbe un sacco di compilazioni e di invii ma cosi nn serve a nulla.....
Come dovrei fare quindi per sfruttare questo form con il campo select a scelta multipla ?Grazie in anticipo a tutti.
Filippo P. -
[RISOLTO] tabelle mysql con prefisso diversoOk in effetti erano tabelle che si sono create ma erano ininfluenti e anche poco pesanti visto che erano vuote.
In ogni caso le ho eliminate.... Anche se per far prima ho dovuto usare l'interfaccia pkpmyadmin per poterle spuntare ed eliminare, cioè dico, possibile che da console avrei dovuto elencare tutte le tabelle nel comando .... ? Pensavo che un carattere jolly dopo il prefisso tipo :
DROP TABLE prefisso_*
fosse sufficiente.... Esiste un'altra sintassi?
Giusto per saperlo insomma.
Filippo P