Forum Flash, Actionscript, PHP e MySQL
2 form in 1

 
Nuovo Topic   Rispondi    Forum Flash, Actionscript, PHP e MySQL » PHP
Precedente  Successivo 
Autore Messaggio
alien
nuovo utente
nuovo utente



Registrato: 05/06/07 21:03
Messaggi: 12
Località: molto lontano

MessaggioOggetto: 2 form in 1
Inviato: 09.06.07 | 21:47
Rispondi citando

Ciao Coach,

ho due form per inserire dati in due tabelle mysql diverse. Cool

questo inserisce dati testuali nella tabella "db1" richiamando il file save.php:
 
Codice:
<?
include ("config.inc.php");
include (
"top_foot.inc.php");

//intestazione
top();
?><head>    
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">    
    <title>Registrazione</title>    
    </head>

    <form method="post" action="save.php" enctype="multipart/form-data" name="insert1">
<table align="center">

    <tr valign="baseline">
    <td nowrap align="left">nome:</td>
    <td><input name="nome" type="text" size="40" maxlength="40"></td>
    </tr>
    <tr valign="baseline">
    <td nowrap align="left">indirizzo e-mail:</td>
    <td><input name="mail" type="text" size="40" maxlength="50"></td>
    </tr>
    <tr valign="baseline">
    <td nowrap align="left">URL del sito internet:</td>
    <td><input name="url" type="text" size="40" maxlength="80"></td>
    </tr>
    <tr valign="baseline">
    <td nowrap align="left">breve descrizione del sito:</td>
    <td><input name="des" type="text" size="40" maxlength="60"></td>
    </tr>
    <tr valign="baseline">
    <td nowrap align="left"></td>
    <td><input name="send" type="submit" id="send" value="Invia"></td>
    </tr>

</table>

</form>

<?
// chiusura pagina
foot();
?>


file save.php:
 
Codice:
<? include("top_foot.inc.php");
include(
"config.inc.php");
top();
if (
trim($nome) == "" OR trim($mail) == "" OR trim($url) == "" OR trim($des) == ""):
echo 
"tutti i campi devono essere riempiti!";
else:
$nome addslashes(stripslashes($nome));
$mail addslashes(stripslashes($mail));
$url addslashes(stripslashes($url));
$des addslashes(stripslashes($des));
$nome str_replace("<""&lt;"$nome);
$nome str_replace(">""&gt;"$nome);
$des str_replace("<""&lt;"$des);
$des str_replace(">""&gt;"$des);

$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 db1 (nome, mail, url, des) VALUES ('$nome', '$mail', '$url', '$des')";
if (
mysql_query($query$db))
echo 
"Registrazione completata";
else
echo 
"Erorre durante la registrazione";
mysql_close($db); endif;
foot();
?>


mentre questo fa l'upload delle immagini nella tabella "img":
 
Codice:
<?php    
include ("config.inc.php");
include (
"top_foot.inc.php");
top();
// se è stato inviato il file...   
if(isset($_POST['invia']))   
{   
    
// se ci sono stati problemi nell'upload del file   
    
if(!isset($_FILES['file_inviato']) OR $_FILES['file_inviato']['error'] != UPLOAD_ERR_OK)  
    
mostra_form("errore nell'invio del file. Riprova");   
  
    
// connessione e selezione del database   
    
mysql_connect($db_host$db_user$db_password)   
    or die(
'Connessione non riuscita: ' mysql_error());   
  
    if(!
mysql_select_db($db_name))   
    die(
'Selezione database fallita!');   
  
    
// recupero alcune informazioni sul file inviato   
    
$nome_file_temporaneo $_FILES['file_inviato']['tmp_name'];   
    
$nome_file_vero $_FILES['file_inviato']['name'];   
    
$tipo_file $_FILES['file_inviato']['type'];   
  
    
// leggo il contenuto del file   
    
$dati_file file_get_contents($nome_file_temporaneo);   
  
    
// preparo il contenuto del file per la query   
    
$dati_file addslashes($dati_file);   
  
    
// query per inserire il file nel DB   
    
$query "INSERT INTO img SET  
                nome = '
$nome_file_vero',   
                type = '
$tipo_file',   
                file = '
$dati_file'";    
  
    
mysql_query($query)   
    OR die(
'Query non valida: ' mysql_error());   
  
    
// mostro di nuovo il form ed un messaggio di conferma   
    
mostra_form("<p align='center'>Memorizzazione del file <b>$nome_file_vero</b> nel database eseguita correttamente.</p>");   
}   
else  
{   
    
mostra_form();   
}   
  
