waarden aanvullen/verwijderen uit tabel zonder de veldnamen te weten.
Nu wil ik leden via checkboxen wat vrienden uit de lijst laten selecteren (max. 25)
Ik doe dat via een onchange.
Dus elke keer dat er wat wijzigt (true of false) wordt de gewijzige data
naar de server gestuurd.
In de gebruikte tabel staan uiteraard de ID's van degene die aan het selecteren zijn.
In het ene geval moet de waarde (id) worden aangevuld in de bestaande rij.
En wordt de vriend verwijderd dan moet die ID in de rij verwijderd worden.
Is het mogelijk om zonder het veld te kennen waarden aan te vullen?
En eventueel gaten weer op te vullen met nieuwe waarden?
Ik neem aan dat ik in een row op een waarde kan zoeken.
Bestaat deze niet dan moet het aangevuld worden.
Bestaat het wel dan moet het verwijderd worden. (en ontstaat er een leeg veld).
Mijn kop zit zo vol met datatables, dat ik voor PHP even meeste kwijt ben, haha
Bedankt vast voor het meedenken.
id lid - a - b - c - d - e -.........
--------------------------------------
35 - 2 - 18 - 1 - 17 - 5 -........
5 - 5 - 12 - 4 - 18 - 23 -.........
Uhm, dit heb je in 1 tabel zitten met 25+ kolommen? Waarom maak je hier geen koppeltabel van? Lijkt mij stukken makkelijker.
Ik ben niet zo op de hoogte van koppelingen.
Maar ga eens uit van een record met 1000 rows waar men uit kan kiezen voor vrienden.
Aantal leden kan ook minder of groter worden.
Niet iedereen maakt een vriendentabel aan.
Zat zelf in al mijn onwetendheid te denken aan het doorzoeken van de row van het lid.
Eerst kijken of het nummer (id) voorkomt in de row.
Daarna doorzoeken op lege plekken.
En dan plaatsen, maar heb geen idee of dit mogelijk is.
De nieuwe tabel wordt dan gevormd door de gegevens van die vrienden ID's.
Bedankt voor het meedenken...
Het voordeel van een koppeltabel is ook dat als je in 1x 30 vrienden toevoegt en 10 verwijdert dat je gewoon de entries voor die user gewoon helemaal leeg kan gooien en opnieuw kan vullen met de resterende vrienden. Je hoeft dan helemaal geen ingewikkelde constructies te gebruiken waarbij je controleert of X al vriend is van Y. Je gooit gewoon alles voor die gebruiker leeg en voegt alles weer toe. Simpel.
Ik begrijp dat ik de id (primary key) van alle leden uit de basisgegevens in de koppeltabel kan zetten.
Maar de andere kant van de koppeltabel begrijp ik niet.
Dat moet gekoppeld worden met de primary keys van een andere tabel.
Maar die andere tabel is in dit geval ook weer de tabel met de basisgegevens.
Want de gegevens van de andere leden (vrienden) staan in de tabel met basisgegevens.
De basisgegevens van die vrienden worden uiteindelijk weer uitgedraaid naast de algemene tabel.
Hier een linkje naar de tabellen waar ik mee bezig ben.
Ik werk met een onchange op de checkbox. De status met de id lees je nog af via een alert.
Het is de bedoeling dat er per checkbox info naar een php gaat voor verdere verwerking.
Heeft te maken dat je anders met paging (opnieuw laden via server) je checkboxstatus kwijt bent.
http://www.pctraverse.nl/DataTables-1.10.11/examples/server_side/simpleZ.html
Gewijzigd op 01/06/2016 23:32:25 door Hans De Ridder
Waarom doe je het niet gewoon als volgt:
- vink je iemand aan, voeg je iemand toe aan de koppeltabel
- vind je iemand uit, verwijder je iemand uit de koppeltabel
Je moet dan wel weten welk lid je zelf bent (zeg: id 2).
Als je dan bijvoorbeeld een vriendentabel hebt (geen idee wat deze verder voor doel heeft), die er bijvoorbeeld zo uit ziet:
vriendentabel
lid_id (persoon A)
vriend_lid_id (heeft persoon B als vriend gemarkeerd)
Stel je klikt vriend 11 aan: voeg record 2, 11 toe (2: dat ben jij, 11: de vriend).
Stel je klikt vriend 11 uit: verwijder record met combinatie 2, 11.
Als je deze selectie onthoudt zul je op het moment dat je de pagina/tabel met deze gegevens laadt de checkboxen initieel goed zetten uiteraard...
Mijn probleem is net als jij aangeeft wat het doel is van de vriendentabel
Die is er n.l. niet. Tenzij je de tabel bedoelt die de max. 25 id's bevat van de vrienden van de user
Ik hoef alleen te verwijzen naar een aantal leden in dezelfde tabel als de user.
Mijn idee was om die id's op te slaan in een nieuwe tabel.
Zodat ik op grond van die id's de basisinfo weer uit de tabel kan toveren voor de user.
Maar misschien begrijp ik je verkeerd.
Misschien kun je een heel klein concept scriptje tonen.
Ga er dan vanuit dat de waardes zijn 'true/false' en id_vriend.
Bedabkt vast....
Gewijzigd op 02/06/2016 21:31:12 door Hans De Ridder
Dit is een een-op-veel relatie (een gebruiker kan een of meer andere gebruikers als vriend hebben).
Het lijkt mij (in beginsel) geen goed ontwerpprincipe (er zijn natuurlijk altijd uitzonderingen) om al deze vrienden als aparte kolommen in de gebruikerstabel op te nemen. Je noemt zelf ook al een praktisch bezwaar, als je iemand wilt toevoegen of verwijderen moet je een vrij plekje zoeken en/of kijken of iemand al voorkomt omdat dit niet op voorhand vaststaat. Er zou dus al ergens een relatie tussen gebruiker X en Y kunnen zijn.
Als je dit in een koppeltabel vastlegt komt zo'n relatie 0 of 1 keer voor, maar nooit vaker. Door het aanbrengen van constraints op zo'n koppeltabel zou je dat nog verder kunnen afdwingen (buiten een eventuele programmatische beperking die dit eventueel controleert).
EDIT: is je database relationeel opgezet? Hiermee bedoel ik: is de engine van de tabellen InnoDB (aanname: MySQL database)? Dit stelt je namelijk in staat om foreign keys en dergelijke aan te leggen, en ook om constraints toe te passen op de invoer (zoals het uniek zijn van een combinatie van twee gebruikers).
Gewijzigd op 02/06/2016 21:42:23 door Thomas van den Heuvel
Ik moet echt studeren hiervoor, haha.
Heb het wel eens geprobeerd met foreignkeys, enz.
Maar bleek niet nodig voor mijn toepassing.
Weekend lekker weg.
Na het weekend laat ik weer wat van me horen.
Bedankt voor het meedenken
Toevoeging op 02/06/2016 22:42:32:
id naam leeftijd woonplaats functie berichten geboren
1 Anouk 20 Jamaica Admin 1203 1985-01-05
2 Leejoo 30 Londen Admin 152 1974-07-28
3 Hans 18 Parijs Moderato. 627 1984-11-05
4 Feppie 18 New York Moderato. 435. 1983-09-24
5 Jim 25 Oegstgeest. Moderato. 565 1980-02-01
id 1 Anouk heeft als vrienden id 3 Hans, id 5 Jim
id 4 Feppie heeft als vrienden id 2 Leejoo, id 5 Jim, id 1 Anouk
id 3 Hans heeft als vrienden id 1 Anouk, id 2 Leejoo, id 4 Feppie
Enz......
Hans De Ridder op 02/06/2016 22:16:14:
Toevoeging op 02/06/2016 22:42:32:
id naam leeftijd woonplaats functie berichten geboren
1 Anouk 20 Jamaica Admin 1203 1985-01-05
2 Leejoo 30 Londen Admin 152 1974-07-28
3 Hans 18 Parijs Moderato. 627 1984-11-05
4 Feppie 18 New York Moderato. 435. 1983-09-24
5 Jim 25 Oegstgeest. Moderato. 565 1980-02-01
id 1 Anouk heeft als vrienden id 3 Hans, id 5 Jim
id 4 Feppie heeft als vrienden id 2 Leejoo, id 5 Jim, id 1 Anouk
id 3 Hans heeft als vrienden id 1 Anouk, id 2 Leejoo, id 4 Feppie
Enz......
Toevoeging op 02/06/2016 22:42:32:
id naam leeftijd woonplaats functie berichten geboren
1 Anouk 20 Jamaica Admin 1203 1985-01-05
2 Leejoo 30 Londen Admin 152 1974-07-28
3 Hans 18 Parijs Moderato. 627 1984-11-05
4 Feppie 18 New York Moderato. 435. 1983-09-24
5 Jim 25 Oegstgeest. Moderato. 565 1980-02-01
id 1 Anouk heeft als vrienden id 3 Hans, id 5 Jim
id 4 Feppie heeft als vrienden id 2 Leejoo, id 5 Jim, id 1 Anouk
id 3 Hans heeft als vrienden id 1 Anouk, id 2 Leejoo, id 4 Feppie
Enz......
In jouw voorbeeld is Feppie wel bevriend met Anouk, maar Anouk niet met Feppie. Wat is hier de gedachten achter? Ik zou bij vrienden verwachten dat dat ´wederzijds´ is.
Gewijzigd op 03/06/2016 08:28:20 door Obelix Idefix
Obelix en Idefix op 03/06/2016 08:28:05:
Ik zou bij vrienden verwachten dat dat ´wederzijds´ is.
Volgens mij is dat zelfs in de echte (grote boze buiten)wereld niet zo ;).
Zelfde muziekkeuze, wonend in dezelfde regio. Misschien als artiest in bepaalde studio's in je omgeving. Of muziekwinkel, uitgaansgelegenheid.
Zodat je niet elke keer weer moet gaan zoeken. Noem het maar een volglijst, als vriend te ver gaat, haha
Dat hoeft inderdaad niet wederzijds te zijn.
Ben uiteraard geinteresseerd in de mogelijkheden die er zijn om te koppelen.
Ik heb al een optie in googlemaps waar de leden op interesse zowel in de regio kunnen kijken als in totaalbeeld.
Gaat mij er puur om een nieuwe tabel uit te spugen met uitsluitend de aangevinkte leden.
Als alternatief kan ook nog gedacht worden om checkboxen van de aangevinkten uit te draaien in de gewone tabel als 'checked'.
Dan kan via een sort op de checkboxen ook alles bovenaan komen.
Bij paging is dat volgens mij geen probleem omdat de tabellen dan toch weer opnieuw opgehaald worden uit de database.
Eerst de keuze maken uit de mogelijkheden.
En die mogelijkheden zijn me nog niet helemaal duidelijk.
Fijn weekend...
Ik ga toch eerst uit van een lijst die wordt aangemaakt met volgers (vrienden geeft wat verwarring)
Dus a,b,c,d,e zijn de id's in de 'volgertabel':
Id lid - a - b - c - d - e
6 5 - 8 - 3 - 9 - 4
8 4 - 2 - 7 - 9 - 1
De gegevens van die volgers staan in tabel 'basis'.
Id - voornaam - achternaam - postcode
1 - jan. - riet. - 8435AB
2. - piet - hooi. - 2367CS
3 - ria. - gras. - 7812EE
4. - peter. - haver. - 4563AA
Enz,...
Ik moet nu een query maken die de volgers door een lid koppelt aan hun gegevens.
En die gegevens worden dan verwerkt in een record die in tabel wordt getoond.
Ieder lid kan zo een eigen volgerlijst maken.
Ik heb nog steeds geen idee hoe ik dat voor elkaar kan krijgen.
Als iemand een voorbeeldscript heeft, heel graag.