Informazioni da form a database

  • Creatore Discussione Creatore Discussione BrunoL
  • Data di inizio Data di inizio

BrunoL

Nuovo Utente
2 Lug 2013
11
0
0
Ciao, ho creato un codice, che dovrebbe salvare le informazioni immesse nel form in un database, ma non funziona, mi potete aiutare? Grazie in anticipo...

PHP:
<?php 

		mysql_connect("localhost", "root", "");
		mysql_select_db("sito");
	
?>		
				<form method="post" action="#" id="formaggiunta" enctype="multipart/form-data">
					
					<ul>
						<li><label for="nome">Nome</label>
							<input type="text" name="nome" id="nome" />
						</li>
						<li>
							<label for="cognome">Cognome</label>
							<input type="cognome" name="cognome" id="cognome" />
						</li>
						<li>
							<label for="data">Data di nascita</label>
							<input name="data" type="data" id="data" />
						</li>
						<li>
							<label for="luogo">Luogo di nascita</label>
							<input type="text" name="luogo" id="luogo" />
						</li>
                        <li>
							<label for="altezza">Altezza</label>
							<input type="text" name="altezza" id="altezza" />
						</li>
                        <li>
							<label for="peso">Peso</label>
							<input type="text" name="peso" id="peso" />
						</li>
                         <li>
							<label for="capelli">Colore dei capelli</label>
							<input type="text" name="capelli" id="capelli" />
						</li>
                        <li>
							<label for="occhi">Colore degli occhi</label>
							<input type="text" name="occhi" id="occhi" />
						</li>
                        <li>
							<label for="carnagione">Carnagione</label>
							<input type="text" name="carnagione" id="carnagione" />
						</li>
                        	<li>
							<label for="sesso">Sesso</label>
							<input type="text" name="sesso" id="sesso" />
						</li>
                        <li>
							<label for="casa">Indirizzo casa</label>
							<input type="text" name="casa" id="casa" autofocus/>
						</li>
                        <li>
							<label for="biz">Indirizzo negozio</label>
							<input type="text" name="biz" id="biz" />
						</li>
                        <li>
							<label for="segni">Segni part</label>
							<input type="text" name="segni" id="segni" />
						</li>
					</ul>
						<input type="submit" name="inviadati" id="inviadati" value="Invia dati" />
				</form>
<?php
	
	$nome=$_POST['nome'];
	$cognome=$_POST['cognome'];
	$data=$_POST['data'];
	$luogo=$_POST['luogo'];
	$altezza=$_POST['altezza'];
	$peso=$_POST['peso'];
	$capelli=$_POST['capelli'];
	$occhi=$_POST['occhi'];
	$carnagione=$_POST['carnagione'];
	$sesso=$_POST['sesso'];
	$casa=$_POST['casa'];
	$biz=$_POST['biz'];
	$segni=$_POST['segni'];
	
	$query = "INSERT INTO database (nome, cognome, data, luogo, altezza, peso, capelli, occhi, carnagione, sesso, casa, biz, veicolo, foto) VALUES ('$nome', '$cognome', '$data', '$luogo, $altezza, $peso, $capelli, $occhi, $carnagione, $sesso, $casa, $biz, $segni')";
	mysql_query($query);

	
?>
 
$query = "INSERT INTO database (nome, cognome, data, luogo, altezza, peso, capelli, occhi, carnagione, sesso, casa, biz, veicolo, foto) VALUES ('$nome', '$cognome', '$data', '$luogo, $altezza, $peso, $capelli, $occhi, $carnagione, $sesso, $casa, $biz, $segni')";
cosa è? perche a d alcuni gli hai messo le virgolette ed ad altri no? prova a mettere le virgolette a tutti '$luogo', '$altezza', ecc
Inoltre per vedere se e dove hai sbagliato prova a lanciare la sql in phpmyadmin e vedi cosa ti restituisce
 
cosa è? perche a d alcuni gli hai messo le virgolette ed ad altri no? prova a mettere le virgolette a tutti '$luogo', '$altezza', ecc
Inoltre per vedere se e dove hai sbagliato prova a lanciare la sql in phpmyadmin e vedi cosa ti restituisce
ciao, come faccio a lanciare la sql?
 
Vai in phpmyadmin; seleziona il db e clicca su sql in alto; inserisci la query e lanciala.
 
Quale query devo inserire?

INSERT INTO database (nome, cognome, data, luogo, altezza, peso, capelli, occhi, carnagione, sesso, casa, biz, veicolo, foto) VALUES ('$nome', '$cognome', '$data', '$luogo, $altezza, $peso, $capelli, $occhi, $carnagione, $sesso, $casa, $biz, $segni')";

ma al posto delle variabili devi mettere i valori degli attributi con i vari apici come suggerito da salvo...

in caso pubblica l'errore ciao.
 
INSERT INTO database (nome, cognome, data, luogo, altezza, peso, capelli, occhi, carnagione, sesso, casa, biz, veicolo, foto) VALUES ('$nome', '$cognome', '$data', '$luogo, $altezza, $peso, $capelli, $occhi, $carnagione, $sesso, $casa, $biz, $segni')";

