due query per due tabelle

efisio

Utente Attivo
5 Ago 2008
95
0
0
qualcuno potrebbe aiutarmi a comprendere come posso inserire i dati in due tabelle dello stesso DB utilizzando un form html?
Premetto che con una singola tabella non ho problemi, ma con due non riesco nell'intento.
Non avendo un gran che di conoscenze, ho pensato che ci volessero due query rivolte a due tabelle distinte, ma non funziona????
vi posto le query di seguito:

$query="INSERT INTO iscritti ( nome, cognome, provincia, via, mail, localita, telefono) VALUES ('$nome', '$cognome', '$provincia', '$via', '$mail, '$localita', '$telefono')";
$query="INSERT INTO discipline ( discipline) VALUES ('$discipline')";

Che fare?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao, prova così al massimo non funzia

PHP:
$query1="INSERT INTO iscritti ( nome, cognome, provincia, via, mail, localita, telefono) VALUES ('$nome', '$cognome', '$provincia', '$via', '$mail, '$localita', '$telefono')";
$query2="INSERT INTO discipline ( discipline) VALUES ('$discipline')";

$inser1=mysql_query($query1);
$inser2=mysql_query($query2);
 

efisio

Utente Attivo
5 Ago 2008
95
0
0
Ciao Borgo italia,
ho provato quanto mi hai detto e quello che sono riuscito a fare e inserire i dati nella tabella, riguardanti la seconda query, mentre quelli della prima non sono stati memorizzati.
E' possibile un'altra soluzione?
grazie

Efisio
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
verifica che i valori della qery si giusto
inserisci

$query1="INSERT INTO iscritti ( nome, cognome, provincia, via, mail, localita, telefono) VALUES ('$nome', '$cognome', '$provincia', '$via', '$mail, '$localita', '$telefono')";
var_dump($query1);

e verifca se i valori sono giusti anche come corrispondenza con i nomi dei campi
 

efisio

Utente Attivo
5 Ago 2008
95
0
0
Buongiorno Borgo italia,
sono in alto mare, ma ancora non affogo...
potresti darmi una mano con questo problema appena hai del tempo?
Grazie
Efisio
ti posto quanto ho scritto.


$query1="INSERT INTO iscritti ( nome, cognome, provincia, via, mail, localita, telefono) VALUES ('$nome', '$cognome', '$provincia', '$via', '$mail, '$localita', '$telefono')";
$query2="INSERT INTO discipline (*discipline) VALUES ('$discipline')";

$inser1= mysql_query($query1);
$inser2= mysql_query($query2);*
 

satifal

Utente Attivo
25 Set 2008
522
13
0
Roma
Ciao, Borgo ti aveva suggerito di inserire la seguente riga nel codice, ma non sembra tu lo abbia ascoltato:

PHP:
var_dump($query1);

Inoltre, aggiungi anche:

PHP:
$inser1= mysql_query($query1) or die (mysql_error());

Esegui lo script e vedi cosa viene fuori. Se posti solamente il codice è difficile che qualcuno possa aiutarti.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
Se posti solamente il codice è difficile che qualcuno possa aiutarti
satifal ha perfettamente ragione, in quanto le righe inserite sono correte, perchè l'errore/i nasce a monte
puo essere es.
1. non corrispondenza tra i nomi che hai scritto e nomi tabella, o il nome della tabella
2. uno ho più varabili sono vuote e cerchi di inserirle in un campo not null
verificato il punto uno e non funzia comunque, devi capire perchè hai una o piu variabili vuote.
a. se è voluto devi verificare che il campo accetti il valore null
b. se non voluto il perche, qualche post che non funzia?
 

efisio

