beste phpvrienden,

Ik heb een telefoonzoekfunctie scriptje dat goed werkt.
Ik heb alleen een probleempje, of eigenlijk 2

1= dat wanneer ik niks invoer ik geen resultaat krijg terwijl ik juist wil dat wanneer ik niks invoer ik alles krijg dus dat ie dan gewoon de volledige inhoud van de database laat zien.

2= wanneer ik de letter E invoer bij voornaam gaat hij kijken in welke voornamen de letter E voorkomt en die laat hij zien. maar ik wil juist dat als mijn 1ste letter die ik invoer de E is dat hij dan ook alleen de resultaten laat zien waar de 1ste letter de E van is.
dus bij invoer E: Erik WEL en Bert NIET

Wie kan mij helpen

Dit is mijn goed werkende script:
 
<?php
error_reporting(E_ALL);

//database verbinding functie
function DB_connect()
{
	if (!isset($DB_CONNECT))
	{
      $db = mysql_connect('xxx','xxx','xxx') or die ('Unable to connect to server.');
      mysql_select_db("xxx",$db) or die ('Unable to select database.');
      $DB_CONNECT=1;
    }
}
//verbinding maken
DB_connect();

if(isset($_POST['gebied'])){
	$gebied = mysql_real_escape_string($_POST['gebied']);
}else{
	$gebied = mysql_real_escape_string('voornaam');
}
if(isset($_POST['zoekopdr'])){
	$zoekopdr = mysql_real_escape_string($_POST['zoekopdr']);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Telefoonnummers zoeken binnen Vespro</title>

<style>
.rij0 {
	background-color: #FFFFFF;
	}

.rij1 {
	background-color: #F5F5F5;
	}

body {
	background-image: url(back3.jpg);
	background-repeat: repeat-x;
	background-color: #0061AD;
}
</style>
</head>

<body>

<table width="218" align="center" cellspacing="0" bordercolor="#b5bece" bgcolor="#b5bece" class="table_kolom_oranje" id="table_kolom">
  <tr>
    <td id="td_kolom"><img src="logo.png" width="216" height="99" /></td>
  </tr>
  <tr>
    <td bgcolor="#b5bece">
	<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
	<p>Zoeken op:<br>
    <input name="gebied" type="radio" checked="checked" value="voornaam" id="gebied" />
    Voornaam<br>
    <input name="gebied" type="radio" value="achternaam" id="gebied" />
    Achternaam<br>
    <input name="gebied" type="radio" value="afdeling" id="gebied" />    
    Afdeling</p>
      <p>&nbsp;</p>
      <p>Geef uw zoekcriteria in       : <br>
        <input name='zoekopdr' type='text' size="30" /> 
        <br>
        <br>
        <input type="submit" value="Zoeken" />
      </p></form></td>    
  </tr>
  <tr>
    <td></td>
  </tr>
</table>

<?php
if($_SERVER['REQUEST_METHOD'] == "POST"){
//print_r($_POST);
	if($zoekopdr != ""){
	$sql_z = "	SELECT
					id,
					voornaam,
					achternaam,
					afdeling,
					telwerk,
					telmob,
					email
				FROM
					contacten
				WHERE
					".$gebied." LIKE '%" . $zoekopdr."%'
				";
	$res_z = mysql_query($sql_z) or die (mysql_error());
	
		if(mysql_num_rows($res_z) >= 1){
		?>
		<p>&nbsp;</p>
		<table width="400" border="0" align="center" cellpadding="3" cellspacing="0">
		  <tr bgcolor="#999999">
			<td><strong>Naam</strong></td>
			<td><strong>Afdeling</strong></td>
			<td><strong>Contact gegevens </strong></td>
		  </tr>
		  <?php
		  $color = 1;
		  //nu alle resultaten ophalen
		  while ($row_z = mysql_fetch_array($res_z)){
		  $color ^= 1;
		  ?>
		  <tr class="rij<?php echo $color;?>">
			<td><?php echo $row_z['voornaam'];?> <?php echo $row_z['achternaam'];?></td>
			<td><?php echo $row_z['afdeling'];?></td>
			<td><?php echo $row_z['telwerk'];?><br /><?php echo $row_z['telmob'];?><br /><a href="mailto:<?php echo $row_z['email'];?>"><?php echo $row_z['email'];?></a></td>
		  </tr>
		  <?php
		  }
		  ?>
		</table>
		<?php
		}else{
		echo '<div align="center"><strong>Er zijn geen zoekresultaten gevonden</strong></div>';
		}
	}else{
	echo '<div align="center"><strong>Je moet een zoekopdracht invullen</strong></div>';
	}
}
?>
</body>
</html>

// zoeken op letter
$q = sprintf ( 
                      "SELECT bla FROM foo WHERE " .
                      "naam LIKE '%%s%'",
                                                           substr ( $zoekopd, 0, 1 )
                   );
( kan overigens ook met SUBSTR () van mysql )

en alles :
$q = sprintf ( "SELECT bla FROM foo" );
Het kan simpeler:

<?php
    $sql = "
        SELECT *
        FROM tabelnaam
        WHERE naam LIKE '" . $zoekwoord . "%'
        ";
?>

Hmz jah sorry dacht aan het woord erik en dat ie dan alle e% liet zien :)