//form   
function mostra_form($messaggio '')   
{   
    
?><head>    
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">    
    <title>Upload immagine</title>    
    </head>
    <?php echo $messaggio?> <br>
    <form method="post" action="" enctype="multipart/form-data" name="insert2">
    <table align="center">
    
        <tr valign="baseline">
        <td nowrap align="left">seleziona un'immagine:</td>
        <td><input name="file_inviato" type="file" size="40" maxlength="40"></td>
        </tr>
        <tr valign="baseline">
        <td nowrap align="left"></td>
        <td><input name="invia" type="submit" value="Invia file"></td>
        </tr>
        
    </table>
    </form> 
    <?php    
    
exit();   
}   
foot();
?>


e fino a qui tutto bene.

Il problema è che non riesco a "fonderli" per inviare tutti i dati alle due tabelle in un unico form... dho
suggerimenti? fagiano
Torna in cima
Profilo Messaggio privato  
Sponsor
Coach
amministratore
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4549
Località: Verona

MessaggioOggetto:
Inviato: 11.06.07 | 00:53
Rispondi citando

Ciao alien,
scusa... ma sono un po' stanco dalla giornata e non ho visto tutto il codice, ma credo sia più importante la logica che non il codice sopra scritto.

Cioè, per prima devi pensare a cosa devi fare... e poi inizi a strutturare la cosa.
Per iniziare, come mai la decisione di fare due form separati?

Comunque il problema non si presenta, usa un'unico form, che punta ad un'unico script PHP, volendo anche a se stesso ed esegui le 2 query in tabelle differenti.

.

____________________________________________________________


Il Forum è uno strumento di condivisione, oltre a fare DOMANDE, si possono anche dare RISPOSTE!


Ultima modifica di Coach il 11.06.07 | 12:12, modificato 1 volta in totale
Torna in cima
Profilo Messaggio privato [ Nascosto ] HomePage Yahoo Messenger MSN Messenger Skype
alien
nuovo utente
nuovo utente



Registrato: 05/06/07 21:03
Messaggi: 12
Località: molto lontano

MessaggioOggetto:
Inviato: 11.06.07 | 12:04
Rispondi citando

allora mi spiego...