Utente Attivo
5 Ago 2008
95
0
0
sono propio una frana.
adesso il db mi dà questo rimando:
string(201) "INSERT INTO iscritti ( nome, cognome, provincia, via, mail, localita, telefono, discipline) VALUES ('giuseppe', 'garibaldi', 'LU', 'mazzini,12', '[email protected], 'viareggio', '113', 'Counsellor')" bool(false) 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 'viareggio', '113', 'Counsellor')' at line 1
cosa devo fare?
ho visto quanto mi hai detto e mi sembra tutto corretto...ma...
grazie
efisio
 

satifal

Utente Attivo
25 Set 2008
522
13
0
Roma
Nel campo mail manca l'apice di chiusura come si evince dal messaggio di errore per cui devi aggiungerlo nella query:

PHP:
$query1="INSERT INTO iscritti ( nome, cognome, provincia, via, mail, localita, telefono) VALUES ('$nome', '$cognome', '$provincia', '$via', '$mail', '$localita', '$telefono')";
 

efisio

Utente Attivo
5 Ago 2008
95
0
0
Grazie Satifal per avermi fatto notare dove avevo sbagliato.
ora riesco ad inserire i dati nella tabella, ma ancora navigo in alto mare riguardo all'inserimento in due tabelle distinte...
mi metto a lavoro prima di andare a lavoro.

buona giornata
Efisio
 

satifal

Utente Attivo
25 Set 2008
522
13
0
Roma
Non capisco quale sia il problema. Se lo illustri meglio magari riusciamo a risolverlo.
 

efisio

Utente Attivo
5 Ago 2008
95
0
0
scusate se vi rispondo solo stamani,
allora provo ad esporre il problema.
Al momento ho una tabella (utenti) all'interno di un Db, la quale contiene una serie di campi. L'utente, tramite la compilazione di un form, invia i dati ad una pagina (salva.php), la quale processa i dati e li invia al DB e tramite una query, li inserisce nell'apposita tabella (utenti). Fino a qui nessun problema.
Il problema mi si è presentato quando ho deciso di inserire una seconda tabella, in modo da inviare, una voce del form ( mail) ad un'apposita tabella. A questo punto ho provato a mettere due query come mi era stato suggerito ma non funzionava, probabilmente perchè ho fatto qualche errore a monte ma non riesco a capire quale.
Al momento attuale ho la situazione con una sola tabella e una query.
ti posto quanto ho scritto:
file salva.php:

<?php
$host = 'localhost';
$user = 'root';
$password = 'root';
$database = 'utenti';

$nome=$_REQUEST['nome'];
$cognome=$_REQUEST['cognome'];
$luogo=$_REQUEST['provincia'];
$via=$_REQUEST['via'];
$mail=$_REQUEST['mail'];
$localita=$_REQUEST['localita'];
$telefono=$_REQUEST['telefono'];
$discipline=$_REQUEST['discipline'];


$db = mysql_connect($host, $user, $password)
or die ( "impossibile connetersi al server");
mysql_select_db($database, $db)
or die ("impossibile connettersi al daabasee");

$query="INSERT INTO iscritti ( nome, cognome, provincia, via, mail, localita, telefono, discipline) VALUES ('$nome', '$cognome', '$provincia', '$via', '$mail', '$localita', '$telefono', '$discipline')";

var_dump($query);//vedi se viene scritta giusta
$risult=mysql_query($query);
var_dump($risult);//TRUE se ok, FALSE se ko
echo mysql_error();
mysql_close($db);
?>

La tabella db è di tipo Myisam e i campi sono tutti warchar not null, con ID primary kei auto incremente e un timestamp automatico.

Come potrei procedere?

Grazie

Efisio
 

Federico B.

Nuovo Utente
29 Set 2009
29
0
0
32
Sant'Antioco (CI)
Ti consiglio di utilizzare i tag appositici per il codice e di utilizzare l'indentazione, rendono il codice più leggibile.

Prova questo, ho fatto in modo di gestire tutti gli errori in modo da sapere dove si interrompe lo script.
PHP:
<?php

$host = 'localhost';
$user = 'root';
$password = 'root';
$database = 'utenti';

