Chirurgia spinală minim invazivă
Chirurgia spinală minim invazivă oferă pacienților oportunitatea unui tratament eficient, permițându-le o recuperare ultra rapidă și nu în ultimul rând minimizând leziunile induse chirurgical. Echipa noastră utilizează un spectru larg de tehnici minim invazive, din care enumerăm câteva: endoscopia cu variantele ei (transnazală, transtoracică, transmusculară, etc), microscopul operator, abordurile trans tubulare și nu în ultimul rând infiltrațiile la toate nivelurile coloanei vertebrale. www.neurohope.ro |
delete from union tables
Last Updated: Jan 17 2017 02:25, Started by
colombo2003
, Jan 16 2017 01:44
·
0
#1
Posted 16 January 2017 - 01:44
Am trei tabele (una de comentarii, una de recenzii si una de poze), care au acelasi numar de coloane si aceeasi denumire.
Am facut un select in union de cele trei tabele, pentru ca am avut nevoie sa afisez toate comentariile, recenziile si pozele unui utilizator (cu id cunoscut). La fiecare linie afisata din acest union, am si un buton de delete (pentru ca userul sa isi poata sterge propria postare). Fiecare postare este identificata cu data si ora. Problema este ca nu stiu cum sa fac ca sa identific carei tabele ii apartine acea linie (daca este in tabela de comentarii, de recenzii sau de poze) ca sa pot executa delete-ul. Cam care ar trebui sa fie abordarea? Multumesc. |
#2
Posted 16 January 2017 - 06:08
adaugi o coloana suplimentara in query, pe care o completezi (manual) cu valori diferite in functie de tabel
ceva de genul SELECT Id, Name, 1 as Source FROM Table1 UNION SELECT Id, Name, 2 as Source FROM Table2 UNION SELECT Id, Name, 3 as Source FROM Table3 |
#3
Posted 16 January 2017 - 15:03
Geniala solutie! Simpla si eficienta.
... ... if (mysqli_num_rows($result) > 0) { while($row = mysqli_fetch_assoc($result)) { ... ... echo "..... (aici afiseze ce am de afisat plus butonul de delete care arata cam asa: <form method='post' action='numepagina.php'> <button type='submit' class='delete' name='delete' value='delete' title='Sterge comenariul'>Delete</button></form>"; if (isset($_POST['delete'])) { echo $row["Source"]; } ... ... Pentru inceput, pana sa purced la operatiunea efectiva de delete, ca sa vad ca functioneaza bine, am zis sa fac un test pentru butonul delete si sa vad ca imi afiseaza correct valoarea lui Source. Zis si facut, face, DAR, imi arata pentru TOATE comentariile. Eu ma asteptam (sau as vrea) sa imi arate doar pentru linia pe care sunt si am apasat butonul. Cum as putea sa fac asta? LE: Mi-a venit o idee: fac i=1, care se incrementeaza la fiecare comentariu afisat, si, in acelasi timp sa fie si parametru in butonul delete (ceva genul delete1, delete2 etc si doar cand apas pe deletex sa se intample ceva pentru linia aia). Sa vedem daca fuctioneaza... Edited by colombo2003, 16 January 2017 - 15:11. |
#4
Posted 16 January 2017 - 15:22
pui un camp tip hidden in form, iar pe onclick-il butoanelor pui o functie in care setezi acel camp si apoi dai submit manual.
|
#5
Posted 16 January 2017 - 15:55
N-a functionat ideea mea cu "i".
Pe de alta parte, am afisat si id-ul din tabela de unde vine, in combinatie cu valoaea lui Source; si vad ca se afiseaza bine (correct). @_Smiley_: prima parte (cu hidden) am priceput-o; sa zicem ca prin functie, i-as atribui valoarea (exact ca mai sus, sa stiu id-ul si tabela din care vine). N-am inteles partea cu submit manual... Aici m-ai pierdut. |
#6
Posted 16 January 2017 - 16:39
nu mai stiam cum se comporta un buton de submit daca-i modifici onclick-ul, am presupus ca nu mai face Submit si doar executa codul dat
dar pare-se ca poti pune o functie pe onclick care sa intoarca true, caz in care totul merge <input type="submit" value="submit" onclick="return action(id1, source1);" >Delete</button> function action(id, source) { //set id, source in hidden fields return true; } |
#7
Posted 16 January 2017 - 16:50
Nu a functionat. Am sters toate comentariile, recenziile si pozele dintr-un foc, cu un singur click...!!!
... ... //tot in bucla while am si asta if (isset($_POST['delete'])) { if ($row["Source"] == 3) { $querydlt = "delete from poze where id = $row[id]"; $dlt = mysqli_query($dbconfig, $querydlt); if ($dlt) { echo "poza stearsa!"; } else { echo "poza nestearsa!"; } } elseif ($row["Source"] == 2) { $querydlt = "delete from recenzii where id = $row[id]"; $dlt = mysqli_query($dbconfig, $querydlt); if ($dlt) { echo "recenzie stearsa!"; } else { echo "recenzie nestearsa!"; } } else { $querydlt = "delete from comments where id = $row[id]"; $dlt = mysqli_query($dbconfig, $querydlt); if ($dlt) { echo "comment sters!"; } else { echo "comment nesters!"; } } } ... ...Dar acea fct la onlick nu este js? Or eu am comenturile pe server... Mai sap, mai sap... |
#8
Posted 16 January 2017 - 17:05
codul tau pare ok, nu prea inteleg cum de a sters totul
functia data de mine este in javascript, ar trebui sa se execute in browser la apasarea unuia din butoanele Delete pune codul php cu care afisezi acele butoane |
#9
Posted 16 January 2017 - 17:11
<?php require('login/dbconfig.php'); $login_session = $_SESSION['login_user']; $sqluser = "select id from users where username = '$login_session'"; $res = mysqli_query($dbconfig, $sqluser); $res1 = mysqli_fetch_array($res); $sql = "select id, data, comentariu, id_resto, nota, 1 as Source from comments union all select id, data, comentariu, id_resto, nota, 2 as Source from recenzii union all select id, data, poza, id_resto, nota, 3 as Source from poze where id_user = '$res1[0]' order by data DESC"; $result = mysqli_query($dbconfig, $sql); if (mysqli_num_rows($result) > 0) { while($row = mysqli_fetch_assoc($result)) { echo "<div class='commentshow'>" . $row["data"]. " - Rating: " . $row["nota"]. "<form method='post' action='testdeletecomm.php'><button type='submit' class='delete' name='delete' value='delete' title='Sterge comenariul'>Delete</button></form><hr>" . $row["comentariu"]. "</div>"; if (isset($_POST['delete'])) { //echo $row['Source']. "-" . $row["id"]; if ($row["Source"] == 3) { $querydlt = "delete from poze where id = $row[id]"; $dlt = mysqli_query($dbconfig, $querydlt); if ($dlt) { echo "poza stearsa!"; } else { echo "poza nestearsa!"; } } elseif ($row["Source"] == 2) { $querydlt = "delete from recenzii where id = $row[id]"; $dlt = mysqli_query($dbconfig, $querydlt); if ($dlt) { echo "recenzie stearsa!"; } else { echo "recenzie nestearsa!"; } } else { $querydlt = "delete from comments where id = $row[id]"; $dlt = mysqli_query($dbconfig, $querydlt); if ($dlt) { echo "comment sters!"; } else { echo "comment nesters!"; } } } } } else { echo "Nu ai scris nici un comentariu."; } mysqli_close($dbconfig); ?> |
#10
Posted 16 January 2017 - 19:20
cred ca trebuie sa mai inveti un pic despre progrmarea in php si folosirea bazelor de date
codul tau e complet amestecat si ar dura o gramada sa explic ce nu-i in regula. uite un tutorial, incearca sa-l intelegi si-ti va fi de mare folos: http://www.killersit...ds-with-mysqli/ |
|
#11
Posted 17 January 2017 - 02:25
Am reusit!
Multumesc pentru ajutor! PS. Se poate inchide! |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users