i due form sono separati perché ho aggiunto dopo la possibilità di fare l'upload delle immagini, e non sapendo come integrare il campo per l'upload nel form precedente (siccome le immagini sono in un'altra tabella del database) ne ho creato uno a parte per fare delle prove.

L'obiettivo è proprio quello di inviare i dati testuali in una tabella e le immagini nell'altra con un unico form: quello che non riesco a fare. fagiano

la soluzione è probabilmente semplice, ma per adesso non ho ancora molta esperienza con php/mysql Rolling Eyes

per esempio qui:
 
Codice:
<? $query "INSERT INTO db1 (nome, mail, url, des) VALUES ('$nome', '$mail', '$url', '$des')"?>


come faccio se voglio aggiungere anche questa query?
 
Codice:
<?$query "INSERT INTO img SET   
                nome = '
$nome_file_vero',    
                type = '
$tipo_file',    
                file = '
$dati_file'"?>

oppure devo fare due query separate?
penso che qui non c'entra niente l'inner join. Whistle
Torna in cima
Profilo Messaggio privato  
Coach
amministratore
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4549
Località: Verona

MessaggioOggetto:
Inviato: 11.06.07 | 12:13
Rispondi citando

Esatto, non centra niente l'INNER JOIN, devi fare due query. fagiano

.

____________________________________________________________


Il Forum è uno strumento di condivisione, oltre a fare DOMANDE, si possono anche dare RISPOSTE!
Torna in cima
Profilo Messaggio privato [ Nascosto ] HomePage Yahoo Messenger MSN Messenger Skype
alien
nuovo utente
nuovo utente



Registrato: 05/06/07 21:03
Messaggi: 12
Località: molto lontano

MessaggioOggetto:
Inviato: 16.06.07 | 22:14
Rispondi citando

sono sempre al punto di prima Shocked Shocked Shocked

ho fatto due query separate, ma esce l'errore nell'eseguzione della query che fa l'upload dell'immagine.

se avrai mai tempo e voglia di leggere il codice please help me. fagiano
non riesco a trovare dove è l'errore! Shoked

form:
 
Codice:
<?
include ("config.inc.php");
include (
"top_foot.inc.php");

//intestazione
top();
?>
    <head>    
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">    
    <title>Registrazione</title>    
    </head>

    <form method="post" action="save.php" enctype="multipart/form-data" name="insert1">
<table align="center">

    <tr valign="baseline">
    <td nowrap align="left">nome:</td>
    <td><input name="nome" type="text" size="40" maxlength="40"></td>
    </tr>
    <tr valign="baseline">
    <td nowrap align="left">indirizzo e-mail:</td>
    <td><input name="mail" type="text" size="40" maxlength="50"></td>
    </tr>
    <tr valign="baseline">
    <td nowrap align="left">URL del sito internet:</td>
    <td><input name="url" type="text" size="40" maxlength="80"></td>
    </tr>
    <tr valign="baseline">
    <td nowrap align="left">breve descrizione del sito:</td>
    <td><input name="des" type="text" size="40" maxlength="60"></td>
    </tr>
    <tr valign="baseline">
    <td nowrap align="left">immagine:</td>
    <td><input name="file_inviato" type="file" size="40" maxlength="40"><td>
    </tr>
    <tr valign="baseline">
    <td nowrap align="left"></td>
    <td><input name="invia" type="submit" value="Invia"></td>
    </tr>

</table>

<input type="hidden" name="MAX_FILE_SIZE" value="300000">
</form>
<?
// chiusura pagina
foot();
?>


script php al quale punta il form:
 
Codice:
<?
include("top_foot.inc.php");
include(
"config.inc.php");
top();

if (
trim($nome) == "" OR trim($mail) == "" OR trim($url) == "" OR trim($des) == "" OR trim($file_inviato) == ""):
echo 
"<p align='center'><b>Tutti i campi devono essere riempiti!</b></p>";
else:
$nome addslashes(stripslashes($nome));
$mail addslashes(stripslashes($mail));
$url addslashes(stripslashes($url));
$des addslashes(stripslashes($des));
$nome str_replace("<""&lt;"$nome);
$nome str_replace(">""&gt;"$nome);
$des str_replace("<""&lt;"$des);
$des str_replace(">""&gt;"$des);

// se è stato inviato il file...   
if(isset($_POST['invia']))   
{   
    
// se ci sono stati problemi nell'upload del file   
    
if(!isset($_FILES['file_inviato']) OR $_FILES['file_inviato']['error'] != UPLOAD_ERR_OK)  
    (
"errore nell'invio del file. Riprova");   
  
    
// connessione e selezione del database   
    
$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"); 
  
    
// recupero alcune informazioni sul file inviato   
    
$nome_file_temporaneo $_FILES['file_inviato']['tmp_name'];   
    
$nome_file_vero $_FILES['file_inviato']['name'];   
    
$tipo_file $_FILES['file_inviato']['type'];   
  
    
// leggo il contenuto del file   
    
$dati_file file_get_contents($nome_file_temporaneo);   
  
    
// preparo il contenuto del file per la query   
    
$dati_file addslashes($dati_file); 
    
    
$query1 "INSERT INTO db1 (nome, mail, url, des) VALUES ('$nome', '$mail', '$url', '$des')";
    
$query2 "INSERT INTO img SET 
                nome = '
$nome_file_vero', 
                type = '
$tipo_file', 
                file = '
$dati_file'";
}
if(
mysql_query($query1$query2$db))
        echo 
"<p align='center'>Registrazione effettuata correttamente</p>";
    else
        echo 
"<p align='center'>C'è stato un errore durante la registrazione!</p>";
mysql_close($db); endif;
foot();
?>


cliccando su invia si visualizza "C'è stato un errore durante la registrazione!", ma siccome la query1 eseguita singolarmente funziona l'errore probabilmente sta nella query2.
Torna in cima
Profilo Messaggio privato  
mesk8
avanzato
avanzato


Età: -1984
Registrato: 31/10/05 16:41
Messaggi: 252
Località: Verona

MessaggioOggetto:
Inviato: 18.06.07 | 08:10
Rispondi citando

ciao alien, prova a cambiare quella riga così e poi ci dici cosa esce...
 
Codice:
<?php
echo '<p align="center">C\'è stato un errore durante la registrazione!'.mysql_error().'</p>';
?>
Torna in cima
Profilo Messaggio privato [ Nascosto ] MSN Messenger
Coach
amministratore
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4549
Località: Verona

MessaggioOggetto:
Inviato: 18.06.07 | 10:07
Rispondi citando

Non mi sembra che a mysql_query() tu possa passare due query... riceve due parametri.

.

____________________________________________________________


Il Forum è uno strumento di condivisione, oltre a fare DOMANDE, si possono anche dare RISPOSTE!
Torna in cima
Profilo Messaggio privato [ Nascosto ] HomePage Yahoo Messenger MSN Messenger Skype
mesk8
avanzato
avanzato


Età: -1984
Registrato: 31/10/05 16:41
Messaggi: 252
Località: Verona

MessaggioOggetto:
Inviato: 18.06.07 | 12:35
Rispondi citando

vero vero, in quel modo non si può fare... Eh
Torna in cima
Profilo Messaggio privato [ Nascosto ] MSN Messenger
alien
nuovo utente
nuovo utente



Registrato: 05/06/07 21:03
Messaggi: 12
Località: molto lontano

MessaggioOggetto:
Inviato: 18.06.07 | 16:35
Rispondi citando

ehm vero, non si può fare... Mmhhh Rolling Eyes

allora cosa intendevi Coach per fare le due query? Eh
Torna in cima
Profilo Messaggio privato  
Coach
amministratore
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4549
Località: Verona

MessaggioOggetto:
Inviato: 18.06.07 | 16:40
Rispondi citando

Di farne semplicemente 2 fagiano

Esempio:
 
Codice:
<?php
$query1 
"INSERT INTO db1 ...";
$result1 mysql_query($query1);
$query2 "INSERT INTO img ...";
$result2 mysql_query($query2);
?>

____________________________________________________________


Il Forum è uno strumento di condivisione, oltre a fare DOMANDE, si possono anche dare RISPOSTE!
Torna in cima
Profilo Messaggio privato [ Nascosto ] HomePage Yahoo Messenger MSN Messenger Skype
alien
nuovo utente
nuovo utente



Registrato: 05/06/07 21:03
Messaggi: 12
Località: molto lontano

MessaggioOggetto:
Inviato: 18.06.07 | 17:53
Rispondi citando

Embarassed Embarassed Embarassed
ehm, ovvio, adesso è a posto Tu Ta Ta Tu Ta Ta Tu Ta Ta

grazie coach e mesk x le risposte Cool
Torna in cima
Profilo Messaggio privato  
Coach
amministratore
amministratore


Età: -1981
Registrato: 31/01/03 13:50
Messaggi: 4549
Località: Verona

MessaggioOggetto:
Inviato: 18.06.07 | 17:55
Rispondi citando

de nada Wink

.

____________________________________________________________


Il Forum è uno strumento di condivisione, oltre a fare DOMANDE, si possono anche dare RISPOSTE!
Torna in cima
Profilo Messaggio privato [ Nascosto ] HomePage Yahoo Messenger MSN Messenger Skype
Mostra prima i messaggi di:   
Nuovo Topic   Rispondi    Forum Flash, Actionscript, PHP e MySQL » PHP Tutti i fusi orari sono GMT + 2 ore
Pagina 1 di 1

Discussioni Simili
Topic Autore Forum Risposte Ultimo Messaggio
Nessun nuovo messaggio Form che invia dati e file a database... roratonet PHP 4 28.09.11 | 05:34 Leggi gli ultimi messaggi
astroross15
Nessun nuovo messaggio php form claire PHP 16 29.10.04 | 12:33 Leggi gli ultimi messaggi
claire
Nessun nuovo messaggio form php pentesilea PHP 1 23.08.11 | 09:27 Leggi gli ultimi messaggi
Coach
Nessun nuovo messaggio form Flash Flash Generale 1 17.07.06 | 21:12 Leggi gli ultimi messaggi
suns
Nessun nuovo messaggio Ancora un form ggoso ActionScript & Server Side 2 04.02.07 | 15:41 Leggi gli ultimi messaggi
ggoso



 
Vai a:  
Non puoi inserire nuovi Topic in questo forum
Non puoi rispondere ai Topic in questo forum
Non puoi modificare i tuoi messaggi in questo forum
Non puoi cancellare i tuoi messaggi in questo forum
Non puoi votare nei sondaggi in questo forum
Non puoi allegare files in questo forum
Non puoi downloadare gli allegati in questo forum



Powered by phpBB © 2001, 2002 phpBB Group - phpBB SEO Designed by coachdesign - © 2003-2005