Začetne postave ekip (php,mysql)

Pozdravljeni,

se učim programiranja s php, mysql in css in sem naletel na eno težavo, ki bi
nekdo lahko pomagal z nasveti. Želim narediti takšno taktično postavitev posmezne tekme, ampak mi nikakor ne uspe.
Zastavil sem si tako, da sem ustvaril MySQL tabeli in sicer formations in players. Formations je sestavljen iz naslednjih polj gameid(int), team(int),playerid(int), starting(tinyint),pos(enum(vse pozicije so v query-ju) in substitute(tinyint) in tabela players pa playerid(int), name(varchar), lastname(varchar).

Tukaj je sicer moj poskus:
/* PHP */
$homeformation = mysql_query("SELECT * FROM formations
JOIN players ply on ply.playersid = formations.playerid WHERE formations.team = '1'
AND formations.gameid = '1' AND formations.starting = '1'
ORDER BY case pos WHEN 'GK' THEN 1 WHEN 'DR' THEN 2 WHEN 'DRC' THEN 3 WHEN 'DC' THEN 4
WHEN 'DLC' THEN 5 WHEN 'DL' THEN 6 WHEN 'DMR' THEN 8 WHEN 'DMRC' THEN 9 WHEN 'DMC' THEN
10 WHEN 'DMLC' THEN 11 WHEN 'DML' THEN 12 WHEN 'MR' THEN 13 WHEN 'MRC' THEN 14 WHEN
'MC' THEN 15 WHEN 'MLC' THEN 16 WHEN 'ML' THEN 17 WHEN 'AMR' THEN 18 WHEN 'AMRC' THEN
19 WHEN 'AMC' THEN 20 WHEN 'AMLC' THEN 21 WHEN 'AML' THEN 22 WHEN 'FR' THEN 23 WHEN
'FRC' THEN 24 WHEN 'FC' THEN 25 WHEN 'FLC' THEN 26 WHEN 'FL' THEN 27 ELSE 28 END ");

echo '<div id=pitch>';
while ($ht = mysqlfetcharray($homeformation)) { ?>
<div id="GK">
<ul><?php if ($ht['pos'] === 'GK') {
echo '<li>'.$ht['lastname'].'</li>'; } ?></ul></div>

<div id="DEF"><?php if ($ht['pos'] === 'DR' || $ht['pos'] === 'DRC'|| $ht['pos'] ===
'DC'|| $ht['pos'] === 'DLC'|| $ht['pos'] === 'DL') {
echo'<ul><li>'.$ht['lastname'].'</li></ul>'; } ?>
</div>
<div id="DM"><?php if ($ht['pos'] === 'DMR' || $ht['pos'] === 'DMRC'|| $ht['pos']
=== 'DMC'|| $ht['pos'] === 'DMLC'|| $ht['pos'] === 'DML'){
echo '<ul> <li>'.$ht['lastname'].'</li></ul>'; } ?></div>

<div id="MID"><?php if ($ht['pos'] === 'MR' || $ht['pos'] === 'MRC'|| $ht['pos'] ===
'MC'|| $ht['pos'] === 'MLC'|| $ht['pos'] === 'ML') {
echo '<ul><li>'.$ht['lastname'].'</li></ul>'; } ?></div>

<div id="AM"><?php if ($ht['pos'] === 'AMR' || $ht['pos'] === 'AMRC'|| $ht['pos']
=== 'AMC'|| $ht['pos'] === 'AMLC'|| $ht['pos'] === 'AML') {

echo '<ul><li>'.$ht['lastname'].'</li></ul>'; } ?></div>

<div id="STR"><?php if ($ht['pos'] === 'FR' || $ht['pos'] === 'FRC'|| $ht['pos'] ===
'FC'|| $ht['pos'] === 'FLC'|| $ht['pos'] === 'FL') {
echo '<ul><li>'.$ht['lastname'].'</li></ul>'; } ?>
</div>

/* CSS */
 #pitch{ border: 1px solid #333; width: 500px height: 300px;}
.GK ul {list-style-type:none; margin:0; padding:0; }
.GK li { width: 95px; height: 75px; padding: 5px; display: inline;

font-size: 12px; float: left; text-align: center; }
.DEF ul { list-style-type:none; margin:0; padding:0; }
.DEF li { width:95px; height: 75px; padding: 5px; display: inline;
font-size: 12px; float: left; }
.DM ul { list-style-type:none; margin:0; padding:0; }
.DM li { width: 95px; height: 75px; padding: 5px; display: inline;
font-size: 12px; float: left; text-align: center; }
.MID ul { list-style-type:none; margin:0; padding:0; }
.MID li { width: 95px; height: 75px; padding: 5px; display: inline;
font-size: 12px; float: left; text-align: center; }
.AM ul { list-style-type:none; margin:0; padding:0; }
.AM li {width: 95px; height: 75px; padding: 5px; display: inline;
font-size: 12px; float: left; text-align: center; }
.STR ul { list-style-type:none; margin:0; padding:0; }
.STR li {width: 95px; height: 75px; padding: 5px; display: inline;
font-size: 12px; float: left; text-align: center; }

Upam, da mi nekdo lahko pomaga rešiti to težavo.

2 odgovora

$pos = array(
    'GK' => 'GK',
    'DEF' => 'DEF', 'DR' => 'DEF', 'DRC' => 'DEF', ...
    'MR' => 'MID', ...
);

while ($row = mysql_fetch_assoc($homeformation) {
    $home[$pos[$row['pos']]][] = $row['lastname'];
}

// Golman
echo $home['GK'][0];
// Obramba, ja priimki se skp držijo...
foreach( $home['DEF'] as $id => $name ) echo $name;

To bi moralo delat, mogoče je kje kakšen typo, ampak če maš že tako postavljeno zadevo se mi zdi to najlažja rešitev (torej brez spreminjanja baze)

1

spicey:

$pos = array(
    'GK' => 'GK',
    'DEF' => 'DEF', 'DR' => 'DEF', 'DRC' => 'DEF', ...
    'MR' => 'MID', ...
);

while ($row = mysql_fetch_assoc($homeformation) {
    $home[$pos[$row['pos']]][] = $row['lastname'];
}

// Golman
echo $home['GK'][0];
// Obramba, ja priimki se skp držijo...
foreach( $home['DEF'] as $id => $name ) echo $name;

To bi moralo delat, mogoče je kje kakšen typo, ampak če maš že tako postavljeno zadevo se mi zdi to najlažja rešitev (torej brez spreminjanja baze)

Hvala Spicey za pomoč!