Salta al contenuto
  • Categorie
  • Recenti
  • Tag
  • Popolare
  • Utenti
  • Gruppi
Collassa
Logo del marchio
T

teopieri

@teopieri
Informazioni
Post
24
Discussioni
7
Gruppi
0
Da chi è seguito
0
Chi segue
0

Post

Recenti Migliore Controverso

  • problema di importazione database.sql
    T teopieri

    Vorrei non aver scritto il post precedente
    Chiedo scusa ma mi sono accorto ora che semplicemente il comando per importare non è mysqldump oppure mariadb-dump ma semplicemente "dump" nell'importazione non ci vuole !!! che somaro!!!
    Ho pure aggiornato maria db alla versione 11.7 pensando che potesse essere un problema, invece, il fatto che debian avesse nei repo ufficiali della distribuzione una versione vecchiotta, non centrava nulla.
    Certo che se il sito ufficiale di mariadb offre il repo per aggiornare mariadb-client e mariadb-server alla versione 11.7 cosa aspettano i manutentori debian ad aggiornare ?
    Cmq, qualora avesse letto il post precedente mi spiace aver fatto perdere del tempo a qualcuno.
    Buona serata e buona Pasqua


  • differenza database.sql
    T teopieri

    Ciao
    l'ho fatta la prova e va bene anche se.... sono incappato in un problemino nell'iimportazione del db.
    Ho aggirato la faccenda ricorrendo all'interfaccia phpmyadmin per quanto la non mi piace gran che.
    Ma al momento volendo portare a termine la prova di restore, il database esistente l'ho esportato da console e importato invece da interfaccia come detto... per via di un problema che ho riscontrato nell'esecuzione del consueto comando mysqldump.
    In ogni caso ho scritto un post in questo forum... tanto per capire cosa sia cambiato.
    Buona giornata
    Filippo


  • problema di importazione database.sql
    T teopieri

    Buon giorno a tutti.
    Ho fatto un backup di un sito joomla e ho provato a fare un restore per verificare che il backup funzionasse. e funziona ma.....
    l'importazione del database dal file.sql in cui ho appunto esportato quello attualmente funzionante, mi ha dato dei problemi su cui non sono riuscito a capirne la soluzione pur trovando in internet che si tratta di un problema noto...
    Mi spiego meglio...
    innanzitutto mostro la mia versione di mariadb tanto per iniziare

    $ mariadb -V
    mariadb  Ver 15.1 Distrib 10.11.11-MariaDB, for debian-linux-gnu (x86_64) using  EditLine wrapper
    
    

    al di la delle versione numerata secondo la distribuzione, quella che fa riferimento al sw installato è la 10.11.11

    il comando

    mariadb-dump -u root -p gbgarage_bkp < ./gbgarage_bkp.sql;
    Enter password: 
    /*M!999999\- enable the sandbox mode */ 
    -- MariaDB dump 10.19  Distrib 10.11.11-MariaDB, for debian-linux-gnu (x86_64)
    --
    -- Host: localhost    Database: gbgarage_bkp
    -- ------------------------------------------------------
    -- Server version	10.11.11-MariaDB-0+deb12u1
    
    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES utf8mb4 */;
    /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
    /*!40103 SET TIME_ZONE='+00:00' */;
    /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
    /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
    /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
    /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
    /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
    
    /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
    /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
    /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
    /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
    /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
    /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
    /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
    
    -- Dump completed on 2025-04-17 14:58:47
    
    

    lo stesso output lo ottengo sostituendo mariadb-dump col comando mysqldump .

    quindi il database creato per accogliere le tabelle dal dump resta vuoto...

    Quindi per poter controllare che il backup funzionasse ho importato lo stesso file .sql attraverso l'interfaccia phpmyadmin e con essa il db è stato importato e tutto funzia.
    Tuttavia desidero capire perchè non riesco ad importare da console .
    Ho letto di una incompatibilità e che centra con quel commento in alto :
    /*M!999999- enable the sandbox mode */
    va beh nn ci ho capito gran che, ci sarà sicuramente qualche file di configurazione da andare a smanettare,
    se vi è capitata questa cosa, magari mi sapete dire dove mettere le mani...
    Ma ho sempre usato il comando mysqldump e via senza problemi ... booohhhh
    B giornata a tutti.
    Filippo


  • differenza database.sql
    T teopieri

    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 .


  • differenza database.sql
    T teopieri

    Buona sera
    una curiosità che vorrei chiarire:

    Posto che database.sql è il file in cui ridireziono il dump del database che devo esportare
    con questo comando

    mysqldump -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
    T teopieri

    @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 sql
    T teopieri

    A 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 sql
    T teopieri

    Buona 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
    T teopieri

    @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 sql
    T teopieri

    Ciao.
    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
    T teopieri

    @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 sql
    T teopieri

    Il 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 sql
    T teopieri

    Nello 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 sql
    T teopieri

    Ok. 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 sql
    T teopieri

    Buon 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 multipla
    T teopieri

    Buona 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.

    Schermata del 2025-02-05 21-06-44.png

    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_servizi

    Schermata del 2025-02-05 21-21-21.png

    Ovviamente 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 multipla
    T teopieri

    Gentilissimo 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 multipla
    T teopieri

    Un 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 multipla
    T teopieri

    ok 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 multipla
    T teopieri

    Francamente 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.

  • Accedi

  • Non hai un account? Registrati

  • Accedi o registrati per effettuare la ricerca.
Powered by NodeBB Contributors
  • Primo post
    Ultimo post
0
  • Categorie
  • Recenti
  • Tag
  • Popolare
  • Utenti
  • Gruppi