Avatar billede yumm Nybegynder
18. marts 2012 - 21:51 Der er 5 kommentarer og
1 løsning

Data fra MySQL i tabel

Hey.

Hvordan gør man sådan, at det data man trækker ud fra sin database, kan placeres i en tabel med kun 3 kolonner pr linje?

Altså

Data - Data - Data
Data - Data - Data

Sådan at den efter 3. udtrækning, laver en ny linje.
Avatar billede olebole Juniormester
18. marts 2012 - 22:15 #1
<ole>

Du har 10 åbne spørgsmål helt tilbage fra 2007. Hvis du ønsker hjælp, vil det nok være en god idé at få dem lukket  *o)

/mvh
</bole>
Avatar billede h_thunbo Nybegynder
20. marts 2012 - 16:02 #2
Det ser ud til du har lukket nogen af dem nu...

Du kan gøre sådan her:

$forbind = mysql_connect("din_host", "dit_brugernavn", "dit_password");
if (!$forbind){
  die('Kunne ikke forbinde: ' . mysql_error());
}
mysql_select_db("dit_database_navn", $forbind);

$result = mysql_query("SELECT * FROM data");

$counter = 0;
echo "<table border='1'>";
while ($row = mysql_fetch_array($result)) {
    if ( $counter == 0 ) echo "<tr>";
    echo "<td>$row[data1]</td>";
    echo "<td>$row[data2]</td>";
    echo "<td>$row[data3]</td>";
    $counter = ($counter+1) % 3;
    if ( $counter==0 ) echo "</tr>";
}
if ( counter != 0 ) {
    while ( $counter ) {
        echo "<td>&nbsp;</td>";
        $counter = ++$counter % 3;
    }
    echo "</tr>";
}
echo "</table>";
Avatar billede h_thunbo Nybegynder
20. marts 2012 - 16:02 #3
og hvis du skal bruge et svar til at få lukket tråden...
Avatar billede olebole Juniormester
20. marts 2012 - 16:31 #4
For det første bør du kikke på denne guide om prepared statements (MySQLI) og undgå det gamle, forældede MySQL-API.

Dernæst er det ikke særlig effektivt at echo'e data i løkker. I stedet bør du skrive til en buffer i form af en streng eller et array - og nøjes med at udskrive ét sted.

Her er et eksempel på, hvordan du kan gøre med MySQLI og en array buffer:

<?php
$mysqli = new mysqli('server', 'brugernavn', 'kodeord', 'databasenavn');
if (mysqli_connect_errno()) {
    echo 'Der opstod en fejl ved forbindelsen: ' . mysqli_connect_error();
    exit();
}

if ($stmt = $mysqli->prepare('SELECT `felt_1` FROM `tabel`')) {
    $stmt->execute();
    $stmt->bind_result($f_1);
    $result = array();
    $tmp = array();
    $inx = 0;
    while ($stmt->fetch()) {
        if ($inx%3==0) {
            $result[] = implode('', $tmp);
            $tmp = array();
        }
        $tmp[] = '<td>'.$f_1.'</td>';
    }
    $stmt->close();
    if (!empty($tmp)) {
        for ($i=count($tmp); $i<4; $i++) $tmp[] = '<td></td>';
        $result[] = implode('', $tmp);
    }
    echo '<table><tbody><tr>'.implode('</tr><tr>', $result).'</tr></tbody></table>';
} else {
    echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
}
$mysqli->close();
?>
Avatar billede h_thunbo Nybegynder
20. marts 2012 - 16:42 #5
Sejt! Der mangler en "like" knap :-)
Du har helt ret i det du siger... Det er noget halv gammelt noget jeg lige fandt frem. Og så må jeg må vist lige læse din guide ;-)
Avatar billede olebole Juniormester
20. marts 2012 - 16:59 #6
'Like' knappen sidder ved guiden  *o)

I øvrigt bør du også læse denne guide ved samme lejlighed  =)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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