Beste allemaal,

Wie heeft of kent een goed werkend stratenherkenninsscript dat ik kan gebruiken voor mijn agenda om taxiritten in te voeren.

IK deel online een agenda met 4 collega's en wij voeren met z'n allen veel reserveringen in.
Dit vergt in de regel allemaal veel tijd en niet iedereen voert de straatnamen soms goed in.
Ik ben op zoek naar een soort systeem dat wanneer ik bijvoorbeeld bij het invoerveld "adres" de letter D invul, ik automatisch kan kiezen uit een lijst met alle straten in Zaanstad beginnende met een D.
Vul ik Do in, dat dan de mogelijkheden automatisch minder worden en het systeem alle straten laat zien beginnende met Do, om vervolgens uit de lijst die verschijnt, Dorpsstraat te kunnen selecteren en dat dat dan in het veld adres terecht komt.
Ik stel me zo voor dat ik in de database en paar tabellen erbij moet maken, en daar alle straten van Zaanstad moet invoeren.
Nu is het geval dat Zaanstad bestaat uit een aantal samengevoegde gemeenten en dat de Dorpstraat dus wel 3 keer voor kan komen.
Ik stel me zo voor dat ik dan een aparte tabel per deelgemeente moet maken enz enz.

Is er iemand van jullie dat ooit eens zo'n script ontwikkelt heeft, kent, of wil helpen(heel veel wil helpen om dit te realiseren.

mvg

Peter Arendse
in db_werk staat:
<?php
$dbhost="localhost";
$dbuser="taxikalf";
$dbpass="XXXXXX";
$db="taxikalf";
?>

Met alle gegevens opvragen uit de db gaat het goed,behalve met dit stukje script
Ja, melding is duidelijk. Het gaat fout bij het selecteren van je database.
Maar Jan, $db="taxikalf"; moet toch genoeg zijn?
Nope, je zul na mysql_connect() ook [php]mysql_select_db[/php]() nog moeten gebruiken om de juiste database te selecteren...
<?php
include("db_werk.php");
if (isset ($_GET['straat'])) {
mysql_connect($dbhost,$dbuser,$dbpass) or die(mysql_error());
mysql_select_db($db) or die(mysql_error());
$sql = "
SELECT DISTINCT straat
FROM straten
WHERE straat LIKE '%" . mysql_real_escape_string ($_GET['straat']) . "%'
ORDER BY straat ASC
";
if ($res = mysql_query ($sql)) {
if (mysql_num_rows ($res) > 0) {
while ($row = mysql_fetch_assoc ($res)) {
echo '<p>'.$row['straat'].'</p>';

}
}
}
}
?>
Okay, ik heb nu dit:


<?php
    include("db_werk.php");
	$mysql_id=mysql_connect("$dbhost","$dbuser","$dbpass");
    if (isset ($_GET['straat'])) {
	mysql_connect("$dbhost","$dbuser","$dbpass");
	mysql_select_db($db);
        $sql = "
            SELECT DISTINCT straat
            FROM straten
            WHERE straat LIKE '%" . mysql_real_escape_string ($_GET['straat']) . "%'
            ORDER BY straat ASC
            ";
		$res=mysql_query($sql) or die("het ging fout bij het uitvoeren van ".$sql." het script genereerde ".mysql_error());
$fout=mysql_errno($mysql_id);
            if ($fout != 0) {
            $fout=mysql_error($mysql_id);
            echo '<font color="#FF2306">$fout</font>';
            mysql_close($mysql_id);
            echo '</body></html>';
            exit;            
            }
            else {	
        if ($res = mysql_query ($sql)) {
            if (mysql_num_rows ($res) > 0) {
                while ($row = mysql_fetch_assoc ($res)) {
                   echo '<p>'.$row['straat'].'</p>';
					}
                }
            }
        }
    }
?> 


ikvoer in de browser in:
http://localhost/werk/ajax_straatnamen.php?straat=dorpsstraat

en dat geeft terug:

Dorpsstraat

EDIT: ik heb het aangepast naar jou voorbeeld en geeft het zelfde weer, maar jou code is mooier.

PFFFFFFFFFFF, en nu weer verder!
Ja dat is ook de bedoeling neem ik aan?
Voeg eens wat extra records toe die beginnen met een d bijvoorbeeld, en roep vervolgens ajax_straatnamen.php?straat=d aan.
Als er meerdere records verschijnen werkt het perfect.
In de db staan reeds alle straten van Zaanstad, en als ik invoer :

http://localhost/werk/ajax_straatnamen.php?straat=do

krijg ik:

D Doniastraat

De Doelman

Dobbeven

Dodonaeuslaan

Dodonaeusstraat

Dokkumerdiep

Doktersland

Dom Helder Camarastraat

Domineestuin

Donau

Doppenmolen

Dorpsstraat

Dovenetelweg

Eschdoornlaan

Esdoornlaan

Esdoornstraat

Gerard Doustraat

Het Dok

IJdoorn

Karel Doormanstraat

Koperdoek

Lisdoddelaan

Meidoornlaan

Meidoornstraat

Oost-Dorsch

Roerdompstraat

Theodorus de Vriesstraat

van Hogendorpstraat
Voila, precies wat je zoekt. Of niet?
Bijna, want hij kijkt nu naar de letters "do", in de hele straatnaam ongeacht waar die voorkomen dus krijg je ongevraagd een hoop straten die je niet wilt hebben, eigenlijk moeten de straat beginnen met "do" en moet het script die alleen laten zien.
Ook moet ik die straat die naar bovenmomt kunnen aanl;ikken zodat hij in het invoer veld terechtkomt, zoals in jouw scriptje op je site blanche.

EDIT: nee, het selecteren is eigenlijk prima, alleen het aanklikken en in het veld plaatsen is nu van toepassing.

Reageren