team pagina website met sql

Pagina: 1
Acties:
  • 1.057 views

  • Bielie993
  • Registratie: Maart 2010
  • Laatst online: 05-08 16:04
Goede avond,

Ik zit met een kleine vraag. Ben al heel de avond aant klooien, maar ik krijg het niet voor elkaar.

Ik heb deze query gemaakt:

http://puu.sh/koczq/6e8498f2da.png

code:
1
2
3
4
5
SELECT        dbo.games.gamename, dbo.teams.teamname, dbo.players.playername
FROM            dbo.games INNER JOIN
                         dbo.teams ON dbo.games.gameid = dbo.teams.gameid INNER JOIN
                         dbo.players ON dbo.teams.teamid = dbo.players.teamid
WHERE        (dbo.games.gamename = 'csgo')


Nu wil ik dit graag met php in de volgende opmaak kunnen tonen:

game1.php
-Teamname 1
--player 1
--player 2
--player 3
--player 4
--player 5

-Teamname 2
--player 6
--player 7
--player 8
--player 9
--player 10

game2.php
-Teamname 3
--player 1
--player 2
--player 3
--player 4
--player 5

Dus eigenlijk iedere game krijgt zijn eigen .php file en op basis van die game kijkt de code of er teams zijn en als ze bestaan welke spelers er in zitten.

Ik denk dat de query goed is, maar de code die het toont in .php niet.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
    $Query = "SELECT        dbo.games.gamename, dbo.teams.teamname, dbo.players.playername
FROM            dbo.games INNER JOIN
                         dbo.teams ON dbo.games.gameid = dbo.teams.gameid INNER JOIN
                         dbo.players ON dbo.teams.teamid = dbo.players.teamid
WHERE        (dbo.games.gamename = 'csgo')";

    $ex = mysql_query($Query);
    if($ex)
    {
        while($show = mysql_fetch_assoc($ex))
        {
            echo .$show["teamname"].;
        }
     while($show = mysql_fetch_assoc($ex))
        {
            echo .$show["playername"].;
        }
    }
?>

[ Voor 79% gewijzigd door Bielie993 op 26-09-2015 23:58 ]


  • RGAT
  • Registratie: Augustus 2011
  • Niet online
Voeg in ieder geval ook even toe welke PHP code je nu hebt :)

[ Voor 106% gewijzigd door RGAT op 26-09-2015 01:22 ]

Fixing things to the breaking point...


  • Zombaya
  • Registratie: April 2012
  • Laatst online: 25-08 23:13
Je zou nog een where-clausule aan je query kunnen toevoegen waarin je selecteert welke game je wilt.

Zombaya


  • Bielie993
  • Registratie: Maart 2010
  • Laatst online: 05-08 16:04
updated start post

[ Voor 138% gewijzigd door Bielie993 op 26-09-2015 01:49 ]


  • ajakkes
  • Registratie: Maart 2004
  • Laatst online: 16-05 22:32

ajakkes

👑

Als je van $show $show[] maakt. Kan je hierna de hele $show array printen om te zien wat je precies wanneer wil printen.

De tweede while loop zou ik overslaan.

👑


  • RedHat
  • Registratie: Augustus 2000
  • Laatst online: 12-10 20:52
print_r of var_dump gebruiken en kijken wat er in je array zit... Dan kun je kijken hoe je de informatie die je wilt eruit gaat halen.

  • amoen
  • Registratie: Juni 2003
  • Laatst online: 30-06 22:13
Ik kijk ff niet naar je query, maar denk dat het fout gaat in je dubbele while loop.
Op deze manier trek je 2x je mysql-result resource leeg. Begin hier eens mee:

PHP:
1
2
3
while($show = mysql_fetch_assoc($ex)) {
    echo $show["teamname"] . ' - ' . $show["playername"] . '<br>';
}


Dan som je iig alle spelers op met het team ervoor.

heeeeee ..... hoe is het?


Acties:
  • 0 Henk 'm!

  • Bielie993
  • Registratie: Maart 2010
  • Laatst online: 05-08 16:04
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
    $Query = "
    
    SELECT distinct gamename, teamname 
    FROM games 
    INNER JOIN teams ON games.gameid = teams.gameid 
    INNER JOIN players ON teams.teamid = players.teamid 
    WHERE games.gamename = 'csgo' 
    
    ";
    
    $ex = mysql_query($Query);

    if($ex)
    {
        while($show = mysql_fetch_assoc($ex)) {
            echo strtoupper($show["teamname"]) . '<br>';
        }
    }
?>


Dit heb ik nu, ik krijg nu de teams onder elkaar. http://puu.sh/kphWP/204c8c4266.png

Hoe kan ik nu tussen die teams in de bijbehorende spelers krijgen dan?

Acties:
  • 0 Henk 'm!

  • Baazie
  • Registratie: Februari 2008
  • Niet online
Heb je al geprobeerd om je select met players te voorzien?

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
    $Query = "
    
    SELECT distinct gamename, teamname, playername 
    FROM games 
    INNER JOIN teams ON games.gameid = teams.gameid 
    INNER JOIN players ON teams.teamid = players.teamid 
    WHERE games.gamename = 'csgo' 
    
    ";
    
    $ex = mysql_query($Query);

    if($ex)
    {
        while($show = mysql_fetch_assoc($ex)) {
            echo strtoupper($show["teamname","playername"] ) . '<br>';
        }
    }
?>

[ Voor 145% gewijzigd door Baazie op 27-09-2015 00:38 ]


Acties:
  • 0 Henk 'm!

  • Bielie993
  • Registratie: Maart 2010
  • Laatst online: 05-08 16:04
Die werkte niet baazie :>

[ Voor 5% gewijzigd door Bielie993 op 27-09-2015 14:59 ]


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 08:57

Creepy

Tactical Espionage Splatterer

En toen ging je zelf aan de slag om dat te fixen, en wat gebeurde er toen? :>

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • BlueZero
  • Registratie: Mei 2007
  • Laatst online: 10-09 15:45
De DISTINCT voor gamename moet er nog even uit daarna krijg je wel alles terug. Nadat je de resultaten terugkrijgt is het handig om een hiërarchische array op te bouwen die je vervolgens gaat printen.

PHP:
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
44
45
46
47
48
<?php
    $Query = "
    
    SELECT gamename, teamname, playername 
    FROM games 
    INNER JOIN teams ON games.gameid = teams.gameid 
    INNER JOIN players ON teams.teamid = players.teamid 
    WHERE games.gamename = 'csgo' 
    
    ";
    
    $ex = mysql_query($Query);
    $print = array();
    
    if($ex)
    {
        while($show = mysql_fetch_assoc($ex)) {
            
            if(!isset($print[$show['gamename']]))
                $print[$show['gamename']] = array();
            
            if(!isset($print[$show['gamename']][$show['teamname']]))
                $print[$show['gamename']][$show['teamname']] = array();
                
            $print[$show['gamename']][$show['teamname']][] = $show['playername'];
            

        }
    }
    
    //En nu alle op het scherm!
    
    foreach($print as $gamename => $teams){
    
        echo $gamename.'<br />';
        
        foreach($teams as $team => $players){
            echo '<strong>-'.$team.'</strong><br />';
            
            foreach($players as $player){
                echo '--'.$player.'<br />';
            }
        }
        
    
    }
    
?>

Acties:
  • 0 Henk 'm!

  • xleeuwx
  • Registratie: Oktober 2009
  • Laatst online: 12-10 15:15

xleeuwx

developer Tweakers Elect
en gebruik mysqli en geen mysql ... http://php.net/manual/en/intro.mysql.php

dat is geen grote aanpassing en dan werkt je script ook straks nog op nieuwere servers

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 08:57

Creepy

Tactical Espionage Splatterer

Hmmja, als de topicstart zelf aangeeft dat een oplossing "niet werkt" zonder zelf enige moeite te lijken (!) doen, en er kant en klare oplossing gegeven gaan worden, dan kan het topic ook wel dicht. Dat is nu niet niet de bedoeling hier.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.