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>
Ja ik ga dus bij array mijn database invullen. Ik gebruik 1 tabel uit een database waaronder de gegevens naam, telefoonnummer, inlog, afdeling en groep staan geregistreerd. Hoe vul ik dit dan in bij die array??
Hier maak je 2 van
// aantal kolommen die je wilt hebben
$kolommen = 3;

Hier maak je mysql_num_rows($result_van_je_query) van
// dit is eigenlijk mysql_num_rows()
$max = count($array);

Hier zet je jouw data neer
// hier moet je fetchen en de data neerzetten
echo '<td>' . $array[$i + ($j * $stap)] . '</td>';

Edit:
rick schreef op 12.05.2009 09:53
Ja ik ga dus bij array mijn database invullen. Ik gebruik 1 tabel uit een database waaronder de gegevens naam, telefoonnummer, inlog, afdeling en groep staan geregistreerd. Hoe vul ik dit dan in bij die array??

Zoiets?
echo '<td>' . $naam . '</td><td>' . $adres . '</td><td>' . $telf . '</td>';
Dus wat moet ik hier invullen dan?

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

Ik gebruik maar 1 tabel uit een database. In deze tabel staan de gegevens naam, telefoonnummer, inlog, afdeling en groep geregistreerd.
Die regel kan gewoon weg. Daar komt de select voor in de plaats.
Ik kom er echt niet uit... Ben nog geen stap verder:S
Geef eens wat je tot nu toe hebt.
Ik ben net weer overnieuw begonnen met prutsen.

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

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

// onderstaand array is dus jouw database
$query = mysql_query("SELECT * FROM intern"); 
$aantal = mysql_num_rows($query);

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

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

// 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>' . $query[$i + ($j * $stap)] . '</td>';
        }
        else
        {
            echo '<td> </td>';
        }
    }
    echo '</tr>';
}
echo '</table>';
?>


$aantal = mysql_num_rows($query);
wordt
$max = mysql_num_rows($query);

// dit is eigenlijk mysql_num_rows()
$max = count($aantal);
kan weg

Je moet je data nog fetchen.
Nu heb ik dit:

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

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

// onderstaand array is dus jouw database
$query = mysql_query("SELECT * FROM intern ORDER BY naam ASC"); 
$max = mysql_num_rows($query);

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

// 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
			while($row2 = mysql_fetch_array( $query )) {
			$id = $row2['id'];
						
            echo '<td width="100">' . $row2['naam'][$i + ($j * $stap)] . '</td>';
        }}
        else
        {
            echo '<td> </td>';
        }
    }
    echo '</tr>';
}
echo '</table>';
?>



Als resultaat zie ik alleen de voorletters van alle namen...
Zit dat toevallig in de kolom naam?
Je kunt beter gebruik maken van [php]mysql_fetch_assoc[/php] dat werkt wat makkelijker.

Reageren