Archivio

Bizio2009

Utente Attivo
12 Giu 2009
310
0
0
Ciao!
Lo script originale

PHP:
$query=mysql_query("SELECT cognome, nome, data_di_nascita FROM trasferimento ORDER BY cognome");
$trasferimento=mysql_num_rows($query);

$id_cl=$trasferimento['id_cl'];
$cognome=$trasferimento['cognome'];
$nome=$trasferimento['nome'];
$data_di_nascita=$trasferimento['data_di_nascita'];


$id_cl=htmlspecialchars($_GET['id_cl']); 
$query1=mysql_query("SELECT * FROM inserimento_dati_cliente WHERE id_cl='$id_cl'");
$inserimento_dati_cliente=mysql_fetch_array($query1);

$cognome=$inserimento_dati_cliente['cognome']; 
$nome=$inserimento_dati_cliente['nome']; 
$data_di_nascita=$inserimento_dati_cliente['data_di_nascita']; 

$query2="INSERT INTO trasferimento (cognome, nome, data_di_nascita) VALUE('$cognome', '$nome', '$data_di_nascita')"; 
$inserisci_in_ball=mysql_query($query2); 
//elimini il nome trasferito dalla tabella clienti_fissi 
$query3=mysql_query("DELETE FROM inserimento_dati_cliente WHERE id_cl='$id_cl'"); 
//link di ritorno

echo "TRASFERIMENTO EFFETTUATO";

?>

Così mi trasferisce, togliendo il cliente dai clienti attuali quindi tutto ok...

Se invece tolto questa parte, la terza query di DELETE...

PHP:
$query3=mysql_query("DELETE FROM inserimento_dati_paziente WHERE id_cl='$id_cl'"); 
//link di ritorno
...mi dà l'alert di trasferimento ma in verità non mi trasferisce perchè i clienti attuali rimangono sempre gli stessi.

Grazie!
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
ti faccio un esempio

tabella "inserimento_dati_cliente"
aristide
burlacco
......
zuzzerellone
tabella "trasferimento" vuota

lanci lo script (con query delete) e trasferisci "burlacco", le due tabelle diventano

tabella "inserimento_dati_cliente"
aristide
......
zuzzerellone

tabella "trasferimento"

se togli la query delete invece se lanci come prima "burlacco" ottieni

tabella "inserimento_dati_cliente"
aristide
burlacco
......
zuzzerellone
e
tabella "trasferimento"
 

Bizio2009

Utente Attivo
12 Giu 2009
310
0
0
Sì sì volevo proprio quello:

inserimento_dati_cliente.php

pinco
pallo
tizio
semprogno

trasferimento vuota

Trasferisco pinco e inserimento_dati_cliente rimane sempre con quattro clienti mentre trasferimento diventa


e clienti attuali

PHP:
pallo
tizio
semprogno

...e così l'opera si completa :mavieni: Ovviando anche il problema che ho con le 3 query (ma verrebbe meglio anche a me).

In realtà invece, togliendo il DELETE mi fà casino, nel senso che non mi trasferisce più...

Trasferimento.php (con il DELETE tolto)

$query=mysql_query("SELECT cognome, nome, data_di_nascita FROM trasferimento ORDER BY cognome");
$trasferimento=mysql_num_rows($query);

$id_cl=$trasferimento['id_cl'];
$cognome=$trasferimento['cognome'];
$nome=$trasferimento['nome'];
$data_di_nascita=$trasferimento['data_di_nascita'];


$id_cl=htmlspecialchars($_GET['id_cl']);
$query1=mysql_query("SELECT * FROM inserimento_dati_cliente WHERE id_cl='$id_cl'");
$inserimento_dati_cliente=mysql_fetch_array($query1);

$cognome=$inserimento_dati_cliente['cognome'];
$nome=$inserimento_dati_cliente['nome'];
$data_di_nascita=$inserimento_dati_cliente['data_di_nascita'];

$query2="INSERT INTO trasferimento (cognome, nome, data_di_nascita) VALUE('$cognome', '$nome', '$data_di_nascita')";
$inserisci_in_ball=mysql_query($query2);

echo "TRASFERIMENTO EFFETTUATO";

?>

Grazie borgo! ;)
 
Ultima modifica:

Bizio2009

Utente Attivo
12 Giu 2009
310
0
0
Anche qui faccio un uppete :hammer: Se tolgo il DELETE non mi trasferisce più nulla...
Vorrei che da "inserimento_dati_cliente" venisse preso il cliente ma non sottratto...non sò se si possa fare...

Grasssssssie!!!
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
Se tolgo il DELETE non mi trasferisce più nulla...
Vorrei che da "inserimento_dati_cliente" venisse preso il cliente ma non sottratto...non sò se si possa fare...

non capisco esattamente, se vuoi fare quello che dici nel tuo post del 06.09.2009 non devi togliere il delete, se invece vuoi che nella tabella inserimento rimanga il nome allora lo togli.
comunque per spazzare ogni dubbio conviene che tu capisca che quello che stai facendo non è un vero e proprio trasferimento, in php (a che ne so) non esiste la seguente riga

PHP:
$query=mysql_query("TRANSFER FROM pinco TO pallino ...."); //magari

quello che effettivamente fai sono tre operazioni distinte

1. leggi dalla tabella inserimento con SELECT * FROM inserimento WHERE id='$id' ricavandone i vari campi

2. inserisci in tabella trasferiti i campi letti al punto 1:"INSERT INTO trasferiti...."

3. elimini da tabella inserimento il record che hai appena letto e inserito in tabella trasferiti:"DELETE FROM trasferti WHERE id='$id'"

le operazioni al 2 e 3 sono indipendenti, tanto è vero che potresti fare prima la 3 e poi la due, oppure eliminare una delle due, con risultati diversi si intende
 

Bizio2009

Utente Attivo
12 Giu 2009
310
0
0
Ciao borgo!!! In realtà è un'idea che mi è venuta dopo, mi piacerebbe di più modificarlo. Quindi poter trasferire senza togliere i record nella tabella inserimento_dati_cliente.

quello che effettivamente fai sono tre operazioni distinte

1. leggi dalla tabella inserimento con SELECT * FROM inserimento WHERE id='$id' ricavandone i vari campi

2. inserisci in tabella trasferiti i campi letti al punto 1:"INSERT INTO trasferiti...."

3. elimini da tabella inserimento il record che hai appena letto e inserito in tabella trasferiti:"DELETE FROM trasferti WHERE id='$id'"

le operazioni al 2 e 3 sono indipendenti, tanto è vero che potresti fare prima la 3 e poi la due, oppure eliminare una delle due, con risultati diversi si intende
Esattamente. Però io vorrei fare questo se è possibile:

1. leggere dalla tabella inserimento con SELECT * FROM inserimento WHERE id='$id' ricavandone i vari campi

2. inserire in tabella trasferiti i campi letti al punto 1:"INSERT INTO trasferiti...."

3. NON eliminare da tabella inserimento il record che hai appena letto e inserirlo in tabella trasferiti:"DELETE FROM trasferti WHERE id='$id'"

Se tolgo la query del DELETE non mi trasferisce più nel senso che non è più funzionante. Ad esempio se io faccio per trasferire PINCO mi dice come da codice, alert e poi trasferimento avvenuto ma invece se vado nuovamente nei clienti da trasferire PINCO lo trovo ancora lì.

PHP:
$query=mysql_query("SELECT cognome, nome, data_di_nascita FROM trasferimento ORDER BY cognome"); 
$trasferimento=mysql_num_rows($query); 

$id_cl=$trasferimento['id_cl']; 
$cognome=$trasferimento['cognome']; 
$nome=$trasferimento['nome']; 
$data_di_nascita=$trasferimento['data_di_nascita']; 


$id_cl=htmlspecialchars($_GET['id_cl']);  
$query1=mysql_query("SELECT * FROM inserimento_dati_cliente WHERE id_cl='$id_cl'"); 
$inserimento_dati_cliente=mysql_fetch_array($query1); 

$cognome=$inserimento_dati_cliente['cognome'];  
$nome=$inserimento_dati_cliente['nome'];  
$data_di_nascita=$inserimento_dati_cliente['data_di_nascita'];  

$query2="INSERT INTO trasferimento (cognome, nome, data_di_nascita) VALUE('$cognome', '$nome', '$data_di_nascita')";  
$inserisci_in_ball=mysql_query($query2);  
//elimini il nome trasferito dalla tabella clienti_fissi  
$query3=mysql_query("DELETE FROM inserimento_dati_cliente WHERE id_cl='$id_cl'"); //vorrei che non venisse tolto da inserimento_dati_cliente ma trasferito lo stesso lasciando quindi i records in tabella inserimento_dati_cliente
//link di ritorno 

echo "TRASFERIMENTO EFFETTUATO";
Forse non si può fare e non l'ho capito?

Grazie borgo!!!
Ciao e buona giornata!!!
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
Se tolgo la query del DELETE non mi trasferisce più nel senso che non è più funzionante
:confused:
scusa ma non capisco esattamente quello che fai ho vuoi.
analizzado il codice che hai postato nelle prime righe trovo:

PHP:
$query=mysql_query("SELECT cognome, nome, data_di_nascita FROM trasferimento ORDER BY cognome");  
$trasferimento=mysql_num_rows($query);  

