Avatar billede msk Nybegynder
16. september 2002 - 17:54 Der er 4 kommentarer og
1 løsning

Table problemer

Mit script:

if ($rs) {
    $ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
    echo "<table>";
    echo "<tr><th>Title</th><th>Year</th><th>Starring</th>
<th>Director</th><th>Company</th><th>Genre</th>
<tr>";
  while (!$rs->EOF) {
        echo "<tr>
<td>".$rs->fields["movie_title"]."</td>
<td>".$rs->fields["movie_year"]."</td>
<td>".$rs->fields["act_name"]."</td>
<td>".$rs->fields["dir_name"]."</td>
<td>".$rs->fields["com_name"]."</td>
<td>".$rs->fields["gen_name"]."</td>
</tr>";
        $rs->MoveNext();
    }
    echo "</table>";
  }

Mit Problem:

I kolonnen act_name kan der som i den eneste forekomme flere.

Sådan ser det ud nu:

Title Year Starring Director Company Genre

x    2000  mr.X    mr.y    Star  Comedy
x    2000  mrs.Z    mr.y    Star  Comedy

Sådan skal der se ud:

Title Year    Starring    Director Company Genre

x    2000  mr.X, mrs.Z    mr.y    Star  Comedy

Hvad skal jeg gøre?
Avatar billede bispensgipsgebis Nybegynder
16. september 2002 - 18:21 #1
i stedet for $rs->fields skal du lave en whileløkke, hvor du laver endnu et recordset. Dette kan f.eks. være:
SELECT act_name FROM "tablename" WHERE movie_title='.$rs->fields["movie_title"].' AND movie_year='.$rs->fields["movie_year"].'

Herfra skal du så hive alle records, og separere dem med et komma.

Dette skulle løse problemet!

God fornøjelse
/Rune
Avatar billede jakoba Nybegynder
16. september 2002 - 18:21 #2
while (!$rs->EOF) {
    $temp = array();
    $temp["movie_title"] = $rs->fields["movie_title"];
    $temp["movie_year"] = $rs->fields["movie_year"];
    $temp["act_name"] = $rs->fields["act_name"];
    $temp["dir_name"] = $rs->fields["dir_name"];
    $temp["com_name"] = $rs->fields["com_name"];
    $temp["gen_name"] = $rs->fields["gen_name"];

    while (!$rs->EOF) {
        $rs->MoveNext();
        if ( $temp["movie_title"] != $rs->fields["movie_title"] ) break;
        if ( $temp["movie_year"] != $rs->fields["movie_year"] ) break;
        if ( $temp["dir_name"] != $rs->fields["dir_name"] ) break;
        if ( $temp["com_name"] != $rs->fields["com_name"] ) break;
        if ( $temp["gen_name"] != $rs->fields["gen_name"] ) break;
            // alle andre er ens. tilføj skuespiller
        $temp["act_name"] .= ", " .$rs->fields["act_name"];
    } // end of inner while (!$rs->EOF)

    echo "<tr>
<td>".$temp["movie_title"]."</td>
<td>".$temp["movie_year"]."</td>
<td>".$temp["act_name"]."</td>
<td>".$temp["dir_name"]."</td>
<td>".$temp["com_name"]."</td>
<td>".$temp["gen_name"]."</td>
</tr>";

} // end of first 'while (!$rs->EOF)'

mvh JakobA
Avatar billede bispensgipsgebis Nybegynder
16. september 2002 - 18:22 #3
hov... det skal være $rs->fields["act_name"] i stedet for $rs->fields i første linie...
Avatar billede msk Nybegynder
17. september 2002 - 09:10 #4
Mange tak til jakoba
Det var lige det jeg skulle bruge.
Avatar billede jakoba Nybegynder
17. september 2002 - 09:13 #5
så lægger jeg et svar.
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