Hur gör jag en if sats som tar bort 2 rader

PHPportalen Forum Index » PHP
Lägg ett bokmärke på hela tråden
Skapa nytt inlägg   Svara på inlägget
Visa föregående ämne :: Visa nästa ämne  
Startad av: Meddelande
mify



Medlem i: 5493 dagar

Status: Offline



#742070
Inlägg Skrivet: 2018-01-09 14:37      Ämne: Hur gör jag en if sats som tar bort 2 rader Citera

beroende på om gametype är V-86 eller V75
id_gametype=1 är V-75
id_gametype=2 är V86

Vill helst kunna använda samma sida för redovisa båda på annars får jag skapa en för varje gametype

Dessa 2 rader ska bort om är V-75
echo "<th width='97px'>(Antal) Utdelning 8 rätt</th>";
samt
echo '<td>('. $row['ant8'] . ') '. $row['utd8'] . ':-</td>';

om game.id_gametyp=1

och dessa 2 bort om V-86
echo "<th width='97px'>(Antal) Utdelning 5 rätt</th>";
samt
echo '<td>('. $row['ant5'] . ') '. $row['utd5'] . ':-</td>';
om game.id_gametype=2


KOD:
1:
      $teamname = $_POST['teamname'];
2:
 
3:
         // Attempt select query execution
4:
         $sql = "SELECT game.gameday,game.id_gametype,game.cost,game.fee_coins,game.total_shares,game.my_shares,result.utd8,result.utd7,result.utd6,result.utd5,result.ant8,result.ant7,result.ant6,result.ant5,teams.teamname FROM result inner join game on result.id_game=game.id_game INNER JOIN teams ON teams.id_team=game.id_team WHERE teams.teamname='".$teamname ."'";
5:
         $kostnad='0';
6:
         $fee='0';
7:
            if($result = mysqli_query($link, $sql)){
8:
                if(mysqli_num_rows($result) > 0){
9:
                    echo '<table>';
10:
                   
11:
                        echo "<tr>";
12:
                            echo "<th>Datum</th>";
13:
                            echo "<th>Kostnad</th>";
14:
                            echo "<th>Andelsavgift</th>";
15:
                            echo "<th>Lag namn</th>";
16:
                            echo "<th width='97px'>(Antal) Utdelning 8 rätt</th>";
17:
                            echo "<th width='97px'>(Antal) Utdelning 7 rätt</th>";
18:
                            echo "<th width='97px'>(Antal) Utdelning 6 rätt</th>";
19:
                            echo "<th width='97px'>(Antal) Utdelning 5 rätt</th>";
20:
                       echo "</tr>";
21:
                       echo "<tr>";
22:
                    while($row = mysqli_fetch_array($result)){
23:
                             echo "<tr>";
24:
                            echo '<td> '. $row['gameday'] . '</td>';
25:
                            echo '<td> '. $row['cost'] . ' Kr</td>';
26:
                            echo '<td> '. $row['fee_coins'] . ' Kr</td>';
27:
                            echo '<td> '. $row['teamname'] . '</td>';
28:
                            echo '<td>('. $row['ant8'] . ') '. $row['utd8'] . ':-</td>';
29:
                            echo '<td>('. $row['ant7'] . ') '. $row['utd7'] . ':-</td>';
30:
                            echo '<td>('. $row['ant6'] . ') '. $row['utd6'] . ':-</td>';
31:
                            echo '<td>('. $row['ant5'] . ') '. $row['utd5'] . ':-</td>';
32:
                            $kostnad = $kostnad+$row['cost'];   
33:
                            $fee = $fee+$row['fee_coins']   ;                
34:
                           
35:
                         
36:
                            // echo '<td> '. $row['idgame'] . ' title="'. $row['description'] .'">' . $row['displayname'] . '</a></td>';
37:
                          echo "</tr>";
38:
                    }
39:
                    echo "</tr>";
40:
                    echo "<tr>";
41:
                       echo '<td>Totalt</td>';
42:
                       echo '<td>'.$kostnad.' Kr</td>';
43:
                       echo '<td>'.$fee.' Kr</td>';
44:
                 
45:
                    echo "</tr>";
46:
                    echo "</table>";
47:
                    // Free result set
48:
                    mysqli_free_result($result);
49:
                   
50:
 
51:
               
52:
                } else{
53:
                    echo "No records matching your query were found.";
54:
                }
55:
            } else{
56:
                echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
57:
            }
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
harald_b
Moderator



