Avatar billede big_ossi Nybegynder
31. december 2003 - 20:17 Der er 9 kommentarer og
1 løsning

Hvordan får man den til at printe alle poster ud

Hvordan får man den til at printe alle poster ud i to lodrette rækker ?

Nu printer den kun en tilfældig ud hver gang.

koden:
Hvordan får man den til at printe alle poster ud
Avatar billede andhansen Nybegynder
31. december 2003 - 21:30 #1
Jeg mener man kan gøre det på den her måde....
---------------------------------------
Opret forbindelse til db!

<?
// Henter poster fra databasen
$result = mysql_query("SELECT * FROM Table ORDER BY Ting1") or die (mysql_error());
?>
        <html>
        <body>
        <div align="center"></div>
        <table width="520" border="0" cellspacing="0" cellpadding="0">
                        <?php
            while($row = mysql_fetch_array($result))
            {
            ?>         
          <tr>
            <td><table width="520" border="0" align="center" cellpadding="0" cellspacing="0">

              <tr>
                <td width="50%" height="25"> <font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="black">
                <?php echo "row[Ting1]"; ?>
                </font>   
                </td>
                <td width="50%" height="25">
                  <div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="black">
                  <? php echo $row[Ting2]; ?>
                  </font> </div></td>
              </tr>

            </table></td>
          </tr>
          <tr>
            <td height="3"></td>
          </tr>
            <?php
            }
        ?>
        </table>
-------------------------------
Avatar billede tefcke Nybegynder
01. januar 2004 - 21:52 #2
hvordan er det du vil have det uddata organiseret?
Er det:
1  2
3  4
5  6
osv.

eller er det:
1  4
2  5
3  6
Avatar billede big_ossi Nybegynder
02. januar 2004 - 00:27 #3
det er
1  4
2  5
3  6
Avatar billede tefcke Nybegynder
02. januar 2004 - 01:07 #4
Jeg har nemlige lavet noget på den måde du vil have det som...
[snip]
        <table width="100%" class="mainTable">
        <tr align="left" valign="top">