$id_cl=$trasferimento['id_cl'];  
$cognome=$trasferimento['cognome'];  
$nome=$trasferimento['nome'];  
$data_di_nascita=$trasferimento['data_di_nascita'];

a che ti servono queste righe? fai una query su tutta la tabella
e prelevi tutti i campi della stessa con il solito mysql_num_rows,
poi prendi uno/tutti (dove è il while???) $id_cl, con
$id_cl=$trasferimento['id_cl']; quale id prelevi?
e poi non avendo messo echo cosa vedi?
se nalle tabella "trasferimento" hai, es. 100 record,
prelevi (?)100 id diversi, analogo per gli altri campi

passiamo alle righe successive

PHP:
$id_cl=htmlspecialchars($_GET['id_cl']);   
$query1=mysql_query("SELECT * FROM inserimento_dati_cliente WHERE id_cl='$id_cl'");  
$inserimento_dati_cliente=mysql_fetch_array($query1);  

$cognome=$inserimento_dati_cliente['cognome'];   
$nome=$inserimento_dati_cliente['nome'];   
$data_di_nascita=$inserimento_dati_cliente['data_di_nascita'];   

$query2="INSERT INTO trasferimento (cognome, nome, data_di_nascita) VALUE('$cognome', '$nome', '$data_di_nascita')";   
$inserisci_in_ball=mysql_query($query2);   
//elimini il nome trasferito dalla tabella clienti_fissi   
$query3=mysql_query("DELETE FROM inserimento_dati_cliente WHERE id_cl='$id_cl'"); //vorrei che non venisse tolto da inserimento_dati_cliente ma trasferito lo stesso lasciando quindi i records in tabella inserimento_dati_cliente 
//link di ritorno  

echo "TRASFERIMENTO EFFETTUATO";

giustamente prelevi con $_GET l'id nel cliente che vuoi trasferire
con la query1 leggi i dati del cliente che posside tale id (WHERE id_cl='$id_cl')
e prelevi i suoi dati relativi

se vuoi che il cliente pinco, con id=7733 venga "trasferito" lascia lo script come è
1. pinco letto da tabella inserimento
2. pinco inserito in tabella trasferiti
3. pinco eliminato da tabella inserimento

se al contrario vuoi che rimanga anche sulla tabella inserimento
commenta le righe



PHP:
//$query3=mysql_query("DELETE FROM inserimento_dati_cliente WHERE id_cl='$id_cl'");


in questo caso
1. pinco letto da tabella inserimento
2. pinco inserito in tabella trasferiti
3. pinco NON VIENE eliminato da tabella inserimento

se con l'alert intendi il messaggio TRASFERIMENTO EFFETTUATO tieni presente
che la riga
echo "TRASFERIMENTO EFFETTUATO";
è ininfluente su funzionamento e, se vuoi puoi modificarla in

PHP:
echo "il cliente $cognome è stato inserito nella tabella trasferiti";
 

Bizio2009

Utente Attivo
12 Giu 2009
310
0
0
Ciao!
Grazie borgo!

Anche se la commento...si comporta come se cancellassi la stessa riga, non mi trasferisce più il cliente. Con l'alert (vuoi trasferire? si/no) intendevo dire che esce, non mi dà errori, ma non mi trasferisce più nessuno...anche se clicco l'opzione "sì"...

Per quanto riguarda il while:

...la pagina trasferisci_cliente.php

PHP:
$query=mysql_query("SELECT id_cl, cognome, nome, data_di_nascita FROM inserimento_dati_cliente ORDER BY cognome"); 
$inserimento_dati_cliente=mysql_num_rows($query); 
if ($inserimento_dati_cliente > 0){ 
    while($inserimento=mysql_fetch_array($query)){

        $id_cl=$inserimento_dati_cliente['id_cl']; 
        $cognome=$inserimento_dati_cliente['cognome']; 
        $nome=$inserimento_dati_cliente['nome']; 
        $data_di_nascita=$inserimento_dati_cliente['data_di_nascita'];
        echo "$cognome $nome $data_di_nascita"; 
        echo "<a href=\"trasferimento.php?id_cl=$id_cl\" onclick=\"return(confirm('Confermi il trasferimento di $cognome $nome?'))\">   Trasferisci  </a><br><br>";
} 
}else{ 
    echo "NON CI SONO CLIENTI"; 
    //link di ritorno 
}//fine if else ci sono


E lo script trasferimento.php già postato prima

PHP:
$query=mysql_query("SELECT cognome, nome, data_di_nascita FROM trasferimento ORDER BY cognome");
$trasferimento=mysql_num_rows($query);

