Newsgroup: it.comp.www.php
Titolo: aiuto!!

qlcuno può essere così gentile da postare (o inviarmi per posta) il
codice di una qualunque form per l'inserimento di dati in un db?
è da ieri che provo a scriverla, ma anche se mi scrive che i dati sono
stati inseriti, nella realtà non mi scrive niente (se non qualche zero
qua e la)!!!  =(
grazie mille in anticipo
michela

 qua e la)!!!  =(
La richiesta è un po' vaga :)))
Cmq un form semplice può essere così:
<form name="form1" action="script.php" method="post">
<input type="text" name="var1">
<input type="submit" name="azione" value="invia">
</form>
Allo script.php (che conterrà la query) mandi $_POST['var1'].

 Allo script.php (che conterrà la query) mandi $_POST['var1'].
forse è qua l'errore?
il file save.php è:
<?php
include("top_foot.inc.php");
include("config2.inc.php");
top();
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file
config.inc.php");
mysql_select_db($db_name, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel
file config.inc.php");
$query = "INSERT INTO film (tit_ital , tit_orig , paese , genere , anno
, voto , recensione) VALUES ('$t_it' , '$t_or' , '$paese' , '$gen' ,
'$anno' , '$voto' , '$rec')";
if (mysql_query($query,$db))
echo "<br>Inserimento eseguito!!";
else echo "<br>Errore durante l'inserimento!!";
mysql_close($db);
foot();
?>
in realtà nel db viene inserita un nuovo record, ma è vuoto!! è come se
non memorizzasse i dati immessi da tastiera nella form!!!   =(
cos'è che sbaglio? immagino sia una cretinata....... >=(
grazie cmq
michela

> Allo script.php (che conterrà la query) mandi $_POST['var1'].
aaaaaaaaaaaahhhhhhhhhhhhhh!!!!ora funziona, è questo che mi mancava!!!!
non li prendeva no i parametri se non glieli specificavo!!!  =)
grazie del prezioso aiuto!!
michela

secondo me ti conviene fare nell'ordine:
1 - visuallizzare la tua query, cioč, anziché farla funzionare con
mysql_query($sql), fai un echo $sql per verificare che i dati siano
effettivamente stati passati. (ti ricordo che i dati passati con una
form adesso si scrivono $_POST[nomevariabile] e non piů
$nomevariabile)
2 - una volta che abbiamo effettivamente visto che la query viene
scritta bene, provala in phpmyadmin copiandola direttamente nello
spazio sql, se non funziona magari stai provando a mettere una data
nel formato spagliato (quello corretto č yyyy-mm-dd)
3 - se funziona anche da phpmyadmin allora č effettivamente un errore
banale nella sintassi del tuo script
Sintassi della query di inserimento:
"INSERT INTO [nome-tabella] [lista-colonne] VALUES [valori]"
Esempio
"INSERT INTO clienti (id, nomecliente, indirizzo, telefono,
partitaiva) VALUES ('3', 'pippo', 'via della pippa - Topolinia ',
'051209xxxx', '00223315455 ' ) "
e per l'inserimento da php
ecco lo script principe per connettersi ad un database, recuperare i
dati e stamparli
 
<?
//apertura connessione
 $db_host="localhost";       //oppure ip o nome del server
$db_name="nomedb";         //nome del tuo database
$db_user="user";               //nome user
$db_pass="passwd";                    //passworduser
$conn=mysql_connect($db_host,$db_user,$db_pass) or die("Impossibile
connettersi al server MySQL.");
 
mysql_select_db($db_name,$conn) or die("Impossibile connettersi al
database $db_name.");
 
//definizione della query 
$sql="INSERT INTO clienti (id, nomecliente, indirizzo, telefono,
partitaiva) VALUES ('3', 'pippo', 'via della pippa - Topolinia ',
'051209xxxx', '00223315455 ' ) ";
 
//inserisce i dati nel database
mysql_query($sql,$conn) or die(mysql_error());
//chiusura della connessione al database
mysql_close($conn);
?>
 
ciao

> secondo me ti conviene fare nell'ordine:
questo problema l'ho risolto, sbagliavo a passargli gli argomenti perchè
non usavo $_POST[nomevar]...
ora però se ne presenta un altro: il contenuto del campo "recensione"
della form (definito in phpmyadmin di tipo longtext) nel db viene
troncato come se fosse troppo lungo per essere trascritto
integralmente!!! 
sia che io definisca il campo come Text, Mediumtext o Longtext
nel db vengono memorizzati solo i primi 255 caratteri!!!
perchè questa cosa? possibile che phpmyadmin abbia delle limitazioni? o
devo specificare qlcosa nello script?
michela

, 
m.a...@libero.it
 
says...

Controlla prima di tutto di escapare le stringhe, può non essere un 
problema di dimensione.
$query='INSERT INTO ciao (id, testo) VALUES 
($id,"'.mysql_real_escape_string($testo).'");';
Secondo: non è phpmyadmin che ha limitazioni, casomati è mysql (il 
server db). E mysql, sui campi di text, limitazioni così strette non ne 
ha.
CHAR(M) 	 M bytes, 0 <= M <= 255
VARCHAR(M) 	L+1 bytes, where L <= M and 0 <= M <= 255
TINYBLOB, TINYTEXT 	L+1 bytes, where L < 2^8
BLOB, TEXT 	L+2 bytes, where L < 2^16
MEDIUMBLOB, MEDIUMTEXT 	L+3 bytes, where L < 2^24
LONGBLOB, LONGTEXT 	L+4 bytes, where L < 2^32
Un campo text tiene 65536+2 caratteri.
Prova a verificare il contenuto della variabile *prima* 
dell'inserimento, non sia mai che viene troncata per altri motivi.
Tac

 ha.
è quello che infatti sapevo anche io.... però allora che ho dichiarato
per non farlo funzionare? può essere il tipo di database scelto
(myIsam)? non so, sto considerando un pò tutto, magari ho scritto una
cretinata....  =)
michela

> secondo me ti conviene fare nell'ordine:
ho provato il codice che mi avevi mandato per posta... niente da fare,
il testo della recensione si tronca anche in questo caso....   =O
grazie cmq per la disponibilità
michela


grazie, andrò a consultarlo appena possibile
michela