Avatar billede lojmann Nybegynder
04. februar 2003 - 20:20 Der er 6 kommentarer og
1 løsning

to values fra samme sql-query i en while sætning?

Yo folkens!

Jeg skal strikke noget kode sammen, som henter nogle pladser fra en SQL DB. Antal pladser er altid deligt med 2.

Dataen som bliver hevet ud, skal så sættes ind i en tabel som denne her:

<TABLE BORDER="0">
<TR VALIGN="top">
<TD></TD>
<TD></TD>
</TR>
</TABLE>

Dvs. Output skal være noget ala:

1 2
3 4
5 6
7 8
9 10

osv...

Nogle som kan skrive noget kode jeg lige kan nuppe? :)
Avatar billede fangel Nybegynder
04. februar 2003 - 20:25 #1
jeg bruger følgende...

--- tabel.php ---
<?php

//MySQL connect
$sql = "SELECT * FROM noget ORDER BY noget DESC";
$query = mysql_query($sql)or die("fejl i " . $sql . "<br><br>fejlen var: " . mysql_error());

while($data = mysql_fetch_array($query)){
  $indhold[] = $data;
}

//så laver vi tabellen... du kan ændre i disse ting hvis du vil...
$brede = 2; // antal koloner per række
$brede_paa_table = 400; // bredden på tabellen... i px

echo "<table width=\"$brede_paa_table\">\n<tr>\n";

$i=0;
$ii=0;

while($brede*(ceil(count($indhold)/$brede))>$i){

  if($ii == $brede){
    echo "</tr>\n<tr>\n";
    $ii=0;
  }
if(isset($indhold[$i])){
    echo "  <td width=\"" . round($brede_paa_table / $brede,1) . "\" align=\"center\" valign=\"top\">
  " . $indhold[$i]['et_felt_i_din_db_som_du_vil_udskrive'] . "
  </td>\n";
  }
  else{
    echo "  <td width=\"" . round($brede_paa_table / $brede,1) . "\">&nbsp;</td>\n";
  }
  $i++;
  $ii++;
}
echo "</tr>\n</table>";
?>
---

Morten
Avatar billede schaefner Juniormester
04. februar 2003 - 20:25 #2
Lavet af ljweb:

<table width="400">
<tr>
<?php
    # Init Vars
    $variablearray = array(1,2,3,4,5,6,7,8,9,10);
    $tablewidth = "400";
    $cols = 2;

    $colcount = 1;
    for($i=0;$i<sizeof($variablearray);$i++) {
        echo '<td width="'.floor($tablewidth/$cols).'">'.$variablearray[$i].'</td>';
        if ($colcount == $cols) {
            $colcount = 0;
            echo '</tr><tr>';
        }
        $colcount++;
    }

    while ($colcount <= $cols) {
        echo '<td width="'.floor($tablewidth/$cols).'"></td>';
        $colcount++;
    }
?>
</tr>
</table>
Avatar billede fangel Nybegynder
04. februar 2003 - 20:25 #3
se http://www.eksperten.dk/spm/309524 for andre foreslag...

Morten
Avatar billede lojmann Nybegynder
04. februar 2003 - 20:40 #4
Nu har jeg losset denne kode sammen, den viser dog kun det første entry i min DB... Jeg har sat en ramme uden om, så kan man se hva den "tegner" nemlig ;)

            <?
                connect_general_mysql();
                $get_tabels = mysql_query("SELECT * FROM borde ORDER BY bordnr") or die (mysql_error());
                while ($tabels_row = mysql_fetch_array($get_tabels)) {
                    $indhold[] = $tabels_row;
                }
                //så laver vi tabellen... du kan ændre i disse ting hvis du vil...
                $brede = 2; // antal koloner per række
                $brede_paa_table = 10; // bredden på tabellen...

                echo "<table width=\"$brede_paa_table\" border=\"1\">\n<tr>\n";
                $i=0;
                $ii=0;
                while($brede*(ceil(count($indhold)/$brede))>$i) {
                    if($ii == $brede) {
                    echo "</tr>\n<tr>\n";
                      $ii=0;
                    }
                    if(isset($indhold[$i])) {
                        echo "  <td width=\"" . round($brede_paa_table / $brede,1) . "\" align=\"center\" valign=\"top\">
                      " . $indhold[$i]['bordnr'] . "
                      </td>\n";
                    }
                    else {
                        echo "  <td width=\"" . round($brede_paa_table / $brede,1) . "\">&nbsp;</td>\n";
                    }
                    $i++;
                    $ii++;
                }
                echo "</tr>\n</table>";
                mysql_close();
            ?>
Avatar billede fangel Nybegynder
04. februar 2003 - 20:42 #5
prøv at lav en

echo mysql_num_rows($get_tabels);
og
echo count($indhold);

og skriv hvad den skriver...

Morten
Avatar billede lojmann Nybegynder
04. februar 2003 - 20:43 #6
fuck jeg er stiv... Det virker jo... dea_pg, du skal have tak for koden... og schaefner tak for forsøget, men jeg kom slet ikke så lange :)

Hyg her!
Avatar billede fangel Nybegynder
04. februar 2003 - 20:46 #7
tak for point...

jeg er altid glad for at hjælpe...

Morten
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