Lijst met adressen overzicht sorteren op alfabet

Status
Niet open voor verdere reacties.

peps03

Gebruiker
Lid geworden
20 nov 2009
Berichten
93
Hoi allemaal,

Ik ben bezig een site aan te passen van een vriendje die op zijn site kantoorruimte aanbiedt. Wanneer je op de naam van een stad klikt krijg een google maps kaartje van die stad te zien met daarin de markers van de locaties en daaronder een lijst met de adressen. deze lijst is echter niet gesorteerd, dit maakt het vinden van een adres lastig. nu vraag ik me af hoe ik het best de lijst kan sorteren.

Hieronder het stuk code wat de lijst samenstelt:

PHP:
<?php

				echo "<p>&nbsp;</p>
						<table cellpadding='0' cellspacing='0' border='0' class='listing'>
							<thead>
								<tr>
									<th class='info'>Info</th>
									<th class='plaats'>Plaats</th>
									<th class='adres'>Adres</th>
									<th class='bestemming'>Bestemming</th>
									<th class='oppervlakte'>Oppervlakte</th>
									<th class='soort'>Soort</th>
									<th class='prijs'>Prijs</th>
									<th class='foto'>Foto</th>
								</tr>
							</thead>
							<tbody>";
				
				$pc = count($results);
				for($p=0; $p<$pc; $p++){				
					
					$oId = $results[$p];
					$address = getObjectField($oId, "adres");	
					$city = getObjectField($oId, "plaats");					
					if($city != -1){
						$city = getObjectField($city, "naam");
					}
					$areaMin = getObjectField($oId, "oppervlakte minimaal");
					$areaMax = getObjectField($oId, "oppervlakte maximaal");
					$area = $areaMin ." m&sup2;". (($areaMax != "")? " - ". $areaMax ." m&sup2;" : "" );
					
					$price = getObjectField($oId, "prijs");
					
					$url = FriendlyURLs::getObjectURL($city, $oId);	
					
					echo "<tr>";
					echo "<td><a href='". $url ."' title='". htmlentities( $address ) ."'><img src='". $_BASEURL_SITE ."images/marker.gif' /></a></td>";
					echo "<td>". $city ."</td>";
					echo "<td><a href='". $url ."'>". $address ."</a></td>";
					echo "<td>Kantoorruimte</td>";
					echo "<td>". $area ."</td>";
					echo "<td>huren</td>";
					echo "<td>". $price ."</td><td><a href='". $url ."' title='". htmlentities( $address ) ."'>";
					
					$fotoId = $this->util->getFirstThumbnail($oId);
					if($fotoId != -1){
						$this->util->outputListingThumbnail($fotoId);
					}
					
					echo "</a></td></tr>";
				}
				
				echo "</tbody></table>";

als ik bv
PHP:
sort($address)
erin zet krijg ik deze foutmelding:

Warning: sort() expects parameter 1 to be array, string given in C:\***.nl\scripts\class.content.php on line 590
(deze foutmelding krijg ik dan zoveel als er adressen zijn)

Weet iemand hoe ik dit wel voor elkaar kan krijgen?

Alvast erg bedankt!
 
Is het niet handiger om de gegevens al gesorteerd terug te laten geven vanuit de database query?
 
bedankt voor de reactie silkcom!

dat is waarschijnlijk een stuk makkelijker.

hoe doe ik dat?
 
Je query uitbreiden met:

SELECT ...... WHERE .... ORDER BY "plaats", "adres";
 
oke. moet ik dan deze regel aanpassen:

PHP:
$address = getObjectField($oId, "adres");
 
Nee... Waar haal je de gegevens uit weg? Uit een tekst bestand, een database? Misschien kun je dat stukje code hier even plaatsen zodat we je verder kunnen helpen.
 
Ik zal er meteen naar op zoek gaan. Hoop het (snel) te kunnen vinden het is een vrij grote site namelijk!

Alvast bedankt!
 
heb jij misschien een aanwijzing/tip hoe ik dat stukje code kan vinden, wat de adressen uit de database haalt?

had gehoopt dat ik het makkelijk kon vinden..

er zit wel een include in de pagina; de class.util.php; hier zie ik wel dat de sql database af en toe wordt aangeroepen maar niet waar en of er ergens om een adressen reeks wordt gevraagd..
 
Laatst bewerkt:
ik denk niet dat het haalbaar is om even de adressen gesorteerd uit de database te halen. op een andere plek op de site wordt een overzicht van steden op deze manier opgeroepen en gesorteerd:

PHP:
private function outputCities(){
		echo "<h1>Steden</h1>";
		
		$cities = getObjectIdByTemplate("plaats");
		$cl = count($cities);
		for($c=0; $c<$cl; $c++){
			$cities[$c] = getObjectField($cities[$c], "naam");
		}
		sort($cities);
				
		$colC = ceil($cl / 4);
		
		echo "<ol class=\"linklist\">";		
		for($c=0; $c<$cl; $c++){

			if($c>0 and $c % $colC == 0){
				echo "</ol><ol class=\"linklist\">";
			}			
			echo "<li><a href=\"". FriendlyURLs::getCityURL($cities[$c]) ."\">". $cities[$c] ."</a></li>";
		}
		echo "</ol><div class=\"clear\"></div>";
	}

maar het lukt mij niet om met "sort" een overzicht van de adressen op alfabet te krijgen (zoals bovenaan de post aangegeven) maar het is blijkbaar dus wel te doen op deze manier. Hoe pas ik dit toe op mijn original post?

--> het gaat dus om het alfabetisch rangschikken van 'address" op regel 39 van de code in de eerste post:
PHP:
 echo "<td><a href='". $url ."'>". $address ."</a></td>";[PHP]

alvast bedankt!
 
Laatst bewerkt:
De gegevens dienen reeds gesorteerd aangeboden te worden.
Het betreft in dit geval de array-variable "result" in regel 19 en 22 van je eerste post.
Volgens mij is dit een resultaat dat teruggegeven wordt vanuit een sql-query.
Deze query dient aangepast te worden met SELECT ... WHERE ... ORDER BY "address"
 
Graag gedaan.

Dit was ook mijn voorstel in de 4de reactie maar ik ben dus niet duidelijk genoeg geweest.
Blij dat het nu wel is gelukt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan