Probleem met een kollom te verwijderen uit te database.
Door
jitse t
op 07-05-2016 14:17
gewijzigd op 07-05-2016 14:18
1.385 views
Hoi,
Ik ben bezig met een sociaal netwerk site.
En ik heb een probleem.
De bedoeling is dat als je een vriendschapsverzoek stuurt uit het tabel "vriendschapsverzoeken" Het verzoek verwijderd wordt.
Het probleem is als je op verwijderen klikt verwijdert hij alle verzoeken van die gebruiker.
Wat ik eigenlijk wil is dat alleen de kollom wordt verwijderd die geaccepteert is.
Hier is de code:
$sqlvr = "SELECT * FROM vriendschaps_verzoeken WHERE aan='".$_SESSION['gebruikersnaam']."'";
$queryvr = mysqli_query($conn,$sqlvr);
$vriendout = mysqli_fetch_assoc($queryvr);
while($vriendout = mysqli_fetch_assoc($queryvr)){
if(mysqli_num_rows($queryvr) == 0){
echo 'Je hebt geen vriendschapsverzoeken!';
}else {
if(isset($_POST['accepteren'])){
$waar = $vriendout['id'];
$gebruikersnaam2 = $_SESSION['gebruikersnaam'];
$updatesql = "UPDATE vrienden SET status='1' WHERE gebruikersnaam1='".$_SESSION['gebruikersnaam']."'";
$querysql = mysqli_query($conn,$updatesql);
$delsql = "DELETE FROM vriendschaps_verzoeken WHERE id='".$vriendout['id']."'";
$delquery = mysqli_query($conn,$delsql);
Heeft je user tabel geen kolom id of user_id?
En Hetzelfde geldt eigenlijk voor de tabel vrienden en vriendschaps_verzoeken. In deze tabel zouden ook userID's moeten staan. en wanneer noodzakelijk een eigen uniek id veld.
Wil je hierin verder geholpen worden dan zou ik even alle tabellen met al hun kolommen vermelden zodat we kunnen zien hoe een en ander werkt.
Dan zou ik het zo gaan regelen dat je altijd over het id van een gebruiker/vriend(schapsverzoek) beschikt en dan krijg je dus iets als
UPDATE vrienden SET status='1' WHERE user_id=123
Een alternatieve oplossing voor je huidige systeem zou kunnen zijn:
UPDATE vrienden SET status='1' WHERE gebruikersnaam1="Piet" AND gebruikersnaam2="Henk"
Maar erg professioneel is het niet.
Toevoeging op 07/05/2016 15:25:19:
Een goede database indeling zou kunnen zijn:
tabel users:
-user_id [integer, primary, autoincrement]
-naam [varchar]
-email [varchar]
-created (dit is de datum en tijd van aanmelding) [datetime]
-wachtwoord [varchar]
...
tabel vrienden:
-user1_id [integer, indexed]
-user2_id [integer, indexed]
-created (dit is de datum en tijd dat ze vrienden geworden zijn)
tabel vriendschapsverzoeken:
-user1_id [integer, indexed]
-user2_id [integer, indexed]
-created (dit is de datum en tijd van het verzoek) [datetime]
Heeft je user tabel geen kolom id of user_id?
En Hetzelfde geldt eigenlijk voor de tabel vrienden en vriendschaps_verzoeken. In deze tabel zouden ook userID's moeten staan. en wanneer noodzakelijk een eigen uniek id veld.
Wil je hierin verder geholpen worden dan zou ik even alle tabellen met al hun kolommen vermelden zodat we kunnen zien hoe een en ander werkt.
Dan zou ik het zo gaan regelen dat je altijd over het id van een gebruiker/vriend(schapsverzoek) beschikt en dan krijg je dus iets als
UPDATE vrienden SET status='1' WHERE user_id=123
Een alternatieve oplossing voor je huidige systeem zou kunnen zijn:
UPDATE vrienden SET status='1' WHERE gebruikersnaam1="Piet" AND gebruikersnaam2="Henk"
Maar erg professioneel is het niet.
Toevoeging op 07/05/2016 15:25:19:
Een goede database indeling zou kunnen zijn:
tabel users:
-user_id [integer, primary, autoincrement]
-naam [varchar]
-email [varchar]
-created (dit is de datum en tijd van aanmelding) [datetime]
-wachtwoord [varchar]
...
tabel vrienden:
-user1_id [integer, indexed]
-user2_id [integer, indexed]
-created (dit is de datum en tijd dat ze vrienden geworden zijn)
tabel vriendschapsverzoeken:
-user1_id [integer, indexed]
-user2_id [integer, indexed]
-created (dit is de datum en tijd van het verzoek) [datetime]