ma al posto delle variabili devi mettere i valori degli attributi con i vari apici come suggerito da salvo...

in caso pubblica l'errore ciao.

Codice:
Errore
Pare che ci sia un errore nella query SQL immessa. L'errore del server MySQL mostrato qui sotto, se c'è, può anche aiutare nella risoluzione del problema

ERROR: Virgolette Non Chiuse @ 257
STR: '
SQL: INSERT INTO database (nome, cognome, data, luogo, altezza, peso, capelli, occhi, carnagione, sesso, casa, biz, veicolo, foto) VALUES ('tizio', 'caio', '23/12/1990', 'milano', '178', '60', 'castani', 'castaniì, 'bianca', 'maschio', 'via 123', 'via 123', 'nex')";

query SQL:

INSERT INTO database (nome, cognome, data, luogo, altezza, peso, capelli, occhi, carnagione, sesso, casa, biz, veicolo, foto) VALUES ('tizio', 'caio', '23/12/1990', 'milano', '178', '60', 'castani', 'castaniì, 'bianca', 'maschio', 'via 123', 'via 123', 'nex')";

Messaggio di MySQL: 

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'database (nome, cognome, data, luogo, altezza, peso, capelli, occhi, carnagione,' at line 1
 
ma il nome della tua tabella e database? senò nella query devi sostituire database con il nome della tabella. sappimi dire ciao.
 
prova a sostituire gli slash della data con il - mi sa che l'errore te lo da in data... fammi sapere
 
prova postarmi la sql che hai usato per chrare la tabella....

Codice:
CREATE TABLE IF NOT EXISTS `database` (
  `codiceidentificativo` int(11) NOT NULL AUTO_INCREMENT,
  `nome` text NOT NULL,
  `cognome` text NOT NULL,
  `data` varchar(10) NOT NULL,
  `luogo` text NOT NULL,
  `altezza` varchar(10) NOT NULL,
  `peso` varchar(10) NOT NULL,
  `capelli` text NOT NULL,
  `occhi` text NOT NULL,
  `carnagione` text NOT NULL,
  `sesso` text NOT NULL,
  `casa` varchar(20) NOT NULL,
  `biz` varchar(20) NOT NULL,
  `segni` varchar(20) NOT NULL,
  PRIMARY KEY (`codiceidentificativo`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
 
L'errore rimane perchè hai inserito questa query:
Codice:
query SQL:

INSERT INTO database (nome, cognome, data, luogo, altezza, peso, capelli, occhi, carnagione, sesso, casa, biz, veicolo, foto) VALUES ('tizio', 'caio', '23/12/1990', 'milano', '178', '60', 'castani', 'castaniì, 'bianca', 'maschio', 'via 123', 'via 123', 'nex')";
Prova a inserire questa!
Codice:
query SQL:

INSERT INTO database (nome, cognome, data, luogo, altezza, peso, capelli, occhi, carnagione, sesso, casa, biz, veicolo, foto) VALUES ('tizio', 'caio', '23/12/1990', 'milano', '178', '60', 'castani', 'castaniì, 'bianca', 'maschio', 'via 123', 'via 123', 'nex');

Prima di domandare perchè prova :)
 
Codice:
INSERT INTO `database`(`codiceidentificativo`, `nome`, `cognome`, `data`, `luogo`, `altezza`, `peso`, `capelli`, `occhi`, `carnagione`, `sesso`, `casa`, `biz`, `segni`) VALUES ('Card','mio','bho','01-01-1987','questo','178','78','neri','neri','bianca','m','viabho','bho','nessuno')

questa funziona .... tolto il doppio apice che ti è sfuggito e poi ti sei sbaglia a chiamare un attributo ti sono sfuggite un un pocha di roba... cose che succedono riprovala e sappimi dire che non mi sia sfuggito qualche cosa anche a mè sappimi dire ciao.


p.s.
cmq la puoi scrivere anche così diminuisci le potenziali cavolate che uno pò scrivere:

Codice:
INSERT INTO  `database` 
VALUES (
 'Card',  'mio',  'bho',  '01-01-1987',  'questo',  '178',  '78',  'neri',  'neri',  'bianca',  'm',  'viabho',  'bho',  'nessuno'
)
 
Ultima modifica:
p.s.
cmq la puoi scrivere anche così diminuisci le potenziali cavolate che uno pò scrivere:

Codice:
INSERT INTO  `database` 
VALUES (
 'Card',  'mio',  'bho',  '01-01-1987',  'questo',  '178',  '78',  'neri',  'neri',  'bianca',  'm',  'viabho',  'bho',  'nessuno'
)

Grazie a cosa questo metodo 'diminuisce le potenziali cavolate che uno può scrivere'?
 
Ciao, ora ho un un'altro problema: appena carico la pagina, si crea una nuova riga vuota, anche se non premo sul pulsante invia. Questo succede ogni volta che si carica la pagina.
 
Si perché tu devi eseguire la query solo se i valori $_POST sono settati, quindi solo se è stato compilato il form. Altrimenti aggiunge sempre una riga e siccome i valori $_POST saranno null sarà vuota.
 

Discussioni simili