$nome 		= trim(htmlspecialchars($_POST['nome']));
$cognome	= trim(htmlspecialchars($_POST['cognome']));
$luogo		= trim(htmlspecialchars($_POST['provincia']));
$via		= trim(htmlspecialchars($_POST['via']));
$mail		= trim(htmlspecialchars($_POST['mail']));
$localita	= trim(htmlspecialchars($_POST['localita']));
$telefono	= trim(htmlspecialchars($_POST['telefono']));
$discipline	= trim(htmlspecialchars($_POST['discipline']));


if(!($db = mysql_connect($host, $user, $password)))
{
	die("impossibile connetersi al database:<br />" . mysql_error());
}
if(!(mysql_select_db($database, $db)))
{
	die("impossibile connettersi al database:<br />" . mysql_error>());
}

$query = "INSERT INTO iscritti (nome, cognome, provincia, via, mail, localita, telefono, discipline)
	VALUES ('" . mysql_real_escape_string($nome) . "',
			'" . mysql_real_escape_string($cognome) . "',
			'" . mysql_real_escape_string($provincia) . "',
			'" . mysql_real_escape_string($via) . "',
			'" . mysql_real_escape_string($mail) . "',
			'" . mysql_real_escape_string($localita) . "',
			'" . mysql_real_escape_string($telefono) . "',
			'" . mysql_real_escape_string($discipline) . "')";

#var_dump($query); //vedi se viene scritta giusta
if(!($result = mysql_query($query)))
{
	die('Errore nella query<br />' . mysql_error() . '<br /><br /><pre>' . $query . '</pre>');
}
#var_dump($risult);//TRUE se ok, FALSE se ko
mysql_close($db);

?>
 

efisio

Utente Attivo
5 Ago 2008
95
0
0
Ciao Federico,
ho mandato in esecuzione il codice che mi hai scritto e i dati sono stati inseriti correttamente nella tabella.
A questo punto, se volessi inserire il dato (mail) in una tabella separata, sempre dello stesso DB, come potrei procedere?

Grazie per il tempo che mi hai dedicato,
Efisio
 

efisio

Utente Attivo
5 Ago 2008
95
0
0
Ciao Federico,
sono riuscito ad inserire il dato (mail) in una seconda tabella mediante il seguente codice:

$query="INSERT INTO iscritti ( nome, cognome, provincia, via, mail, localita, telefono, discipline) VALUES ('$nome', '$cognome', '$provincia', '$via', '$localita', '$telefono', '$discipline')";
$query_mail="INSERT INTO mail (email) VALUES ('$email')";


ora mi si aggiunge un nuovo problema.
come posso recuperare i dati dalle due tabelle?
grazie

Efisio
 

Federico B.

Nuovo Utente
29 Set 2009
29
0
0
32
Sant'Antioco (CI)
Con una SELECT. Ma son osicuro che la seconda tabella (quella della mail) conetiene un riferimento alla prima, quindi devi utilizzare le JOIN.

Ripeto, se non posti la struttura delle tabelle è difficile aiutarti.
 

efisio

Utente Attivo
5 Ago 2008
95
0
0
Ciao Federico,
hai perfettamente ragione, ti posto i dati delle due tabelle.
prima tabella 'Utenti':

id int (10) null(no) extra (auto_increment);
nome varchar (20) null (no);
cognome varchar (20) null (no);
localita varchar (20) null (no);
via varchar (20) null (no);
telefono int (20) null (no);
discipline varchar (20) null (no);
descrizione text null (yes) (default) null;
data timestamp no (default) current_timestamp;
tipo Myisam.

Tabella Mail:

id int (10) null(no) extra (auto_increment);
email varchar (20) null (no).

ho trascritto i dati prendendoli dalle tabelle in phpmyadmin.
 

Federico B.