<?php
// Fetch all categories associated with user
$category =
    $__DATABASE->get('SELECT usr.usr_username AS user, cat.cat_name AS category, cat.cat_id AS cat_id, COUNT(cat.cat_id) as links_in_cat
                      FROM category AS cat
                      LEFT JOIN users AS usr ON cat.cat_user = usr.usr_id
                      LEFT JOIN links ON cat.cat_id = links.link_cat
                      WHERE usr.usr_id = '.$_SESSION['user']['id'].'
                      GROUP BY cat.cat_id
                      ORDER BY cat.cat_name');

// Continue if we got some data out
if ( is_array($category) ) {
    // Run through all the categories
    $left_tabel  = '<td width="50%"><table border="0" class="mainTable">';
    $right_tabel = '<td width="50%"><table border="0" class="mainTable">';
    for ($idx = 0; $idx < count($category); $idx++) {
        // Extend left table with categori
        $left_tabel .= '
        <tr>
            <td><b>'.stripslashes($category[$idx]['category']).'</b></td>
        </tr>';
          // Fetch all the links to each categori
        $links =
            $__DATABASE->get('SELECT links.link_name as name, links.link_ref as ref, links.link_hits as hits, links.link_id as link_id
                              FROM category as cat LEFT JOIN links ON cat.cat_id = links.link_cat
                              WHERE links.link_cat = '.$category[$idx]['cat_id'].'
                              ORDER BY links.link_name');
        // Continue if there is any links in the category
        if ( is_array($links) ) {
            // Run through all the links in the category
            foreach ($links as $link) {
                $left_tabel .= '
                <tr>
                    <td><a href="handler.php?cmd=link&id='.$link['link_id'].'" onmouseover="setStatus(\'http://'.$link['ref'].'\'); return true;" onmouseout="setStatus(\'\'); return true;">'.$link['name'].'</a> - ['.$link['hits'].' hits]</td>
                </tr>';
            }
        }
        else {
            $left_tabel .= '
            <tr>
                <td>Der er ikke oprettet nogen links i denne kategori endnu</td>
            </tr>';
        }
        $left_tabel .='
        <tr>
            <td><br /></td>
        </tr>';

        // Check to see if there is enough categories for another right table category
        if ( ++$idx < count($category) ) {
            $right_tabel .= '
            <tr>
                <td><b>'.stripslashes($category[$idx]['category']).'</b></td>
            </tr>';
            // Fetch all the links to each categori
            $links =
                $__DATABASE->get('SELECT links.link_name as name, links.link_ref as ref, links.link_hits as hits, links.link_id as link_id
                                  FROM category as cat LEFT JOIN links ON cat.cat_id = links.link_cat
                                  WHERE links.link_cat = '.$category[$idx]['cat_id'].'
                                  ORDER BY links.link_name');

            // Continue if there is any links in the category
            if ( is_array($links) ) {
                // Run through all the links in the category
                foreach ($links as $link) {
                    $right_tabel .= '
                    <tr>
                    <td><a href="handler.php?cmd=link&id='.$link['link_id'].'" onmouseover="setStatus(\'http://'.$link['ref'].'\'); return true;" onmouseout="setStatus(\'\'); return true;">'.$link['name'].'</a> - ['.$link['hits'].' hits]</td>
                    </tr>';
                }
            }
            else {
                $right_tabel .= '
                <tr>
                    <td>Der er ikke oprettet nogen links i denne kategori endnu</td>
                </tr>';
            }
            $right_tabel .='
            <tr>
                <td><br /></td>
            </tr>';
        }
    }// foreach ($category as $cat)
    $left_tabel  .= '</table></td>';
    $right_tabel .= '</table></td>';
    // Print tables
    print($left_tabel);
    print($right_tabel);
}// if ( is_array($category) )
else {
?>
                <td>Der er ikke oprettet nogen kategorier endnu</td>
<?php
}
?>
        </tr>
        </table>
[/snip]

Du må lige skrive hvis der er noget du ikke forstår
Avatar billede big_ossi Nybegynder
02. januar 2004 - 01:09 #5
okay det ser sku mærkelig ud...
Avatar billede big_ossi Nybegynder
02. januar 2004 - 01:11 #6
jeg bruger denne kode nu... men den viser kun 1 tilfældig...

<?php
$foresp = mysql_query("SELECT * FROM tips order by rand() LIMIT 1") or die(mysql_error());
while($row = mysql_fetch_array($foresp)) {
$tip = $row["tip"];
$navn = $row["navn"];
}
?>
<?php
echo "
<strong><font face='Tahoma' size='1'>
<b>Musik Tip:<br>
</b> $tip
<br>
<b>Tip fra:<br>
</b> $navn
</font></strong>";
?>
Avatar billede dejbjerg Nybegynder
02. januar 2004 - 10:52 #7
Du skal ikke sætte LIMIT til 1, hvis du vil have mere end 1 resultat ud, og din echo sætning skal indenfor din while løkke, ellers bliver den kun kørt en gang.
Avatar billede tefcke Nybegynder
02. januar 2004 - 15:28 #8
Ok, du får lige en gang pseudo kode, og en gang overvejlser.
1) Vi kan ikke bare løbe vore database data igennem fra den ene ende til den anden, pga. af den måde som html tabeller er opbygget på.
2) Derfor bliver vi nød til at få hele vores database data over i et array før vi laver tabllen.
----------
<?php
$foresp = mysql_query("SELECT * FROM tips order by rand()") or die(mysql_error());
// Husker antallet af rækker fra forspørgelsen (man kunne også tælle antallet af elementer i arrayet som bliver lavet senere)
$numberOfRows = mysql_num_rows($foresp);
// Smider sql resultatet over i et array. Husk at definere arrayet, ellers kan man få en php warning
$myArray = array();
while( $row = mysql_fetch_array($foresp) ) {
    $myArray[] = $row;
}
?>

Nu har vi antallet af rækker samt alle rækkerne i et array. Så kan vi opbygge vores tabel.
----------
<tabel>
<?php
// Først finder vi lige hvor vi skal dele tabellen (div med 2 da der skal være 2 kolonner)
$split = ceil( $numberOfRows / 2 );
// For hver resultat fra sql query
for ($idx=0; $idx < $split; idx++) {
?>
<tr>
    <td>
        <strong>
            <font face='Tahoma' size='1'>
                <b>Musik Tip:</b><br/> <?=$myArray[$idx]['tip'];?><br/>
                <b>Tip fra:</b><br/> <?=$myArray[$idx]['navn'];?>
            </font>
        </strong>
    </td>
<?php
    // Se om der er nok data til endnu en celle
    if ( $idx + $split <= $numberOfRows ) {
?>
    <td>
        <strong>
            <font face='Tahoma' size='1'>
                <b>Musik Tip:</b><br/> <?=$myArray[($idx+$split)]['tip'];?><br/>
                <b>Tip fra:</b><br/> <?=$myArray[($idx+$split)]['navn'];?>
            </font>
        </strong>
    </td>
<?php
    }
    // Der er ikke mere fra databasen, print en tom datacelle ud
    else {
?>
    <td><br/></td>
<?php
    }
?>
</tr>
<?php
}
?>
</tabel>

Så skulle den printe dem ud som:
1  4
2  5
3  6

Men du skal nok lige dobbelt tjekke mine index beregninger (især med et ulige antal elementer), de er ikke gennemtestet :-)
Avatar billede big_ossi Nybegynder
02. januar 2004 - 20:31 #9
okay nu kan jeg da finde runft i den *S* smid svar og der er points
Avatar billede tefcke Nybegynder
02. januar 2004 - 20:46 #10
Jeg håber at det giver mening :)
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