preg_match vraag
goede middag, ik ben bezig met een script die login namen bijhoud en als de naam al voorkomt de gebruiker niet nogmaal op de link kan drukken.
alleen nu wil ik ook gebruikers zich kunnen verwijderen als ze weer op een andere link drukken..
Dit is het script dat gebruikers juist toevoegt aan de lijst.
maar nu is mijn vraag hoe haal ik weer gebruikers van de lijst af?
alleen nu wil ik ook gebruikers zich kunnen verwijderen als ze weer op een andere link drukken..
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$loginnaam = $data->login;
if(empty($bb->like_account){
$newlist2 = preg_replace("/,{$loginnaam},/i",'',$newlist2);
$statsmentnt = "/,{$loginnaam},/i";
}else{
$statsmentnt = "/{$loginnaam},/i";
$newlist2 = preg_replace("/{$loginnaam},/i",'',$newlist2);
}
$newlist2 .= "{$loginnaam},";
if(preg_match($statsmentnt,$bb->like_account)){
check_any_injection($newlist2);
check_current_status($data->login);
mysqli_query($dbcreat,
"UPDATE `berichten_muur` SET `like_account`='".mysqli_real_escape_string($dbcreat,$bb->like_account.$newlist2)."' WHERE `id`='".mysqli_real_escape_string($dbcreat,$_GET['nietlikes'])."'");
?>
$loginnaam = $data->login;
if(empty($bb->like_account){
$newlist2 = preg_replace("/,{$loginnaam},/i",'',$newlist2);
$statsmentnt = "/,{$loginnaam},/i";
}else{
$statsmentnt = "/{$loginnaam},/i";
$newlist2 = preg_replace("/{$loginnaam},/i",'',$newlist2);
}
$newlist2 .= "{$loginnaam},";
if(preg_match($statsmentnt,$bb->like_account)){
check_any_injection($newlist2);
check_current_status($data->login);
mysqli_query($dbcreat,
"UPDATE `berichten_muur` SET `like_account`='".mysqli_real_escape_string($dbcreat,$bb->like_account.$newlist2)."' WHERE `id`='".mysqli_real_escape_string($dbcreat,$_GET['nietlikes'])."'");
?>
Dit is het script dat gebruikers juist toevoegt aan de lijst.
maar nu is mijn vraag hoe haal ik weer gebruikers van de lijst af?
Gewijzigd op 12/03/2015 16:54:41 door Eeyk Vd noot
Uhm, als gebruikers zich moeten aanmelden om berichten te kunnen plaatsen kun je beter refereren aan gebruikers via een user id?
nee de table moet niet worden verwijderd alleen de naam.
ik kan wel id nummers gebruiken maar die moet ik ook weer uit text vak kunnen verwijderen.
Dit script onthoudt wie er op de link heeft gedrukt.
maar nu zoek ik een script die de naam ook weer kan verwijderen.
stel er staat :
Robert, patric, jolanda, kees.
ik wil doormiddel van een script.
Patric verwijderen uit de TEXT input in de database.
hoe doe ik dit?
ik kan wel id nummers gebruiken maar die moet ik ook weer uit text vak kunnen verwijderen.
Dit script onthoudt wie er op de link heeft gedrukt.
maar nu zoek ik een script die de naam ook weer kan verwijderen.
stel er staat :
Robert, patric, jolanda, kees.
ik wil doormiddel van een script.
Patric verwijderen uit de TEXT input in de database.
hoe doe ik dit?
Gewijzigd op 12/03/2015 17:12:05 door Eeyk Vd noot
EDIT: Je hebt dit ook als TEXT opgeslagen in je database... AYY. Pas dat eerst maar eens aan.
---
Dat kan toch ook op user-id?
Stel dat je op een gegeven moment besluit dat iemand zijn gebruikersnaam mag veranderen. Dan zit je met allerlei "hard coded" username waarde in verschillende tabellen. Daarnaast is dat waarschijnlijk knetter-inefficiënt omdat er geen relatie tussen de tabellen bestaat op grond van gebruikersnaam (althans, ik hoop dat je je database zo niet hebt opgezet).
Gebruik je uberhaupt foreign keys in je tabellen?
Anyhoo, als dit een soort van "gebruiker X liked zut van gebruiker Y" dan kun je dit prima oplossen met user id's.
Eigenlijk zou elke tabel gemakshalve een auto-increment id moeten hebben waar je aan kunt refereren, behalve misschien koppeltabellen ofzo...
---
Dat kan toch ook op user-id?
Stel dat je op een gegeven moment besluit dat iemand zijn gebruikersnaam mag veranderen. Dan zit je met allerlei "hard coded" username waarde in verschillende tabellen. Daarnaast is dat waarschijnlijk knetter-inefficiënt omdat er geen relatie tussen de tabellen bestaat op grond van gebruikersnaam (althans, ik hoop dat je je database zo niet hebt opgezet).
Gebruik je uberhaupt foreign keys in je tabellen?
Anyhoo, als dit een soort van "gebruiker X liked zut van gebruiker Y" dan kun je dit prima oplossen met user id's.
Eigenlijk zou elke tabel gemakshalve een auto-increment id moeten hebben waar je aan kunt refereren, behalve misschien koppeltabellen ofzo...
Gewijzigd op 12/03/2015 17:20:52 door Thomas van den Heuvel
Al mijn tabbelen werken met elkaar en hebben ook een Auto-increment id.
alleen ik vraag mij af hoe je via preg_match een stuk tekst kan verwijderen?

kijk hier een voorbeeld van hoe het er uit ziet.
alleen ik vraag mij af hoe je via preg_match een stuk tekst kan verwijderen?

kijk hier een voorbeeld van hoe het er uit ziet.
Gewijzigd op 12/03/2015 17:28:35 door Eeyk Vd noot
De aanpak die je hebt gehanteerd lijkt mij onhandig.
Het lijstje van namen wat nu in een tekstveld staat had je ook kunnen genereren aan de hand van een (koppel)tabel.
Het toevoegen/verwijderen van namen is dan een stuk eenvoudiger en eenduidiger. Ook de controle om te kijken of er al een "X likes Y" verband is is dan zeer simpel.
Ik zou je daarom ook aanmoedigen om je aanpak te herzien. Introduceer hiervoor een extra database-tabel.
Het lijstje van namen wat nu in een tekstveld staat had je ook kunnen genereren aan de hand van een (koppel)tabel.
Het toevoegen/verwijderen van namen is dan een stuk eenvoudiger en eenduidiger. Ook de controle om te kijken of er al een "X likes Y" verband is is dan zeer simpel.
Ik zou je daarom ook aanmoedigen om je aanpak te herzien. Introduceer hiervoor een extra database-tabel.
kun je een voorbeeld geven van wat je bedoeld.
want ik heb al een idee maar volgens mij doe ik dat allang.
? mvg
want ik heb al een idee maar volgens mij doe ik dat allang.
? mvg
Okay, even een stapje terug.
Als ik goed begrijp dump je nu namen in een tekstveld om aan te geven dat iemand iets (niet) leuk vindt. Vervolgens wil je een gebruikersnaam weer uit zo'n tekstveld peuteren om ... wat te doen? Kijken of een gebruikersnaam in de tekst voorkomt, een naam te verwijderen uit deze tekst?
Maar wat je daar in feite doet is het simuleren van een relatie tussen twee dingen. Daar is toch juist een database(tabel bij uitstek) voor (geschikt)?
Dus in plaats van zoiets:
users
1. henk
2. piet
3. klaas
4. hennie
berichten
id: 1
bericht: lala
van_user_id: 4
wordt_leuk_gevonden_door: henk, piet
wordt_niet_leuk_gevonden_door: klaas
Doe je zoiets:
users
1. henk
2. piet
3. klaas
4. hennie
berichten
id: 1
bericht: lala
van_user_id: 4
berichten_likes
bericht_id: 1
user_id: 1
liked: true
bericht_id: 1
user_id: 2
liked: true
bericht_id: 1
user_id: 3
liked: false
Veel simpeler dan dit kan ik het niet uitleggen.
Als ik goed begrijp dump je nu namen in een tekstveld om aan te geven dat iemand iets (niet) leuk vindt. Vervolgens wil je een gebruikersnaam weer uit zo'n tekstveld peuteren om ... wat te doen? Kijken of een gebruikersnaam in de tekst voorkomt, een naam te verwijderen uit deze tekst?
Maar wat je daar in feite doet is het simuleren van een relatie tussen twee dingen. Daar is toch juist een database(tabel bij uitstek) voor (geschikt)?
Dus in plaats van zoiets:
users
1. henk
2. piet
3. klaas
4. hennie
berichten
id: 1
bericht: lala
van_user_id: 4
wordt_leuk_gevonden_door: henk, piet
wordt_niet_leuk_gevonden_door: klaas
Doe je zoiets:
users
1. henk
2. piet
3. klaas
4. hennie
berichten
id: 1
bericht: lala
van_user_id: 4
berichten_likes
bericht_id: 1
user_id: 1
liked: true
bericht_id: 1
user_id: 2
liked: true
bericht_id: 1
user_id: 3
liked: false
Veel simpeler dan dit kan ik het niet uitleggen.
Bedankt! nu begrijp ik hem wel.
ja zo kan het ook.
Bedankt voor de uitgebreide uitleg.
mmmm en dan met mysqli_num_rows aangeven of iemand het al leukgevonde heeft ect.
ok thanks!
Toevoeging op 12/03/2015 18:47:59:
Edit : het werkt prima thanks!
ja zo kan het ook.
Bedankt voor de uitgebreide uitleg.
mmmm en dan met mysqli_num_rows aangeven of iemand het al leukgevonde heeft ect.
ok thanks!
Toevoeging op 12/03/2015 18:47:59:
Edit : het werkt prima thanks!
Gewijzigd op 12/03/2015 18:19:59 door Eeyk Vd noot