Medlem i: 4660 dagar
Från: Tavesta
Status: Offline



#742071
Inlägg Skrivet: 2018-01-10 00:37      Ämne: Citera

Utifrån sql-koden får jag intrycket att resultatet från databasfrågan mycket väl kunde innehålla både rader med id_gametype=1 och id_gametype=2 i samma resultat. I det läget är det ju mycket svårt att plocka bort kolumner beroende på detta.

Om så inte är fallet. Om man vet att alla rader har samma id_gametype så kan man lösa det genom att först loopa igenom resultatet från databasfrågan och spara det till en array, och samtidigt kolla upp vad id_gametype har för värde.
När det är gjort kan man printa ut html-tabellens rubriker.
Sedan kan man loopa igenom arrayen med foreach och printa ut raderna.
Då blir det enkelt att villkora kolumner utiftrån id_gametype.
 

_________________
R.r - Ett fritt affärssystem
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
mify



Medlem i: 5493 dagar

Status: Offline



#742072
Inlägg Skrivet: 2018-01-10 13:39      Ämne: Citera

Det är alltid bara resultat från en id_gametype i resultatet, men jag förstår inte hur jag ska loopa ut och kolla vad det är Sad
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
harald_b
Moderator



Medlem i: 4660 dagar
Från: Tavesta
Status: Offline



#742073
Inlägg Skrivet: 2018-01-11 13:39      Ämne: Citera

Du kan ladda in hela resultatet i en array med ett enda funktionsanrop:
PHP:
1:
 $all_rows mysqli_fetch_all($resultMYSQLI_ASSOC); 

Då behöver du varken använda mysqli_num_rows eller while(mysqli_fetch_array()).
För att se om arrayen innehåller något kan du använda den direkt i en if-sats:
PHP:
1:
 if($all_rows) { 
2:
  //arrayen innehåller rader, och tabellen kan skrivas ut.
3:
  $not_v75 $all_rows[0]['id_gametype'] != 1//id_gametype på rad 0 borde vara representativ för alla rader
4:
  $not_v86 $all_rows[0]['id_gametype'] != 2;
5:
  //printa tabellhuvud
6:
  ...
7:
  if($not_v75) echo "<th width='97px'>(Antal) Utdelning 8 rätt</th>";
8:
  ... 
9:
  foreach($all_rows as $row) {
10:
    //printa rader
11:
    ....
12:
    if($not_v75) echo '<td>('$row['ant8'] . ') '$row['utd8'] . ':-</td>';
13:
    ....
14:
  }
15:
 

_________________
R.r - Ett fritt affärssystem
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Visa tidigare inlägg:   
Skapa nytt inlägg   Svara på inlägget
PHPportalen Forum Index » PHP
Hoppa till:  
Du kan inte skapa nya inlägg i det här forumet
Du kan inte svara på inlägg i det här forumet
Du kan inte ändra dina inlägg i det här forumet
Du kan inte ta bort dina inlägg i det här forumet
Du kan inte rösta i det här forumet
Du kan inte bifoga filer i detta forum
Du kan inte ladda ner filer från detta forum
Kontakta oss på adressen: info@phpportalen.net
Webbplatsen bygger i grunden på phpBB © 2001, 2002 phpBB Group

Modifieringar har senare gjorts i systemet av PHPportalen
Sid och logotypdesign skapad av Daren Jularic