Nuovo Utente
29 Set 2009
29
0
0
32
Sant'Antioco (CI)
Se id della mail è uguale a quella degli user puoi fare così:
Codice:
SELECT u.*, m.email 
FROM Utenti AS u
	LEFT JOIN Mail AS m
		ON (u.id = m.id)
WHERE u.id =
in u.id dopo l'uguasle devi inserire l'id. Ovviamente l'id della mail deve essere uguale a quello di u quindi quando esegui l'INSER INTO devi fare due query inserendo lo stesso valore, non ti consiglio di inserire l'auto_increment, rischi di avere dei problemi poi nel caso uno non inserisca l'email.
 
Discussioni simili
Autore Titolo Forum Risposte Data
L Vanno bene queste due query per estrarre da due tabelle? MySQL 6
max75 query su due tabelle e dati doppioni MS Access 2
T Query su due tabelle con totali Database 4
C Php/Mysql query JOIN tra due tabelle PHP 18
napuleone query su due database PHP 5
N Query due tabelle PHP 4
M Problemi con query su due tabelle PHP 2
T Query con due tabelle Database 4
L Due query una sola while PHP 1
D Query di delete tra due tabelle MySQL 1
Emix Query eseguita due volte anche se fuori dal ciclo.. PHP 1
helpdesk doppia query a due db diversi PHP 5
X eseguire due query aiuto PHP 1
W Creare una query tra due tabelle... PHP 1
Z Unire i risultati di due Query PHP 3
T come ordinare dei record recuperati da due tabelle MySQL 0
K Mettere insieme due funzioni Javascript 2
C Autenticazione a due fattori FB Social Media Marketing 0
A Visualizzazione due tabelle PHP 1
MarcoGrazia Calcolo fra due date con esclusione delle feste PHP 7
P inserire due voci in un titolo post wp WordPress 1
J Scrivere in due JPanel Java 1
F confrontare due stringhe "numeriche" PHP 7
M Aggiornare stesso campo in due tabelle PHP 0
M Collegare due segmenti di rete diversi Reti LAN e Wireless 0
M Aggiornare simultaneamente i campi di due tabelle collegate con id PHP 4
Tommy03 Unire dati da due tabelle MySQL 5
A Cercare un carattere uguale in due stringhe Java 5
elpirata [MySQL] Sincronizzare dati tra due tabelle sullo stesso host MySQL 0
S [PHP] Confrontare due array con valori quasi uguali PHP 2
G Mi hanno fatto due preventivi per telecamere abitazione IP Cam e Videosorveglianza 8
MarcoGrazia [PHP] Unioni di due array con somma di valori PHP 6
MarcoGrazia jquery validate, necessità di validare almeno un elemento select su due jQuery 1
Tommy03 Due menù nella stessa app Sviluppo app per Android 0
I [PHP] generazione url "uguale" che punta a due immagini diverse PHP 0
felino Bootstrap alert: usare lo stesso div per due messaggi consecutivi jQuery 1
G Condividere 1 cartella in rete due computer windows 10 Reti LAN e Wireless 0
Domenico_Falco1 Associare una stessa funzione get a due eventi a.click con classi differenti Ajax 6
M PHP Arrotondamento minuti in differenza tra due Orari PHP 9
N due siti web sullo stesso spazio hosting Hosting 0
S [PHP] come esportare due tabelle in file excel su due fogli distinti PHP 8
maxnegri Conoscere giorni della settimana fra due date con php PHP 2
felino EXCEL: verifica dati mancanti tra due sheet Windows e Software 2
I Allineare due righe di testo in photoshop Photoshop 2
Monital funzione php si ripete due volte PHP 6
A [Javascript] Multi input su due tabelle correlate Javascript 1
felino Windows 8.1: installare sistema operativo e programmi in due hard disk diversi Windows e Software 4
M [PHP] Sommare due campi calcolati PHP 3
K [PHP] Controllare dati database tra due valori PHP 18
F [Photoshop] sovrapporre due immagini usando funzione batch Photoshop 0

Discussioni simili