- Home
- Categorie
- Coding e Sistemistica
- PHP
- Form invio dati database
-
Rieccomi
Si, hai ragione scusami, ero un po' di fretta e mi son dimenticato il tag di chiusura, alla fine del file basta che aggiungi ?>
Per cosa creare nel Database dipende da cosa ti serve. Devi creare una tabella ed al suo interno i campi che ti giovano. Utilizzando Phpmyadmin ti basta selezionare il Database e quindi utilizzare la procedura guidata per creare una nuova tabella (stabilisci il numero di campi ed il nome e clicchi *Esegui).
*Se ci fornisci maggiori informazioni vediamo di essere più precisi magari.
-
Allora..nel file config.php ho messo questo:
<?php $link = mysql_connect('localhost', 'nome_utente', 'password'); if (!$link) { die ('Non riesco a connettermi: ' . mysql_error()); } $db_selected = mysql_select_db('prova', $link); if (!$db_selected) { die ("Errore nella selezione del database: " . mysql_error()); } ?> ```Il mio problema è creare la tabella nel db, scusa ma sono nuovo del php Mi puoi dire come fare???
-
Vediamo se riesco in poco ad essere chiaro su come creare una tabella utilizzando la procedura guidata di Phpmyadmin
Per prima cosa ovviamente devi accedere a Phpmyadmin
Il secondo passo è quello di selezionare il database dove vuoi che venga creata questa nuova tabella:A questo punto vedrai accanto il contenuto del Db, vuoto se non esistono tabelle, ed in basso c'è il form per usufruire della procedura guidata:
Immetti il nome della nuova tabella ed il numero di campi che dovrà avere e quindi clicca su Esegui. Ti si presenterà il form di struttura:
Che dovrai compilare secondo le esigenze di quel che ti serve, questo è un esempio:
Cliccando infine su Salva verrà creata la tua nuova_tabella così per come hai stabilito nel form quì sopra:
Come puoi notare nella parte alta ti verrà presentata l'istruzione SQL che è stata utilizzata per creare questa tabella, fai un po' di test ed inizia a familiarizzare con il linguaggio, tutto sommato non è difficile.
Due piccole aggiunte su cosa ti servirà sapere:
Tipo campo (ne metto solo alcuni ;)):
INT - Numeri interi (utilizzato anche per il timestamp)
SMALLINT - per piccoli numeri interi
FLOAT - numeri decimali
VARCHAR - testo di lunghezza massima 255 caratteri
DATE - campi data in formato inglese (esempio: 2008-12-13)
DATETIME - campi data/ora in formato inglese (esempio: 2008-12-13 15:45:00)
TEXT - per lunghi testi
etc etcE' sempre consigliabile creare un indice primario auto-increment (nell'esempio di prima il campo id) in modo che sia univoco a tutti i record contenuti nella tabella...poi, ovvio, dipende dalle necessita'
Spero ti sia utile
-
Ma il nome della tabella influisce su qualche parametro???_Il numero dei campi corrisponde con il numero dei valori da inserire..??
Cioè se nel form ho campo nome e campo cognome, allora numero dei campi è 2???
Grazie
-
@affittami said:
Ma il nome della tabella influisce su qualche parametro???
Certo nell'INSERT è il primo valore che devi indicare, ovvero: dove andare a creare il record?INSERT INTO *nome_tabella* ```@affittami said: > Il numero dei campi corrisponde con il numero dei valori da inserire..?? Cioè se nel form ho campo nome e campo cognome, allora numero dei campi è 2??? Se ti servono solo due campi allora si, se, come ti dicevo, vuoi inserire anche un campo univoco (chiave primaria *id*) allora diventano 3. ;)
-
Allora ho fatto tutto solo che mi da questo errore
Warning: mysql_connect() [function.mysql-connect]: Lost connection to MySQL server at 'reading initial communication packet', system error: 111 in /home/mhd-01/xx.dominio.com/htdocs/config.php on line 2
Non riesco a connettermi: Lost connection to MySQL server at 'reading initial communication packet', system error: 111
-
Ecco il file config.php```
<?php
$link = mysql_connect('host dominio', 'nome db', 'pass');
if (!$link) {
die ('Non riesco a connettermi: ' . mysql_error());
}$db_selected = mysql_select_db('nome tabella', $link); if (!$db_selected) { die ("Errore nella selezione del database: " . mysql_error());
}
?>
-
Niente.. ho risolto...adesso vorrei fare una pagina che mi permette di visualizzre il contenuto del mio db...
Come posso fare???
-
Altro problema...ho creato un campo "numero_civico" sia nel form che nel db
Solo che me lo da sempre 0..come mai???
Vi do le caratteristiche che ho messo nel db
campo:numero_civico
tipo:int(11)
collation:niente (anche se cerco di modficare mi da sempre vuoto)
attributi:niente
Null:no
predefinito:niente
extra:niente
-
Buona sera Affittami.
Perchè, nonostante le ripetute correzioni dei suoi post e relative note di modifica da parte di due modsenior, continua a non scrivere correttamente (maiuscole)?
-
Non capisco cosa c'è che ho sbagliato???Non devo fare le maiuscole???
-
@affittami said:
Non capisco cosa c'è che ho sbagliato???Non devo fare le maiuscole???
Ciao affittami, penso che le note e la domanda che ti è stata posta dal ModSenior non lasciano adito ad interpretazioni.
*Last edited by Samyorn; 08-12-08 at 19:28. Motivo: Curare le maiuscole. Corretti errori di battitura.*Ovviamente le maiuscole devono essere utilizzate.
Ti invito a rileggere il regolamento prima di postare ancora, ulteriori infrazioni al regolamento non saranno tollerate.
Grazie.
-
@affittami said:
Solo che me lo da sempre 0..come mai???
Nella pagina di inserimento dati hai recuperato, così come hai fatto per gli altri, il valore della casella input numero civico?
Se si, vediamo di isolare dove sta il problema; poco prima dell'INSERT fai un echo della variabile che contiene il valore del numero civico e vedi se contiene il valore postato. Se da' zero significa che il problema sta nell'invio/recupero dati, se il valore invece è giusto ma nonostante questo sul Db esce zero allora il problema è nell'inserimento in tabellaFacci sapere
-
Ho risolto._Adesso come dicevo precedentemente dovrei fare una pagina da mettere online dove posso vedere i contenuti caricati(non utilizzando il phpmyadmin)._Penso che bisogna fare delle echo._Giusto??_Ma come?
-
Ti basterà fare una SELECT dei campi e quindi ciclare il contenuto per visualizzarlo. Ecco un esempio:
[php]<?php
$sql="SELECT * FROM nome_tabella";
$query=@mysql_query($sql) or die (mysql_error());while ($array=mysql_fetch_array($query))
{
echo $array['nome_campo1']."-".$array['nome_campo2']."-".$array['nome_campo3']."<br>";
}
?>[/php]Questo ovviamente è un semplicissimo esempio di come estrarre i dati.
-
Un problema.Mi da questo errore```
Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)Io ho inserito questo codice nel file dati.php
<?php
$sql="SELECT * FROM form";
$query=@mysql_query($sql) or die (mysql_error());while ($array=mysql_fetch_array($query))
{
echo $array['nome_immbile']."-".$array['via']."-".$array['numero_civico']."-".$array['provincia']."<br>";
}
?>
-
Devi mettere i dati di connessione al Db