ik heb dit script niet zelf gemaakt.
ik zou niet weten waar ik de functie die net door jan is gepost moet plaatsen in mijn script.

ben nogal een noob snap je :D :) ;)
Wel jan maakte geen functie, hij gaf je de query die je moet gebruiken, Pplz hier gaan niet je hele script herschrijven, ze geven je tips en vertellen af en toe precies wat je moe tdoen ( zoals nu ) de rest moet je zelf doen/proberen.
dat moet je IPV dat rode op line 82
dan gewoon zijn aanwijzingen opvolgen
Ah vooruit, ik ben in een hulpvaardige bui:

<?php
error_reporting(E_ALL);

//database verbinding functie
function DB_connect()
{
    if (!isset($DB_CONNECT))
    {
      $db = mysql_connect('xxx','xxx','xxx') or die ('Unable to connect to server.');
      mysql_select_db("xxx",$db) or die ('Unable to select database.');
      $DB_CONNECT=1;
    }
}
//verbinding maken
DB_connect();

if(isset($_POST['gebied'])){
    $gebied = mysql_real_escape_string($_POST['gebied']);
}else{
    $gebied = mysql_real_escape_string('voornaam');
}
if(isset($_POST['zoekopdr'])){
    $zoekopdr = mysql_real_escape_string($_POST['zoekopdr']);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Telefoonnummers zoeken binnen Vespro</title>

<style>
.rij0 {
    background-color: #FFFFFF;
    }

.rij1 {
    background-color: #F5F5F5;
    }

body {
    background-image: url(back3.jpg);
    background-repeat: repeat-x;
    background-color: #0061AD;
}
</style>
</head>

<body>

<table width="218" align="center" cellspacing="0" bordercolor="#b5bece" bgcolor="#b5bece" class="table_kolom_oranje" id="table_kolom">
  <tr>
    <td id="td_kolom"><img src="logo.png" width="216" height="99" /></td>
  </tr>
  <tr>
    <td bgcolor="#b5bece">
    <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
    <p>Zoeken op:<br>
    <input name="gebied" type="radio" checked="checked" value="voornaam" id="gebied" />
    Voornaam<br>
    <input name="gebied" type="radio" value="achternaam" id="gebied" />
    Achternaam<br>
    <input name="gebied" type="radio" value="afdeling" id="gebied" />    
    Afdeling</p>
      <p>&nbsp;</p>
      <p>Geef uw zoekcriteria in       : <br>
        <input name='zoekopdr' type='text' size="30" /> 
        <br>
        <br>
        <input type="submit" value="Zoeken" />
      </p></form></td>    
  </tr>
  <tr>
    <td></td>
  </tr>
</table>

<?php
if($_SERVER['REQUEST_METHOD'] == "POST"){
//print_r($_POST);
    if($zoekopdr != ""){
    $sql_z = "    SELECT
                    id,
                    voornaam,
                    achternaam,
                    afdeling,
                    telwerk,
                    telmob,
                    email
                FROM
                    contacten
                WHERE
                    ".$gebied." LIKE '" . $zoekopdr."%'
                ";
    $res_z = mysql_query($sql_z) or die (mysql_error());
    
        if(mysql_num_rows($res_z) >= 1){
        ?>
        <p>&nbsp;</p>
        <table width="400" border="0" align="center" cellpadding="3" cellspacing="0">
          <tr bgcolor="#999999">
            <td><strong>Naam</strong></td>
            <td><strong>Afdeling</strong></td>
            <td><strong>Contact gegevens </strong></td>
          </tr>
          <?php
          $color = 1;
          //nu alle resultaten ophalen
          while ($row_z = mysql_fetch_array($res_z)){
          $color ^= 1;
          ?>
          <tr class="rij<?php echo $color;?>">
            <td><?php echo $row_z['voornaam'];?> <?php echo $row_z['achternaam'];?></td>
            <td><?php echo $row_z['afdeling'];?></td>
            <td><?php echo $row_z['telwerk'];?><br /><?php echo $row_z['telmob'];?><br /><a href="mailto:<?php echo $row_z['email'];?>"><?php echo $row_z['email'];?></a></td>
          </tr>
          <?php
          }
          ?>
        </table>
        <?php
        }else{
        echo '<div align="center"><strong>Er zijn geen zoekresultaten gevonden</strong></div>';
        }
    }else{
    echo '<div align="center"><strong>Je moet een zoekopdracht invullen</strong></div>';
    }
}
?>
</body>
</html> 

Het scheelde overigens maar één tekentje ...
super jan,

ik mag jou hulpvaardige bui wel, durf het nu bijna niet meer te vragen nu je probleem 2 zo perfect hebt opgelost maar ik zit nog steeds met probleem 1 en dat is wanneer ik niks selecteer ik ook geen resultaat krijg. moet juist alles krijgen...
Jan is een held!

HULDE!
zeker hulde aan jan...

als iemand anders een oplossing weet voor mijn 1ste probleem,

oplossingen zijn welkom :D

Reageren