Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

Adaugare intr-o a-doua baza de date (2)
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> Cod PHP
Subiectul anterior :: Subiectul următor  
Autor Mesaj
computershop



Data înscrierii: 01/Sep/2003
Mesaje: 19

Trimis: Mar Sep 02, 2003 6:33 pm    Titlul subiectului: Adaugare intr-o a-doua baza de date (2)  

Treaba sta cam asa: in prima baza am numarul unei facturi identificate prin ID_A (unic,autonumber) pe care trebuie sa-l transmit catre un al doilea form de adaugare intr-o baza secunda ce contine pozitiile facturii.Astfel stochez in mai multe rinduri ID_B = ID_A. O alta problema ar fi cum sa fac la modificare sau stregere ca in prima faza identific inregistrarea asa
< echo "form2.php?key=".urlencode($row["ID_A"]); > dar dupa ce modific baza 1 trebuie sa dau un <submit> si sa ma duc mai departe cu ID_A in form 2 cu filtru pe recordset 2 ID_A=ID_B ? Iarasi va multumesc anticipat.
... acum nu vreau sa vorbesc intr-un ceas rau dar am programat juma din viata (de pina acum) de programator in FOX, iar restul in ACCESS da' zau daca puteam sa schim o vorba serioasa cu cineva pe vreun forum ca toti erau super secretosi. De cind cu PHP si MySQL am dat numai de super oameni. Sper ca in curind sa pot ajuta si eu pe cineva din acest forum. Va multumesc fantastic si bombastic.
Sus  
iugin



Data înscrierii: 22/Mai/2003
Mesaje: 82
Locație: Oradea

Trimis: Joi Sep 04, 2003 3:49 pm    Titlul subiectului:  

Buna sincer nu prea inteleg dar hai sa luam un caz:


ai tabela cu facturi:

invoice (idinvoice, name)
invoice_load (idinvoiceload, idinvoice, name, price)

Ma rog is autoincrement, varhcar samd, dar cele doua se leaga prin idinvoice


Din cate am inteles iti afisezi facturile(invoice.php) si cand dai click pe una vrei sa iti afiseze incarcarile(invoiceload.php).

pai atunci din invoice load o sa ai o gramada de linkuri spre invoceload.php?idinvoice=X

ma rog X se schimba, si in a doua cand vrei sa afisezi dai un :
select name,price from invoice_load where idinvoice=X


Cand stergi stergi dintrunul singur, adica prima oara intrebi si daca e de acord atunci:
delete from invoice where idinvoice=X
delete from invoiceload where idinvoice=X


Daca nu e ceea ce ceri atunci da un exemplu mai clar ca io sincer nu am inteles mare lucru din ce ai scris
Sus  
biban



Data înscrierii: 13/Apr/2003
Mesaje: 204
Locație: Giurgiu

Trimis: Joi Sep 04, 2003 6:34 pm    Titlul subiectului:  

Sincer nici eu nu prea am intzeles. Dar hai sa vedem daca o nimeresc:

tu shtii sa transmitzi la o alta pagina creind un link de forma
<a href='yourdomain/yourpage.php?key=.....
shi vrei sa afli cum faci daca vrei sa foloseshti submit??!!?

Daca sunt cat de cat pe aproape inseamna ca in form-ul care are butonul submit trebuie sa bagi ceva de genul
<input type='hidden' name='key' values='valoarea_ta_care_tre_transmisa'....
Daca dai la method="GET" o sa observi ca valoarea key itzi este transmisa impreuna cu celelalte variabile, fara sa fie nevoie de textbox sau altceva.

Daca sunt prea departe de ce ai intrebat tu, fii mai explicit!
Sus  
computershop



Data înscrierii: 01/Sep/2003
Mesaje: 19

Trimis: Vin Sep 05, 2003 11:50 am    Titlul subiectului: Nu prea e asa !  

Scuze pentru alambicare !
Am doua tabele facta si factb. In primul am facta_id autoincrement.Adaug date printr-un form facta_form mai putin facta_id care se actualizeaza dupa executarea insert-ului. Executarea submit-ului are ca rezultat insertul in tabelul facta.Ce imi doresc este sa pot afisa datele pe care abia le-am introdus pe o noua pagina (inclusiv facta_id). Daca poate cineva sa ma ajute...dau o bere la AquaMagic !
Sus  
iugin



Data înscrierii: 22/Mai/2003
Mesaje: 82
Locație: Oradea

Trimis: Vin Sep 05, 2003 1:41 pm    Titlul subiectului: Re: Nu prea e asa !  

computershop a scris: Scuze pentru alambicare !
Am doua tabele facta si factb. In primul am facta_id autoincrement.Adaug date printr-un form facta_form mai putin facta_id care se actualizeaza dupa executarea insert-ului. Executarea submit-ului are ca rezultat insertul in tabelul facta.Ce imi doresc este sa pot afisa datele pe care abia le-am introdus pe o noua pagina (inclusiv facta_id). Daca poate cineva sa ma ajute...dau o bere la AquaMagic !


OK, am inteles ca stiii sa introduci, dar problema ta e ca nu stii sa afisezi ce ai introdus deja.

Cand introduci in baza de date ai codul insert.php sa spunem, aici stii idul facturii, dupa ce ai introdus faci redirect la alta pagina unde o sa vrei sa vezi ce ai introdus, atunci apelezi view.php?fact_id=X si in view.php

o sa ai :

