Avatar billede weeelo Nybegynder
10. august 2006 - 15:58 Der er 9 kommentarer og
1 løsning

Hjælp til trick med db-udtræk..

Hejsa, jeg har lidt problemer med visningen af et mysql-udtræk.

I første omgang ser det således ud:

$result  =  mysql_query("$sql")or die(mysql_error());
while ($row  =  mysql_fetch_object($result)) {
echo"
    <tr>
        <td><strong>$row->new_date</strong></td>
        <td align=right>$row->club_home</td>
        <td align=right>$row->home_score</td>
        <td align=center> - </td>
        <td align=left>$row->away_score</td>
        <td align=left>$row->club_away</td>
    </tr>
";

Men jeg vil gerne have, at datoen kun vises én gang selvom flere rækker har samme dato. F.eks.:

    <tr>
        <td colspan=5><strong>$row->new_date</strong></td>
    <tr>
        <td align=right>$row->club_home</td>
        <td align=right>$row->home_score</td>
        <td align=center> - </td>
        <td align=left>$row->away_score</td>
        <td align=left>$row->club_away</td>
    </tr>

Men hvis jeg trækker datoen ud i en anden række vises den jo stadig HVER gang.

Kan det lade sig gøre at lave det sådan, som jeg beskriver, eller er det nemmere at tage fat på selve MYSQL-udtrækket?

MVH Weeelo
Avatar billede weeelo Nybegynder
10. august 2006 - 15:59 #1
Hov..

F.eks. sådan her:

    <tr>
        <td colspan=5><strong>$row->new_date</strong></td>
    </tr>
    <tr>
        <td align=right>$row->club_home</td>
        <td align=right>$row->home_score</td>
        <td align=center> - </td>
        <td align=left>$row->away_score</td>
        <td align=left>$row->club_away</td>
    </tr>
    <tr>
        <td align=right>$row->club_home</td>
        <td align=right>$row->home_score</td>
        <td align=center> - </td>
        <td align=left>$row->away_score</td>
        <td align=left>$row->club_away</td>
    </tr>
    <tr>
        <td align=right>$row->club_home</td>
        <td align=right>$row->home_score</td>
        <td align=center> - </td>
        <td align=left>$row->away_score</td>
        <td align=left>$row->club_away</td>
    </tr>
Avatar billede gallabef4 Nybegynder
10. august 2006 - 16:27 #2
Eller sådan her...

<tr>
        <td colspan=5><strong>$row->new_date</strong></td>
    </tr>
    <tr>
        <td align=right>$row->club_home</td>
        <td align=right>$row->home_score</td>
        <td align=center> - </td>
        <td align=left>$row->away_score</td>
        <td align=left>$row->club_away</td>
    </tr>
    <tr>
        <td align=right>$row->club_home</td>
        <td align=right>$row->home_score</td>
        <td align=center> - </td>
        <td align=left>$row->away_score</td>
        <td align=left>$row->club_away</td>
    </tr>
    <tr>
        <td align=right>$row->club_home</td>
        <td align=right>$row->home_score</td>
        <td align=center> - </td>
        <td align=left>$row->away_score</td>
        <td align=left>$row->club_away</td>
    </tr>
Avatar billede zynzz Praktikant
10. august 2006 - 16:28 #3
$i = "1";
while ($row  =  mysql_fetch_object($result)) {
if($i == 1){
$tid = dintid;
}else{
$tid = "";
}
echo"
    <tr>
        <td><strong>$tid</strong></td>
        <td align=right>$row->club_home</td>
        <td align=right>$row->home_score</td>
        <td align=center> - </td>
        <td align=left>$row->away_score</td>
        <td align=left>$row->club_away</td>
    </tr>
";
$i++;
Avatar billede weeelo Nybegynder
10. august 2006 - 16:50 #4
zynzz > dintid skal vel være $row->new_date?
Det virker kun hvis jeg har en dato, men problemet er at jeg har flere forskellige datoer..

Sådan vises det med din metode:
29/07-06      Hold1      0      -      2      Hold2
    Hold3     1     -     0     Hold4
    Hold5     2     -     2     Hold6
    Hold7     1     -     1     Hold8
    Hold9     4     -     0     Hold10
    Hold11     1     -     3     Hold12

Sådan her burde den vises:

29/07-06      Hold1      0      -      2      Hold2
30/07-06    Hold3     1     -     0     Hold4
    Hold5     2     -     2     Hold6
    Hold7     1     -     1     Hold8
    Hold9     4     -     0     Hold10
02/08-06    Hold11     1     -     3     Hold12
Avatar billede zynzz Praktikant
10. august 2006 - 20:10 #5
$sql = mysql_query("SELECT * FROM dintabel GROUP BY date");
$arr[] = mysql_fetch_array($sql);

brug så $arr til at hente ud med..., det vil jeg mene man kan... :)
Avatar billede skagen Nybegynder
10. august 2006 - 20:48 #6
Med udgangspunkt i din kode kunne jeg foreslå nedenstående. Jeg tror det vil give dig det ønskede resultat :-)

$show_date  =  0;
$result  =  mysql_query("$sql")or die(mysql_error());
while ($row  =  mysql_fetch_object($result)) {
/* Only show date when changed. */
if ($show_date  !=  $row->new_date) {
    $show_date  =  $row->new_date
    echo"
    <tr>
        <td colspan=5><strong>$row->new_date</strong></td>
    </tr>
";
}
/* Always show match-data. */
echo"
    <tr>
        <td align=right>$row->club_home</td>
        <td align=right>$row->home_score</td>
        <td align=center> - </td>
        <td align=left>$row->away_score</td>
        <td align=left>$row->club_away</td>
    </tr>
";
}
Avatar billede weeelo Nybegynder
10. august 2006 - 20:52 #7
Ok.. Nu får du sgu lige det hele. Jeg er ikke sikker på jeg har forstået hvad du mener, men det ser sådan her ud nu, og printer kun '-' (altså bindestregen):

$sql = mysql_query("SELECT
  c1.name AS club_home,
  c2.name AS club_away,
  c1.id AS id_home,
  c2.id AS id_away,
  m.score_home AS home_score,
  m.score_away AS away_score,
  m.date, DATE_FORMAT(date, '%d/%m-%y') AS new_date,
  m.id AS id,
  m.season AS season
FROM
  matches AS m,
  table_clubs AS c1,
  table_clubs AS c2
WHERE
  m.home = c1.id AND
  m.away = c2.id AND
  m.league = '$_GET[league]' AND
  m.season = '$_GET[season]' AND
  m.score_home IS NOT NULL
GROUP BY
  m.date
ORDER BY
  m.date,
  m.id
LIMIT $r_start, $r_limit
");

$arr[] = mysql_fetch_array($sql);
echo"
    <tr>
        <td colspan=5><strong>$arr[new_date]</strong></td>
    </tr>
    <tr>
        <td align=right>$arr[club_home]</td>
        <td align=right>$arr[home_score]</td>
        <td align=center> - </td>
        <td align=left>$arr[away_score]</td>
        <td align=left>$arr[club_away]</td>
    </tr>
";
Avatar billede weeelo Nybegynder
10. august 2006 - 20:54 #8
skagen > prøver lige..
Avatar billede weeelo Nybegynder
10. august 2006 - 20:59 #9
skagen > Perfekt, eller næsten! Der manglede lige et semikolon, men det går nok :D

Smid et svar så er pointene dine.
Avatar billede skagen Nybegynder
10. august 2006 - 22:28 #10
OK! Takker.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester