Nu echt hulp nodig

Overzicht

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2 3

- Ariën  -
Beheerder

- Ariën -

22/04/2023 09:54:31
Anchor link
Dat maakt veel uit, want het wordt er niet overzichtelijker door, en de kans dat je zelf een bug creëert is ook groot.

Gebruik gewoon de namen zoals ze al heten:
$row['ID'], $row['Services'] etc.
Dus dat hernoemen is echt overbodig!

Verder werkte mijn query goed op de dump van Jan Koehoorn. Dus wat er bij jouw misgaat? Ik zie die query niet in je code?
 
PHP hulp

PHP hulp

21/11/2024 22:51:37
 
Arno van Zanten

Arno van Zanten

22/04/2023 10:00:49
Anchor link
Omdat ik zijn query niet snap en niet weet hoe ik die op mijn bestaande moet toepassen eerlijk gezegd.
Maar ik moet unique waardes eruit filteren. De out put met die code die ik heb, zoals in mijn post beschreven, doet eerst kijken bij de gebruiker op de eerste record en daarna op de volgende record van die gebruiker, waardoor ik dus een output krijg die ik niet wil.
De output moet niet dubbel uitzien.

OUTPUT NU (en nog steeds)

User_A - 1 - Emmer <= NOT Selected
User_A - 1 - Emmer <= NOT Selected
User_A - 2 - Schep <= Selected
User_A - 2 - Schep <= NOT Selected
User_A - 3 - Drank <= NOT Selected
User_A - 3 - Drank <= Selected
User_A - 4 - Eten <= NOT Selected
User_A - 4 - Eten <= NOT Selected

Moet eigenlijk worden:

User_A - 1 - Emmer <= NOT Selected
User_A - 2 - Schep <= Selected
User_A - 3 - Drank <= Selected
User_A - 4 - Eten <= NOT Selected

Dus hoe ik bepaalde waardes noem, maakt even niet uit, gaat nu puur om de uitvoering en de werking ervan.
En dat ik ze hernoem, is puur dat ik niet de hele waarde in hoeft te vullen zoals $row['selectie'] etc...
Daarom de hernoeming.
 
- Ariën  -
Beheerder

- Ariën -

22/04/2023 10:04:46
Anchor link
Met DISTINCT kan je dubbel waardes in je SQL output filteren.

Maar ik ik heb eigenlijk nog geen idee waar je allemaal mee bezig bent. Eigenlijk zou je je 'tafelblad' even schoon moeten vegen, en de structuur van Jan Koehoorn inladen, en daarop verder werken in een losse testomgeving.

Toevoeging op 22/04/2023 10:06:39:

Quote:
Dus hoe ik bepaalde waardes noem, maakt even niet uit, gaat nu puur om de uitvoering en de werking ervan.
En dat ik ze hernoem, is puur dat ik niet de hele waarde in hoeft te vullen zoals $row['selectie'] etc...
Daarom de hernoeming.

Als je je code met opzet onoverzichtelijk maakt, dan trek ik mij terug uit dit topic. Jij bent immers degene die geholpen wilt worden, dus maak het voor andere ook niet moeilijk. Laat de variabele gewoon wat het is! Hernoemen is nergens voor nodig
Gewijzigd op 22/04/2023 10:08:31 door - Ariën -
 
Arno van Zanten

Arno van Zanten

22/04/2023 10:14:43
Anchor link
@Arien,

Heel simpel, ik heb de code zelfs nu even versimpeld, getest en wel, werkt het zelfde als de code in de vorige post.
De waardes staan niet dubbel in de database, hij haat eerst de record op van VB : gebruiker 3, dan kijkt hij bij het ID waar de gebruiker bij staat (database tabel UserServices : ID, User_ID, Services_ID) zeg dat de gebruiker dus bij ID : 1 en bij Services_ID : 2 heeft staan en bij ID : 2 Services_ID : 3 heeft staan, dan gaat hij eerst de records ophalen bij ID 1 en spuugt die uit en daarna pas bij ID 2. Daardoor dat ik dus dubbele OUTPUT krijg.

Maar om je een beetje tegemoet te komen, post ik even de simpele code die ik in stukjes gehakt heb en dezelfde werking vertoont.
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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
        // The user database with all their info //
        $sql1        = 'SELECT * FROM Girls WHERE ID = '.$_SESSION['ID'].'';
        $result1    = mysqli_query($connect, $sql1);
        $data1         = mysqli_fetch_all($result1, MYSQLI_ASSOC);
        // Database where the user can select their services //
        $sql2        = 'SELECT * FROM Services';
        $result2    = mysqli_query($connect, $sql2);
        $data2         = mysqli_fetch_all($result2, MYSQLI_ASSOC);
        // Database where users has their selected services standing //
        $sql3        = 'SELECT * FROM UserServices WHERE User_ID = '.$_SESSION['ID'].'';
        $result3    = mysqli_query($connect, $sql3);
        $data3         = mysqli_fetch_all($result3, MYSQLI_ASSOC);
        
        foreach($data1 as $row1) {
            
            $konijn = $row1['ID'];
            $schaap = $row1['Nickname'];
            
            foreach($data2 as $row2) {
            
                $varken = $row2['ID'];
                $gans    = $row2['Services'];
                
                foreach($data3 as $row3) {
                
                    $koe     = $row3['ID'];
                    $kip     = $row3['Services_ID'];
                    $kuiken = $row3['User_ID'];
                    
                    if($kuiken == $konijn) {
                        
                        if($kip == $varken) {
                        
                            echo $schaap." - ".$gans." - ".$kip." <= Okay <br />";    
                        }
else {
                                                        echo $schaap." - ".$gans." - ".$kip." <= NOT Okay <br />";
                                                }
                    }
                }
            }
        }

?>
Gewijzigd op 22/04/2023 10:16:00 door Arno van Zanten
 
- Ariën  -
Beheerder

- Ariën -

22/04/2023 10:34:42
Anchor link
Ik ga niet in code wroeten met onlogische en onnodige benamingen. Dit is hét recept voor bugs die ontstaan bij denkfouten.

Wederom doe je niks met de tips. Je vaart je eigen koers. Om deze twee redenen gaat ook dit topic op slot.

Tip: Laat het rusten, vier weekend, pak het later op, en begin opnieuw met lezen, pak php.net en de site van mysql erbij en probeer te begrijpen wat alles doet.
Gewijzigd op 22/04/2023 10:36:19 door - Ariën -
 

Pagina: « vorige 1 2 3

 

Dit topic is gesloten.



Overzicht

 
 

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.