 |
Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Comunitatea PHP Romania
|
| Subiectul anterior :: Subiectul următor |
| Autor |
Mesaj |
UnTip
Data înscrierii: 03/Mai/2007
Mesaje: 377
|
| Trimis: Joi Aug 28, 2008 8:00 am Titlul subiectului: Update in baze diferite pe acelasi server |
|
|
am doua baza identice (structura,campuri,etc) pe acelasi server, cu date diferite
trebuie sa introduc utilizatorii care se autentifica in aplicatie dintr-o baza in cealalta....
sql-ul ar arata asa...
"insert into auth (id,uname,passwd,level,status) values('$new_id','".($row->uname)."','".$row->passwd."','".$row->level."','".$row->status."');
unde $new_id, este creeat la inserarea unui nou rand in tabela de autentificare prin update-ul intr-o alta tabela a unei valori, id-ul rezultat de acolo fiind noul id al userului inserat in baza de date
$sql_update_id = "update new_id set value=value+1 where tip='auth'";
$rs_update = @mysql_query($sql_update_id,) or die("Err:02 Nu s-a putut realiza update-ul pentru id-ul ".$row->uname);
$sql_updated_id = "select value from new_id where tip='auth'";
ideea e ca sunt 2 baze diferite si ca sa rezolv prin php trebuie sa ma conectez la o baza sa i-au utilizatorii de acolo apoi sa ma conectez la cealalta baza in structura repetitiva in care mi-am adus utilizatorii din prima baza si sa incerc sa fac update-ul in aceasta baza, nu stiu daca e posibil asa ceva, am versiune de mysql 5.0.27, am citit de fetered storage engine insa nu e disponibil decat din 5.03 si nu stiu cum m-ar fi ajutat asta...
daca aveti idei pls free your mind |
|
| Sus |
|
griffin
Data înscrierii: 07/Dec/2006
Mesaje: 100
|
| Trimis: Joi Aug 28, 2008 8:24 am Titlul subiectului: |
|
|
Cel mai simplu este sa scoti utilizatorii din prima baza de date si sa-i pui pe toti intr-un array.Adica
Cod:
$utilizatori=array();
while($row=mysql_fetch_array( $query_din_prima_baza) ){
$utilizator[]= $row;
}
//dupa ce iese din while ai toti utilizatorii in array-ul $utilizatori
//te conectezi la celalta baze de date si scoti din arrayul utilizatori ce ai nevoie
mysql_select_db('noua_baza');
foreach($utilizatori as $utilizator){
foreach($utilizator as $row){
mysql_query("insert into auth (id,uname,passwd,level,status) values('$new_id','".($row->uname)."','".$row->passwd."','".$row->level."','".$row->status."');
}
}
//Daca ai inregistrari putine e ok insa daca vrei sa scoti un intreg tabel...nu prea
Cred ca ai putea sa faci un "cron" care sa faca asta la un anumit interval si sa ia numai utilizatorii are nu au fost deja luati.[/code] |
|
| Sus |
|
UnTip
Data înscrierii: 03/Mai/2007
Mesaje: 377
|
| Trimis: Joi Aug 28, 2008 8:52 am Titlul subiectului: |
|
|
as putea sa fac asta
pe langa mysql_query("insert into auth (id,uname,passwd,level,status) values('$new_id','".($row->uname)."','".$row->passwd."','".$row->level."','".$row->status."');
ar mai trebui sa execut si update-ul pentru a incrementa valoarea noului id, ideea e ca mai am 2 tabele folders2repr si folders unde sunt tinute niste id-uri de foldere si folders2repr id-ul fiecarui user corespunzator unui folder pe care trebuie sa ii fac update, dar se pare ca asta ar fi singura solutia sa stochez datele intr-un vector |
|
| Sus |
|
UnTip
Data înscrierii: 03/Mai/2007
Mesaje: 377
|
| Trimis: Joi Aug 28, 2008 10:36 am Titlul subiectului: |
|
|
Si acum alta problema unele campuri inserate se regasesc in tabela aceea vreau sa fac un fel de INSERT ignore eu neavand unicitate pe utilizator....
INSERT IGNORE doar pe un camp din tabela de autentificare cu alte cuvinte sa nu-mi insereze valorile duplicat pentru utilizator din datele mele pe care vreau sa le introduc in noua tabela unde fac insertul...
any ideas? |
|
| Sus |
|
PHPRomania Bot
Bot Member
Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google |
| Trimis: Mie Dec 26, 2007 7:01 pm Titlul subiectului: Ad |
|
|
|
|
|
| Sus |
|
| |
|