ID`s ophalen en deze vergelijken met de ID`s uit ander database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Arno van Zanten

Arno van Zanten

07/04/2023 15:38:56
Quote Anchor link
Ik heb per gebruiker bepaalde opties, deze opties staan in de database in een andere tabel.
Nu per gebruiker worden deze opgeslagen in een andere tabel, enkel met de Optie_ID.

Dus even een korte samen vating, ik ben weer met iets te moeilijks bezig.
Kan wel weer op YT gaan zoeken etc... maar daar zal ik weer hele oude codes tegen komen.
Volgens mij moet ik nu een functie gaan aanmaken, maar dat weet ik dus ook even niet.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
                $sql
= 'SELECT * FROM UserOptions WHERE User_ID = '.$UserID.'';
        $result = mysqli_query($connect, $sql);
        $rows = mysqli_num_rows($result);
            if($rows == 0) {
                echo "<div class='view-grid'>".$rows." = No Options found by user!<br /></div>";
            exit;
            }
else{
                $optionid = mysqli_fetch_all($result, MYSQLI_ASSOC);
                
                echo "<div class='view-grid'>Options that the user provide</div>";
                $Uoptions = mysqli_fetch_all($result, MYSQLI_ASSOC);
                foreach($Uoptions as $options) {
                    $services[] = $options['Options_ID'];
                }
            }

?>

Dit is wat ik nu heb, maar hij moet de ID`s vergelijken met de ID`s uit een andere tabel.
Ik denk dat ik met deze code verkeerd bezig ben en dit naar een functie moet omzetten.
Ik heb een tabel : Options waarin alle opties instaan waar de user uit kan kiezen, deze worden dan opgeslagen in UserOptions, maar dan enkel de Option_ID en User_ID, dus nu moet ik denk ik er eerst een functie van maken of kan ik het op een betere manier doen?
 
PHP hulp

PHP hulp

21/11/2024 20:24:53
 
- Ariën  -
Beheerder

- Ariën -

07/04/2023 15:50:21
Quote Anchor link
Heb je delen (geen data) uit je code die je herhaalt? Dan is een functie interessant. En anders is het prima.

Ik zou wel je exit; weghalen. Ik schop ook nooit iemand de deur uit als ze geen cadeautjes bij zich hebben ;-).
Lijn 9 is ook zinloos.
Gewijzigd op 07/04/2023 15:54:34 door - Ariën -
 
Arno van Zanten

Arno van Zanten

07/04/2023 15:55:14
Quote Anchor link
lol, Ja in principe herhaalt de code zich grotendeels wel ja
 
- Ariën  -
Beheerder

- Ariën -

07/04/2023 16:00:51
Quote Anchor link
Met welke reden in gedachte? Dit lijkt mij een script die zich een keer uitvoert per aanvraag. Want waar komt $UserID vandaan?
Gewijzigd op 07/04/2023 16:06:04 door - Ariën -
 
Arno van Zanten

Arno van Zanten

07/04/2023 16:10:57
Quote Anchor link
uit de $_GET
 
- Ariën  -
Beheerder

- Ariën -

07/04/2023 16:15:51
Quote Anchor link
Dus herhaalt het zich niet, omdat het om één specifieke user gaat.

PS: Denk aan SQL-injection bij $_GET!!
 
Arno van Zanten

Arno van Zanten

07/04/2023 16:38:54
Quote Anchor link
Ja ik zal er vanavond of anders morgen naar kijken, want ik moet nu ineens weg voor werk.
Alvast bedankt voor een paar goede tips.
 
Arno van Zanten

Arno van Zanten

09/04/2023 17:18:27
Quote Anchor link
Ik heb eens zitten kijken op internet en ik kwam de optie inner join tegen, zou dit de oplossing voor mijn vraag zijn?

Toevoeging op 09/04/2023 17:57:44:

Ik heb een database naam : Vakantie
Daarin heb ik dus een tabel options, met deze velden
|ID|Option|Term|
De andere tabel is UserOptions, met deze velden
|ID|Options_ID|User_ID

Nu moet dus gekeken worden per gebruiker, welke Options zij hebben, dus ik zoeken hoe ik dit kon doen, kwam ik INNER JOIN tegen op internet. Is dit de oplossing en zo ja, hoe pass ik dit goed toe?


Toevoeging op 09/04/2023 18:41:34:

ik heb nu dit in de database toegepast, maar als ik de LIMIT weg laat, haat hij alles op, ook waar geen user_id bij staat.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
Select UserOptions.User_ID FROM UserOptions INNER JOIN Options ON Options.ID WHERE UserOptions.User_ID = 3;
?>


Toevoeging op 09/04/2023 19:04:41:

Ik heb de code en werkt.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$sql
= 'SELECT * FROM UserOptions WHERE User_ID = '.$UserID.'';
        $result = mysqli_query($connect, $sql);
        $rows = mysqli_num_rows($result);
            if($rows == 0) {

                echo "<div class='view-grid'>".$rows." = No Options found by user!<br /></div>";

            }
else{

                echo "<div class='view-grid'>Options that the user provide</div>";
                $MySql = 'Select UserOptions.Options_ID, Options.Option FROM UserOptions INNER JOIN Options ON Options.ID WHERE Options.ID = UserOptions.Options_ID;';
                $myresult = mysqli_query($connect, $MySql);
                $uoptions = mysqli_fetch_all($myresult, MYSQLI_ASSOC);
                foreach($uoptions as $options) {

                    echo "<div>".$options['Option']."</div>";

                }
            }

?>
 
Ivo P

Ivo P

09/04/2023 21:58:31
Quote Anchor link
inner join kan wel, maar dan moet je hem goed schrijven

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
Select UserOptions.User_ID
 FROM UserOptions
INNER JOIN Options ON Options.ID = UserOptions.Option_ID
WHERE UserOptions.User_ID = 3;
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.