select * from factb where fact_id=<i>$fact_id </i>

unde $fact_id il iei de udeva, depinde de cum tie setat serverul samd

Daca nu e ceea ce vrei da un mail cu codul si dumpul de la baza de date si explica fiecare fila cam ce ai vrea sa fie, si incerc in weekend sa ma uit. Vezi sa nu lasi vreo parola prin scripturi :)



Ups, tu cred ca vrei sa spui ca nu stii idul care tocmai lai inserat. Incearca sa dai un :

select max(fact_id) from facta where ....................


unde ..... is toate datele care le-ai bagat. De ce max, sa nu ai dubluri si atunci teoretic ceea care ai bagato tu e ultima. Nu stiu ca mysql stie sa returneze idul care tocmai lai inserat.
Sus  
computershop



Data înscrierii: 01/Sep/2003
Mesaje: 19

Trimis: Vin Sep 05, 2003 4:55 pm    Titlul subiectului: Re: Nu prea e asa !  

iugin a scris: Cand introduci in baza de date ai codul insert.php sa spunem, aici stii idul facturii, dupa ce ai introdus faci redirect la alta pagina unde o sa vrei sa vezi ce ai introdus, atunci apelezi view.php?fact_id=X si in view.php

o sa ai :

select * from factb where fact_id=<i>$fact_id </i>

unde $fact_id il iei de udeva, depinde de cum tie setat serverul samd

Daca nu e ceea ce vrei da un mail cu codul si dumpul de la baza de date si explica fiecare fila cam ce ai vrea sa fie, si incerc in weekend sa ma uit. Vezi sa nu lasi vreo parola prin scripturi :)



Ups, tu cred ca vrei sa spui ca nu stii idul care tocmai lai inserat. Incearca sa dai un :

select max(fact_id) from facta where ....................


unde ..... is toate datele care le-ai bagat. De ce max, sa nu ai dubluri si atunci teoretic ceea care ai bagato tu e ultima. Nu stiu ca mysql stie sa returneze idul care tocmai lai inserat.


NUUUUU ! ADICA DA ! NU STIU ID-UL DECIT DUPA CE SE EXECUTA INSERT-UL ADICA DUPA CE DAU SUBMIT-UL. DE FAPT INTREBAREA DEVINE CUM FAC SA AM UN RECORDSET FORMAT NUMAI DIN ULIMA INREGISTRARE ADAUGATA IN TABEL[/b]
Sus  
biban



Data înscrierii: 13/Apr/2003
Mesaje: 204
Locație: Giurgiu

Trimis: Vin Sep 05, 2003 10:55 pm    Titlul subiectului:  

Sa vedem daca am intzeles eu...
Vrei sa obtzii id-ul ultimei inregistrari introduse de tine? (pentru a fi afishat)
Daca asta vrei solutzia ar fi cea de mai inainte cu "max" dar e problema pentru ca daca introduc mai multzi de la statzii diferite ce faci? nu mai e al tau ultimul.
Sustzin shi eu ce zice iugin. da-i baiatului sa se uite la cod ca poate nu e nevoie sa foloseshti in baza de date.
Itzi dau un exemplu:
sa zicem ca insert.php face introducerea informatziei in baza de date
daca datele au fost introduse cu succes atunci tot in insert.php fa un
select * from tabelul_tau where datele_sa coincida_cu_cele_introduse_de_tine
daca s-a intors DOAR o inregistrare e aia a ta, iei id-ul shi faci ce vrea mushchii tai cu el :wink:
Daca tzi se pare interesant ce tzi-am scris shi nu dibuieshti codul scrie shi tzi-l dau eu.
Sus  
computershop



Data înscrierii: 01/Sep/2003
Mesaje: 19

Trimis: Sâm Sep 13, 2003 11:31 am    Titlul subiectului: Am rezolvat-o !  

... si stiti cum ??? Am gasit rezolvarea in help-ul php (super help)

$query_rec="SELECT max(achiza.ACHIZA_ID) AS max_id FROM achiza ORDER BY ACHIZA_ID";
$rec = mysql_query($query_rec, $computershop) or die(mysql_error());
$row_rec = mysql_fetch_array($rec);
$max_achiza=$row_rec["max_id"];
echo $max_achiza; // -> ultima inregistrare din achiza

// Multumesc tuturor pentru ajutor si indicii
// Leo de Constanta
Sus  
biban



Data înscrierii: 13/Apr/2003
Mesaje: 204
Locație: Giurgiu

Trimis: Dum Sep 14, 2003 6:40 pm    Titlul subiectului:  

Asta e solutzia sugerata de iugin dar are o slabiciune, dupa cum am mai zis: ce faci daca simultan cu tine mai introduce cineva date in baza de date? Nu exista riscul ca maxul ala pe care il folosesti sa-tzi intoarca inregistrarea introdusa de celalalt??
Itzi recomand sa foloseshti in loc de SELECT max(achiza.ACHIZA_ID) AS max_id FROM achiza ORDER BY ACHIZA_ID

select * from tabelul_tau where datele_sa coincida_cu_cele_introduse_de_tine

Sau aprofundeaza controlul tranzactziilor in SQL (LOCK TABLE) - cu sa blochezi accesul la un tabel pana ternini tu tranzactia, astfel "celalt" nu poate introduce nimic in baza de date pana nu-i permitzi tu (pana nu termini tu de introdus) si vice versa
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  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> Cod PHP
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community