Ik heb een site voor het beheren van telefoonnummers van een bedrijf. Nu moet er een lijst worden uitgedraait van alle interne nummers. Deze lijst moet op 1 A4 worden geplaatst.
Hiervoor heb ik de grootte van het lettertype aangepast en de lijst geprobeerd in twee tabellen te zetten.
Het probleem is dat deze lijst niet op alfabetische volgorde van naam kan worden gezet. Dit komt doordat ik alle even id-nummers in de rechter tabel heb geplaatst en alle oneven id-nummers in de linker tabel.
Weet er iemand een andere oplossing om te zorgen dat dit wel op alfabetische volgorde kan worden geplaatst?

Zie hier het tussenresultaat: http://rickvanderheiden.nl/telefoonlijst/internopnaamprint.php

De code:

<?php
ini_set('display_errors' , 1);
error_reporting(E_ALL ^ E_NOTICE);

//includes
include('config.php');
include('dbcon.php');

?>

<b>Interne nummers op naam</b>

<table BORDER="0" ALIGN="left" STYLE="font-size: 5.5pt;">
<tr align='left'>
	<td width="100"><b>Naam</b></td>
    <td width="10"><b>Telnr.</b></td>
    <td width="10"><b>Inlog</b></td>
    <td width="120"><b>Afdeling</b></td>
    <td width="10"><b>Groep</b></td>
	
	<td width="100"><b>Naam</b></td>
    <td width="10"><b>Telnr.</b></td>
    <td width="10"><b>Inlog</b></td>
    <td width="120"><b>Afdeling</b></td>
    <td width="10"><b>Groep</b></td>
</tr>
<?php 
	$sql3 = "SELECT * FROM intern WHERE naam LIKE '%$zoekterm%' ";
	$query3 = mysql_query($sql3); 
			if (!$query3) {
			echo "Foutje in je query: ".mysql_error().".<br />De query was: ".$sql3;
			} 
			
			while($row2 = mysql_fetch_array( $query3 )) {
			$id = $row2['id'];
			$sql4 = "SELECT * FROM intern WHERE id=$id";
			$query4 = mysql_query($sql4);
			if (!$query4) {
			echo "Foutje in je query: ".mysql_error().".<br />De query was: ".$sql3;
			} 
			if ($id % 2 == 1) {
			while($row4 = mysql_fetch_array( $query4 )) {
				$naam = $row4['naam'];
			}
			echo "<tr align='left'>";
			echo "<td width='100'>".$row2['naam']."</td>";
			echo "<td width='10'>".$row2['nummer']."</td>";
			echo "<td width='10'>".$row2['inlog']."</td>";
			echo "<td width='120'>".$row2['afdeling']."</td>";
			echo "<td width='10'>".$row2['groep']."</td>";
						
	}	if ($id % 2 == 0) {
			while($row4 = mysql_fetch_array( $query4 )) {
			$naam = $row4['naam'];
			}
			
			echo "<td width='100'>".$row2['naam']."</td>";
			echo "<td width='10'>".$row2['nummer']."</td>";
			echo "<td width='10'>".$row2['inlog']."</td>";
			echo "<td width='120'>".$row2['afdeling']."</td>";
			echo "<td width='10'>".$row2['groep']."</td>";

			echo "</tr>";
	}}
?></table>
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin

if (window.print) {
document.write('<form>'
+ '<input type=button name=print value="Printen" '
+ 'onClick="javascript:window.print()"></form>');
}

// End -->
</script>
Waarom meerdere queries? Je kunt het toch ook doen in één query met order by?
Dan moet je het aantal tellen, en dan halverwegen de linker kolom afbreken en met de rechter beginnen.
Dus aantal rows tellen hoeveel er op een A4 kunnen. Wanneer dat bereikt is verder met de rechter tabel. ZOiets had ik ook in gedachten maar weet niet hoe ik dit in code omzet??

Wanneer zoveel rows bereikt--> ga verder met de rechter tabel.
Misschien heb je hier wat aan?
Bedankt SanThe, dit is een erg handige link. Alleen het probleem hier is ik haal meerdere gegevens uit de database, en hier wordt met 1 gegeven gewerkt.

<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);

// onderstaand array is dus jouw database
$array = array('een', 'twee', 'drie', 'vier', 'vijf', 'zes', 'zeven', 'acht', 'negen', 'tien');

// aantal kolommen die je wilt hebben
$kolommen = 3;

// dit is eigenlijk mysql_num_rows()
$max = count($array);

// afblijven
$stap = ceil($max / $kolommen);

echo '<table>';
for($i=0; $i<$stap; $i++)
{
    echo '<tr>';
    for($j=0; $j<$kolommen; $j++)
    {
        if(($i + ($j * $stap)) < $max)
        {
            // hier moet je fetchen en de data neerzetten
            echo '<td>' . $array[$i + ($j * $stap)] . '</td>';
        }
        else
        {
            echo '<td> </td>';
        }
    }
    echo '</tr>';
}
echo '</table>';
?>


Output: 
  een     vijf    negen
 twee      zes     tien
 drie    zeven    
 vier     acht 

Dat is een kwestie van een kleine aanpassing lijkt mij.
Welke kleine aanpassing is dat dan , want ik ben nu van alles aant proberen maar kom er echt niet uit? Zie bovenaan mijn script....
rick schreef op 12.05.2009 09:46
Welke kleine aanpassing is dat dan , want ik ben nu van alles aant proberen maar kom er echt niet uit? Zie bovenaan mijn script....

Dat script heb je van SanThe vandaan. Daarin stat egwoon wat je moet aanpassen.
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin

if (window.print) {
document.write('<form>'
+ '<input type=button name=print value="Printen" '
+ 'onClick="javascript:window.print()"></form>');
}

// End -->
</script>


Dit is natuurlijk nutteloos... (even tussendoor)

Reageren