Hey,

Ik zou alle waarden tussen x en y uit een database moeten kunnen halen ... (het zijn getallen)

Hoe kan ik dit het beste doen?

Alvast bedankt!
Mgv,
steven
**steven** schreef op 27.06.2007 21:12
Hey,

Ik zou alle waarden tussen x en y uit een database moeten kunnen halen ... (het zijn getallen)

Hoe kan ik dit het beste doen?

Alvast bedankt!
Mgv,
steven



Gebruik hiervoor eventueel de BETWEEN functie

(voorbeel):

<?PHP

/// Query

$query = mysql_query("SELECT * FROM <tabel-naam> WHERE <veld-naam> BETWEEN <waarde> AND <waarde>") or die ('kan niet ophalen '. mysql_error());
$res = mysql_fetch_assoc($query);

?>

groetjes en succes...
Ik heb iets geprobeerd ... ik kan de specificaties opgeven ...
Maar als ik op de button search druk dan krijg ik altijd


       SELECT 
        user_id,
        user_name,
		user_dateofbirth,
		user_gender
       FROM
        tbl_users
	   WHERE
        user_dateofbirth BETWEEN 1997-08-02 AND 1957-08-02
	   AND
	     user_gender = male
       


Dit is het volledige script ...


<?

include("config.php");

if ($_SERVER['REQUEST_METHOD'] == "POST")
{
	extract($_POST); //alle post variabelen ophalen
	  if ($gender == '')
	    {
		echo('Select a gender please!');
		}
		else
		{
		  if ($age1 == '')
		    {
			echo('Enter a starting age please!');
			}
			else
			{
			  if ($age2 == '')
			    {
				echo('Enter a ending age please!');
				}
				else
				{
				
			$year1 = date("Y") - $age1;
			$date1 = $year1 . '-' . date("m") . '-' . date("d") . '';
			$year2 = date("Y") - $age2;
			$date2 = $year2 . '-' . date("m") . '-' . date("d") . '';
					  
	
       $sql = "
       SELECT 
        user_id,
        user_name,
		user_dateofbirth,
		user_gender
       FROM
        tbl_users
	   WHERE
        user_dateofbirth BETWEEN $date1 AND $date2
	   AND
	     user_gender = $gender
       ";

        if (!$res = mysql_query ($sql)) 
	      {
          echo '<pre>';
          trigger_error (mysql_errno() . ': ' . mysql_error());
          echo $sql;
          echo '</pre>';
         }
		 
		 elseif(mysql_num_rows($res) < 1)
      {
	    echo('<center><br><br><br><br><br><font face="Verdana" style="font-size: 11pt" color="#FF9900">No match found!.</font>');
		
      }
		  
         else 
   
         {
         while($row = mysql_fetch_assoc($res))
         {
         echo '<a href="profile.php?act=view&user_id='.$row['user_id'].'"><font face="Verdana" style="font-size: 11pt" color="#000000">Username: '.$row['name'].'';
         echo '<a href="profile.php?act=view&user_id='.$row['user_id'].'"><font face="Verdana" style="font-size: 11pt" color="#000000">( ';
		 $geboorteDatum = $row['user_dateofbirth'];
		 echo age($geboorteDatum);
         echo '<a href="profile.php?act=view&user_id='.$row['user_id'].'"><font face="Verdana" style="font-size: 11pt" color="#000000">'.$row['user_gender'].'<br>';
		 echo '<a href="profile.php?act=view&user_id='.$row['user_id'].'"><font face="Verdana" style="font-size: 11pt" color="#000000">Click Here to vieuw the profile!<br><br>';
         }
         }

   	  }					      

						      }
							}



                                }
                                else
                                {
                                ?>
<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post" name="frm" onSubmit="return checkEmail(this)" enctype="multipart/form-data">
<table width="575" height="113">
  <tr>
    <td height="25"><font face="Verdana" style="font-size: 11pt">Search for a: </font></td>
    <td height="19">&nbsp;</td>
  </tr>
  <tr>
    <td height="25"><p>&nbsp;</p>      </td>
    <td height="19"><select name="gender" size="1" id="gender">
      <option value="male">Male</option>
      <option value="female">Female</option>
            </select>
      <font face="Verdana" style="font-size: 11pt"> (Gender)</font></td>
  </tr>
<tr>
	<td width="172" height="25">
      <div align="right"><font face="Verdana" style="font-size: 11pt">Between:</font></div></td>
	<td width="391" height="19"><font color="#FFFFFF">
	  <input type="text" name="age1" id="type0" size="7"> 
</font><font face="Verdana" style="font-size: 11pt">and </font>	<font color="#FFFFFF">
<input type="text" name="age2" id="bedrijf" size="7">
</font><font face="Verdana" style="font-size: 11pt">(Age)</font></td>
</tr>
<tr>
	<td width="172" height="26">&nbsp;</td>
	<td width="391" height="26"><font color="#FFFFFF">
	  <input type="submit" name="submit" value="Search"></font></td>
</tr>
</table>
</form>
                                <?
                                }
                                ?>
