- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- Creare una tabella con mysql-php
-
Creare una tabella con mysql-php
Come da topic nn riesco a creare uan tabella nel database che ho chiamati informazionipers, ma la tabella deve essere creata dal phpmyadmin oppure scrivendo codice php?
questo è ciò ke ho scritto io :
$host='127.0.0.1';
$user='mionome';
$password='miapassword';
$database='informazionipers';
$db=mysql_connect($host, $user, $password) or die ("impossibile connettersi al server $host");
mysql_select_db($database, $db) or die ("impossibile connettersi al databse $database");print("<tr><td>Nome: $_POST[nome]</td></tr>"); print("<tr><td>Cognome: $_POST[cognome]</td></tr>"); print("<tr><td>Luogo di nascita: $_POST[luogon]</td></tr>"); print("<tr><td>Data di nascita: $_POST[datan]</td></tr>"); if (isset($_POST['maschio'])) print("<tr><td>Sesso: Maschio</td></tr>"); else print("<tr><td><Sesso: Donna/td></tr>"); print("<tr><td>Via: $_POST[via]</td></tr>"); print("<tr><td>C.A.P.: $_POST[cap]</td></tr>"); print("<tr><td>Numero: $_POST[numero]</td></tr>"); print("<tr><td>Città: $_POST[citta]</td></tr>"); print("<tr><td>Provincia: $_POST[provincia]</td></tr>"); $query="CREATE TABLE dati(nome varchar(15) not null, cognome varchar(15) not null, luogo di nascita varchar(20) not null, data di nascita varchar(10) not null, sesso varchar(7) not null, via varchar(30) not null, c.a.p. varchar(7) not null, numero varchar(3) not null, citta varchar(20) not null, provincia varchar(2) not null)"; $query="insert into dati (nome,cognome,luogo di nascita,data di nascita,sesso,via,c.a.p.,numero,citta,provincia) VALUES('$_POST[nome]',$_POST[cognome],$_POST[luogon],$_POST[datan],$_POST[via],$_POST[cap],$_POST[numero],$_POST[citta],$_POST[provincia])"; if (mysql_query($query, $db)) { print("il record è stato inserito!"); } else { print("Attenzione, impossibile inserire il record"); } mysql_close($db); ?>
dove sbaglio?
-
Ma intendi creare una tabella HTML o una tabella nel senso di database?
Che errore ti da?
L'utente ha il permesso di creazione?
-
Intendo una tabella in un database
Questo il codice:<head> <title>Informazioni</title> </head> <body> <fieldset> <legend><B>Informazioni generali</B></legend> <TABLE border="1"> <?php $host='127.0.0.1'; $user='mionome'; $password='miapassword'; $database='informazionipers'; $db=mysql_connect($host, $user, $password) or die ("impossibile connettersi al server $host"); mysql_select_db($database, $db) or die ("impossibile connettersi al databse $database"); print("<tr><td>Nome: $_POST[nome]</td></tr>"); print("<tr><td>Cognome: $_POST[cognome]</td></tr>"); print("<tr><td>Luogo di nascita: $_POST[luogon]</td></tr>"); print("<tr><td>Data di nascita: $_POST[datan]</td></tr>"); if (isset($_POST['maschio'])) print("<tr><td>Sesso: Maschio</td></tr>"); else print("<tr><td><Sesso: Donna/td></tr>"); print("<tr><td>Via: $_POST[via]</td></tr>"); print("<tr><td>C.A.P.: $_POST[cap]</td></tr>"); print("<tr><td>Numero: $_POST[numero]</td></tr>"); print("<tr><td>Città: $_POST[citta]</td></tr>"); print("<tr><td>Provincia: $_POST[provincia]</td></tr>"); $query="CREATE TABLE dati(nome varchar(15) not null primary key, cognome varchar(15) not null, luogo_di_nascita varchar(20) not null, data_di_nascita varchar(10) not null, sesso varchar(7) not null, via varchar(30) not null, cap varchar(7) not null, numero varchar(3) not null, citta varchar(20) not null, provincia varchar(2) not null)"; $query="insert into dati " . "(nome, cognome, luogo_di_nascita, data_di_nascita, via, cap, numero, citta, provincia)" . "VALUES('" . $_POST['nome'] . "','" . $_POST['cognome'] . "','" . $_POST['luogon'] . "','" . $_POST['datan'] . "','" . $_POST['via'] . "','" . $_POST['cap'] . "','" . $_POST['numero'] . "','" . $_POST['citta'] . "','" . $_POST['provincia'] . "')"; if (mysql_query($query, $db)) { print("il record è stato inserito!"); } else { print("Attenzione, impossibile inserire il record"); } mysql_close($db); ?> </table> </fieldset> </body>
</html>
-
Ciao net,
credo ci siano un pò di errori nel codice che hai postato.
prima alla variabile query è assegnato
$query="CREATE TABLE....
poi senza eseguire la query la variabile viene riassegnata
$query="insert into..
a questo punto viene eseguita solo la query di insert (la tabella non viene mai creata) che funzionerebbe solo se la tabella dati fosse stata già creata nel db e se fosse corretta la query di inserimento: infatti nella definizione della tabella tutti i campi sono "not null" e nella query di insert il campo sesso non è impostato e quindi darebbe errore nuovamente.....facci sapere
ciao ciao
-
Capisco si infatti funziona solo se la tabella la creo da phpmyadmin mentre secondo quella istruzione non la crea la tabella, vorrei sapere come fare quindi per creare una tabella attraverso il codice php visto k come ho scritto è sbagliato
-
@net said:
vorrei sapere come fare quindi per creare una tabella attraverso il codice php visto k come ho scritto è sbagliato
Non è che è sbagliato... il fatto è che non esegui la query... come ha detto aernews...
Poi non devi metterla in uno script che esegui sempre...
Personalmente non uso mai phpmyadmin; mi preparo uno script separato che contiene i codici per cancellare e creare le tabelle... lo eseguo una volta sola e poi lo elimino dal server...
Una sorta di file di installazione.
-
Esattamente come dice tigrone,
script per gestire la creazione ed eventuali future modifiche alla struttura della tabelle, da utilizzare una-tantum
E il resto nell'applicazione.....
-
Questo è il codice che ho scritto in uno script a parte per creare la tabella ma mi da errore! Questo:
Parse error: syntax error, unexpected T_SL in E:\Program Files\EasyPHP-5.3.2i\www\creazionetabella.php on line 8<?php $host='127.0.0.1'; $user='mionome'; $password='miapassword'; $database='informazionipers'; $db=mysql_connect($host, $user, $password) or die ("impossibile connettersi al server $host"); mysql_select_db($database, $db) or die ("impossibile connettersi al database $database"); $stringa_crea=<<<TABELLA CREATE TABLE dati IF NOT EXIST( id int(20) NOT NULL auto_increment, nome varchar(15) NOT NULL, cognome varchar(15) NOT NULL, luogo_nascita varchar(20) NOT NULL, data_nascita varchar(20) NOT NULL, sesso varchar(7) NOT NULL, via varchar(30) not null, cap varchar(7) not null, numero varchar(3) not null, citta varchar(20) not null, provincia varchar(2) not null, PRIMARY KEY (id) )ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 TABELLA; var_dump($stringa_crea); mysql_query($stringa_crea) or die("non è stato possibile creare la tabella"); mysql_close($db); ?>
Dove sbaglio??
-
[PHP]$stringa_crea="TABELLA
CREATE TABLE IF NOT EXISTS dati(
id int(20) NOT NULL auto_increment,
nome varchar(15) NOT NULL,
cognome varchar(15) NOT NULL,
luogo_nascita varchar(20) NOT NULL,
data_nascita varchar(20) NOT NULL,
sesso varchar(7) NOT NULL,
via varchar(30) not null,
cap varchar(7) not null,
numero varchar(3) not null,
citta varchar(20) not null,
provincia varchar(2) not null,
PRIMARY KEY (id) )ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1"[/PHP]
-
Ok grazie mille ho sistemato tutto.
Sapete dirmi come verificare quale elemento di una listbox ho selezionato?
Io ho provato con la sintassi isset($_POST['nome']) ma sembra che non passa niente.
-
Il form in cui è inserita la select, che tipo di method ha, POST o Get?
ciao ciao
-
metodo post
-
Hai controllato se nella richiesta vengono inviati tutti i parametri di cui hai bisogno?
-
Questo il codice:
<html>
<head>
<title>Animale preferito</title>
</head>
<body>
<FORM METHOD=POST ACTION="sceltanim.php">
<TABLE border="2" width="330" height="140">
<tr>
<td colspan="2">Seleziona l'animale preferito</td>
</tr>
<tr>
<td><SELECT NAME="animali" size="5" >
<OPTION VALUE="Cane" SELECTED>Cane </option>
<OPTION VALUE="Gatto">gatto</option>
<OPTION VALUE="Giraffa">giraffa</option>
<OPTION VALUE="Cavallo">cavallo</option>
<OPTION VALUE="Leone">leone</option>
</SELECT>
<td align="right"><INPUT TYPE="submit" value="Invia i dati" name="invia"><INPUT TYPE="submit" value="Cancella tutto!"></td>
</td>
</tr>
</FORM>
</body>
</html>Questa sintassi è sbagliata?
if (isset($_POST['cane']))
print("<H3>Il tuo animale preferito è il cane</H3>");
-
OK, ora è più chiaro.
Il problema è in quel cerchi.
La variabile che viene inviata, in POST, non è il valore selezionato nella select ma il nome dell'oggetto select (nel tuo caso "animali") che ha come valore la selezione effettuata nelle select.Quindi nella variabile POST dovrai controllare che sia settato "animali" e non "cane" se impostato allora verifichi che valore ha cane, gatto, eccc .
un saluto
-
e quindi qualè la sintassi per far riferimento al singolo animale ?
-
Beh, dovrebbe essere qualcosa del genere
if (isset($_POST['animali']))
print("<H3>Il tuo animale preferito è il ".$_POST['animali']."</H3>");Ovviamente devi sistemare l'articolo , così ti verrebbe fuori
"Il tuo animale preferito è il Giraffa"
-
si ok, ma se io non sò cosa ho selezionato come faccio a modificare la frase in base all'animale scelto?
-
Non conosco il contesto, però potresti fare anche così
if (isset($_POST['animali'])) {
if ($_POST['animali']=='Cane')
print("<H3>Il tuo animale preferito è il Cane</H3>");
elseif ($_POST['animali']=='Gatto')
print("<H3>Il tuo animale preferito è il Gatto</H3>");// .... e così via....
}comunque sai cosa è stato selezionato, è il valore della variabile "animali"
ciao
-
a ok grazie mille ora è tutto kiaro