- Home
- Categorie
- Coding e Sistemistica
- PHP
- [consiglio] Inserimento dati su DB
-
[consiglio] Inserimento dati su DB
Ciao a tutti,
ho realizzato un piccolo script per inserire diversi dati sul db, ma riscontro dei problemi.
Intanto vi posto il mio script, trascurando il CREATE TABLE in cui creo le tabelle di cui necessito:Form di inserimento dati:
<form method="post" action="registra.php"> Nome: <input type="text" name="strnome"> <br /> Cognome: <input type="text" name="strcognome"> <br /> Mail: <input type="text" name="strmail"> <br /> Telefono: <input type="text" name="strtelefono"> <br /> Indirizzo: <input type="text" name="strindirizzo"> <br /> Regione: <input type="text" name="strregione"> <br /> Città: <input type="text" name="strcitta"> <br /> Località: <input type="text" name="strlocalita"> <br /> <input type="submit" value="Registra Cliente"> </form>
La pagina registra.php
<?php //Connessione al Database mysql_connect("db_host","db_user","db_pwd") or die ("impossibile connettersi"); //selezione del DB mysql_select_db("db_nam") or dir ("impossibile selezionare il db"); //includo la class cliente require_once("cliente.class.php"); //istanzio un nuovo oggetto "cliente" $cliente = new cliente; ?> <html> <head> <title>Registrazione Cliente</title> </head> <body> <?php //setto i dati nell'oggetto $cliente->imposta($_POST); //prova ad aggiungere il nuovo cliente $cliente->aggiungi(); ?>
ho creato il cliente.class.php per eseguire i controlli:
class cliente{ //Attributi var $arrData = array(); var $strSQL = ""; var $bool = true; //Metodi /** * Metodo: imposta - questo metodo serve ad impostare l'array arrData recuperato tramite $postData * input * @param array $postData - Array contenente i vari valori da associare all'array arrData */ function imposta($postData){ $this->arrData = $postData; } /** * Metodo: aggiungi - con questo metodo inseriamo i dati dell'array nel Database */ function aggiungi(){ //controllo che l'array non sia vuoto if(!empty($this->arrData)){ //controllo che tutti i campi siano pieni foreach($this->arrData as $value){ if(strlen($value) == 0){ $this->bool = false; break; //Evito di visualizzare piu' volte lo stesso messaggio } } }else{ $this->bool = false; } if($this->bool){ //costruzione automatica della query SQL $this->strSQL = "INSERT INTO cliente (" . implode(", ", array_keys($this->arrData)) . ") VALUES('" . implode("', '", $this->arrData) . "')"; //Esecuzione query... if(mysql_query($this->strSQL)){ echo "Cliente aggiunto con successo"; }else{ echo "Problemi durante l'inserimento del cliente"; } }else{ echo "Attenzione: specificare tutti i campi"; } } } ?>
Purtoppo però l'inserimento non va buon fine, deve esserci un problema quando va a fare la query: if(mysql_query($this->strSQL))
Qualcuno può aiutarmi?
-
fatti stampare l'errore di mysql con mysql_error();
-
Ho risolto!
Grazie lo stesso.