Quotes......

Edit: 1997-08-02
Hier staat 1997 min 08 min 02 en dat is 1987.
Dus doe zo '1997-08-02'
En het zijn toch wel date velden waar je de datum in stopt? Anders werkt het als nog niet namelijk.
SanThe schreef op 02.08.2007 21:27
Quotes......

Edit: 1997-08-02
Hier staat 1997 min 08 min 02 en dat is 1987.
Dus doe zo '1997-08-02'


De bedoeling is dat de mensen de leeftijd van mensen kunnen invullen ... om zo de dames tussen 20 en 25 jaar ofzo te vinden ...

Dus die datum moet aanpasbaar zijn ...


En het zou toch pas min zijn als ik
$vb = $value1 - $value2;
deed ...
Die datum moet je opslaan in een veld type DATE. Aanpasbaar is iets anders. En als je een leeftijd wilt weten kan dat ook met een query.
Niels. schreef op 02.08.2007 21:33
En het zijn toch wel date velden waar je de datum in stopt? Anders werkt het als nog niet namelijk.


Wat bedoel je hier persies mee?
Of de velden in je database van het goede type zijn. Anders werken de datumfuncties van MySQL niet.

Hier heb je trouwens een query om alle mensen tussen de 20 en 25 te selecteren:

SELECT
    (YEAR(CURRENT_DATE()) - YEAR(geboortedatum)) - IF(RIGHT(CURRENT_DATE(),5) < RIGHT(geboortedatum,5),1,0) AS leeftijd,
	voornaam,
	achternaam
FROM tabelnaam
WHERE
	(YEAR(CURRENT_DATE()) - YEAR(geboortedatum)) - IF(RIGHT(CURRENT_DATE(),5) < RIGHT(geboortedatum,5),1,0) BETWEEN 20 AND 25

[edit]Foutje verwijderd[/edit]
Nu krijg ik nog steeds:


SELECT
    (YEAR(CURRENT_DATE()) - YEAR(user_dateofbirth)) - IF(RIGHT(CURRENT_DATE(),5) < RIGHT(user_dateofbirth,5),1,0) AS leeftijd,
    user_id,
	user_name,
    user_gender
FROM tbl_users
WHERE
    (YEAR(CURRENT_DATE()) - YEAR(user_dateofbirth)) - IF(RIGHT(CURRENT_DATE(),5) < RIGHT(user_dateofbirth,5),1,0) BETWEEN 10 AND 50
	AND
	 user_gender = male
       


Het is wel php4 ... ik weet niet dat dat een probleem kan geven ...


Al denk ik niet echt dat het aan de code van de database ligt ...
Want eenderd wat ik erin zet krijg ik dat (andere opbouw dan natuurlijk ...)
PHP4 maakt niet uit. Het script dat je gebruikt, heb je dat helemaal zelf gemaakt?
[edit]Bij dat laatste:
user_gender = male
zou male tussen enkele quotes moeten trouwens
[/edit]

Reageren