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

    Fare query in automatico

    Ciao a tutti...
    Ho voluto creare un sistema per fare lq query in automatico, cosi da evitare ogni volta di dover scrivere tutto... ve lo passo nel caso possa esservi utile...



    Codice PHP:
    $tabella $_POST['tabella']; // Recupero il nome della tabella

    $Escluso = array ('Submit''tabella''gg''mm''aaaa');  // Creo l'array degli elementi che non vanno inseriti nell'array $InsertData creato nel passo dopo

    // ESTRAGGO I DATI RICEVUTI E LI METTO NELL'ARRAY $InsertData

    foreach ($_POST as $key => $val){ // Creo un ciclo per estrarre sia gli indici che i rispettivi valori degli elementi mandati via POST
        
        
    if (!in_array ($key$Escluso)) { // Se il valore di $key non è presente nell'array $Escluso allora fammi:
        
    $InsertData [$key] = $val;    // Inserisco i dati nel mio nuovo array che poi inserirò nella tabella
        
    }
    }

    /////// nel caso ci fossero dei dati che hanno bisogno di elaborazione speciale, li elaboro e poi li inserisco nell'array... per es:

    ///////////////////////////////////////////////////// DATA

    $gg=$_POST['gg'];
    $mm=$_POST['mm'];
    $aaaa=$_POST['aaaa'];

    $dataIn = @checkdate($mm$gg$aaaa);

    if (!
    $dataIn){

        echo 
    "La data inserita non è valida. <a href=\"javascript:history.back()\">INDIETRO.</a>";
        
        exit;

    }

    $data $aaaa.$mm.$gg// creo la variabile $data da inserire nell'array
        
    $InsertData ['data'] = $data;


    unset (
    $Escluso);     // Elimino gli array che non mi servono più

    ////////////////////////////////////////////// FORMATTO I DATI E LI INSERISCO NELL'ARRAY $FormatData

    foreach ($InsertData as $key => $val){

        
    $val trim(addslashes(stripslashes($val)));
        
    $val str_replace ("<""&lt;"$val);
        
    $val str_replace (">""&gt;"$val);
        
    $val str_replace ("\"""&quot;"$val);
        
    $val nl2br($val);
        
    $val str_replace ("\n"""$val);
        
    $FormatData [$key] = $val;

    }

    // CREO DALL'ARRAY $InsertData LA STRINGA SQL

    $sql "INSERT INTO " $tabella " (";

    $sql .= implode (", " array_keys($FormatData));            // Implode con array_keys mi restituisce una stringa delle key separate da virgole

    $sql .= ") VALUES (";

    $sql .= "'" implode ("', '" $FormatData) . "'";            // Implode mi restituisce una stringa dei valori separati da virgole

    $sql .= ")";

    // PASSO ALLA CONNESSIONE CON IL DB E ALL' INSERIMENTO DATI

    include ("include/conn.inc.php");

    mysql_db_query($db_name$sql$db) or die ("
    Non riesco a inserire i dati."
    );

    echo 
    "
    Inserimento dati avvenuto correttamente."
    ;
                
    mysql_close(); 
    La stessa cosa si può fare per un UPDATE.

    Spero per una volta di esservi stato io d'aiuto.
    Consigli e modifiche sono ben accette!

  2. #2
    Grazie per aver condiviso. Ti sei assicurato di aver fatto escape dei dati passati tramite $_POST?
    Olio Extravergine d'Oliva Magino
    Prodotti tipici: in vendita olio, pesto ligure e altri prodotti alimentari tradizionali.

  3. #3
    mmm..... mi sa di no... come dici di fare?

  4. #4
    nessuno mi dice per escape cosa si intende? ho guardato mysql_escape_string ma su php.net dice che è deprecato...

    io quello che faccio è passare il contenuto del valore qui:
    trim(addslashes(stripslashes($val)));



    approvate?

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.