$id_cl=$trasferimento['id_cl'];
$cognome=$trasferimento['cognome'];
$nome=$trasferimento['nome'];
$data_di_nascita=$trasferimento['data_di_nascita'];


$id_cl=htmlspecialchars($_GET['id_cl']); 
$query1=mysql_query("SELECT * FROM inserimento_dati_cliente WHERE id_cl='$id_cl'");
$inserimento_dati_cliente=mysql_fetch_array($query1);

$cognome=$inserimento_dati_cliente['cognome']; 
$nome=$inserimento_dati_cliente['nome']; 
$data_di_nascita=$inserimento_dati_cliente['data_di_nascita']; 

$query2="INSERT INTO trasferimento (cognome, nome, data_di_nascita) VALUE('$cognome', '$nome', '$data_di_nascita')"; 
$inserisci_in_ball=mysql_query($query2); 
//elimini il nome trasferito dalla tabella clienti_fissi    
//$query3=mysql_query("DELETE FROM inserimento_dati_cliente WHERE id_cl='$id_cl'"); //vorrei che non venisse tolto da inserimento_dati_cliente ma trasferito lo stesso lasciando quindi i records in tabella inserimento_dati_cliente. Ho provato anche col commento ma nulla...
//link di ritorno 


echo "IL TRASFERIMENTO DI $cognome $nome E' STATO EFFETTUATO CON SUCCESSO";

Grazie borgo!!!
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
sei sicuro che non faccia l'inserimento?
il codice che hai postato (a parte le prime righe che continuo a non capire a che sti servan) mi sembra giusto e quindi deve inserire i dati dell' id scelto
verifica perchè se non inserisce l'errore non è nel codice. nomi campi tabella?
metti il solito

PHP:
$query2="INSERT INTO trasferimento (cognome, nome, data_di_nascita) VALUE('$cognome', '$nome', '$data_di_nascita')";
var_dump($query2);// poi lo togli
$inserisci_in_ball=mysql_query($query2);
 

Bizio2009

Utente Attivo
12 Giu 2009
310
0
0
Ho controllato, nel db entrano nella tabella trasferimento, però lo visualizzo sempre sulla pagina trasferimento, non si "cancella"...

Mi dà questo:

string(91) "INSERT INTO trasferimento (cognome, nome, data_di_nascita) VALUE('Ciao', 'ciao', '24-7-81')" IL TRASFERIMENTO DI Ciao ciao E' STATO EFFETTUATO CON SUCCESSO
 

Bizio2009

Utente Attivo
12 Giu 2009
310
0
0
Non mi toglie il nominativo in questa pagina:

PHP:
$query=mysql_query("SELECT id_cl, cognome, nome, data_di_nascita FROM inserimento_dati_cliente ORDER BY cognome"); 
$inserimento_dati_cliente=mysql_num_rows($query); 
if ($inserimento_dati_cliente > 0){ 
    while($inserimento=mysql_fetch_array($query)){

        $id_cl=$inserimento_dati_cliente['id_cl']; 
        $cognome=$inserimento_dati_cliente['cognome']; 
        $nome=$inserimento_dati_cliente['nome']; 
        $data_di_nascita=$inserimento_dati_cliente['data_di_nascita'];
        echo "$cognome $nome $data_di_nascita"; 
        echo "<a href=\"trasferimento.php?id_cl=$id_cl\" onclick=\"return(confirm('Confermi il trasferimento di $cognome $nome?'))\">   Trasferisci  </a><br><br>";
} 
}else{ 
    echo "NON CI SONO CLIENTI"; 
    //link di ritorno 
}//fine if else ci sono
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
quello che ti da è giusto

Non mi toglie il nominativo in questa pagina:
non si cancella perchè hai tolto il delete. e se lo rimetti e non cancella vuol dire che hai un errore nei nomi della tabella/query.
dividi la query3 in modo da vedere il risultato con var_dump

PHP:
$query3="DELETE FROM inserimento_dati_cliente WHERE id_cl='$id_cl'";  
var_dump($query3);
$elimina=mysql_query($query3);
var_dump($elimina);//ritorna TRUE se ok, FALSE se ko
 

Bizio2009

Utente Attivo
12 Giu 2009
310
0
0
Sì borgo, se metto il DELETE funziona tutto alla perfezione.
Però come faccio ad avere tutti i dati dei clienti (anche quelli trasferiti)se li volessi?
Se faccio SELECT nella tabella inserimento...mi dà i clienti attuali...

Forse lo script che delle 2 query per avere i clienti totali?

PHP:
$query1=mysql_query("SELECT cognome, nome, data_di_nascita FROM inserimento_dati_cliente");
$query2=mysql_query("SELECT cognome, nome, data_di_nascita FROM trasferimento");
 
Ultima modifica:

Discussioni simili