Időzóna: (GMT +1 óra) RSS - hozzászólások

Kereső MOD

Szerző
Üzenet
Vesta
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2007.05.15. Kedd 22:29
Hozzászólások: 266
Hozzászólás Elküldve: 2007.09.22. 21:35    Hozzászólás témája:
Hozzászólás az előzmény idézésével
várom, köszönöm

Felhasználó profiljának megtekintése Privát üzenet küldése Felhasználó weblapjának megtekintése
Marcee
Adminisztrátor
Adminisztrátor
Avatar

Csatlakozott: 2006.01.17. Kedd 1:00
Hozzászólások: 2921
Hozzászólás Elküldve: 2007.09.24. 16:43    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Itt a sokkal tökéletesebb, intelligensebb változat.
A HTML:

Kód:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html dir="ltr">
<head>
<style type="text/css">
.post {
  width: 200px;
}
.post_mini {
  width: 30px;
}
</style>
</head>
<body>
<form name="tagkereses" action="tagkereses.php" method="GET">
<p class="focimek">Keresés az adatbázisban</p>
<table width="100%" border="0" cellspacing="0">

<tr>
   <td>Név vagy név részlete:</td>
   <td>
      <input type="text" class="post" name="username" id="tagkereses_username" maxlength="100">
   </td>
</tr>

<tr>
   <td>Nem:</td>
   <td>
      <select name="gender" size="1" id="tagkereses_user_gender">
      <option value="2">Nő</option>
      <option value="1">Férfi</option>
      </select>
   </td>
</tr>

<tr>
   <td>Tartózkodási hely:</td>
   <td>
      <input type="text" class="post" name="user_from" id="tagkereses_user_from" maxlength="100">
   </td>
</tr>

<tr>
   <td>Életkor:</td>
   <td>
      <input type="text" class="post_mini" name="info_min" id="tagkereses_user_info_min" maxlength="2"> -
    <input type="text" class="post_mini" name="info_max" id="tagkereses_user_info_max" maxlength="2"> év
   </td>
</tr>


<tr>
   <td>Testmagasság:</td>
   <td>
      <input type="text" class="post_mini" name="hei_min" id="tagkereses_user_hei_min" maxlength="3"> -
    <input type="text" class="post_mini" name="hei_max" id="tagkereses_user_hei_max" maxlength="3"> cm
   </td>
</tr>

<tr>
   <td>Testsúly:</td>
   <td>
      <input type="text" class="post_mini" name="wei_min" id="tagkereses_user_wei_min" maxlength="3"> -
    <input type="text" class="post_mini" name="wei_max" id="tagkereses_user_wei_max" maxlength="3"> kg
   </td>
</tr>

<tr>
   <td>&nbsp;</td>
   <td><input type="submit" name="kereses" id="tagkereses_kereses" value="Keresés"></td>
</tr>
</body>
</html>
és a PHP:

Kód:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html dir="ltr">
<head>
</head>
<body>
<h1>Keresés</h1>
<?php
// Kapcsolódási adatok beállítása
$dbhost = '*****';
$dbuser = '*****';
$dbpasswd = '*****';
$dbname = '*****';
$table_prefix = '*****';
// Ha a phpBB kapcsolati adatait szeretnéd használni töröld ki a következő sor elejéről a két perjelet
//require_once('config.php');

// Maximum hány találat jelenjen meg a listában
$max_talalat = 100;

// Hibakeresési mód, éles használatnál majd állítsd "false"-ra!
// $debug_mode = false;
$debug_mode = true;

// Beállítások vége ============================================

// Kapcsolódás az adatbázishoz
$kapcsolat = @mysql_connect($dbhost, $dbuser, $dbpasswd) or ( $debug_mode==true? die('<p>Hiba a szerverhez csatlakozáskor:<br>'.mysql_error().'</p></body></html>') : die('<p>Adatbázis hiba, kérlek próbáld meg később! (CONNECT)</p></body></html>') );
@mysql_select_db($dbname, $kapcsolat) or ( $debug_mode==true? die('<p>Hiba az adatbázis kiválasztásakor:<br>'.mysql_error().'</p></body></html>') : die('<p>Adatbázis hiba, kérlek próbáld meg később! (SELECT)</p></body></html>') );

// Értékek lekérdezése
$username = mysql_real_escape_string($_GET['username']); // Felhasználónév
$user_gender = mysql_real_escape_string($_GET['gender']); // Nem
$user_from = mysql_real_escape_string($_GET['user_from']); // Lakóhely
$user_info_min = mysql_real_escape_string($_GET['info_min']); // Minimum életkor
$user_info_max = mysql_real_escape_string($_GET['info_max']); // Maximum életkor
$user_hei_min = mysql_real_escape_string($_GET['hei_min']); // Minimum magasság
$user_hei_max = mysql_real_escape_string($_GET['hei_max']); // Maximum magasság
$user_wei_min = mysql_real_escape_string($_GET['wei_min']); // Minimum testsúly
$user_wei_max = mysql_real_escape_string($_GET['wei_max']); // Maxmimum testsúly

// Értékek típusainka ellenőrzése, ha nem az, ami, akkor eldobjuk - a genderről nem tudok semmit, emiatt ott csak azt tudjuk ellenőrizni, hogy üres-e
if (!is_string($username)) $username = '';
if (!is_string($user_from)) $user_from = '';
if (!is_numeric($user_info_min)) $user_info_min = '';
if (!is_numeric($user_info_max)) $user_info_max = '';
if (!is_numeric($user_hei_min)) $user_hei_min = '';
if (!is_numeric($user_hei_max)) $user_hei_max = '';
if (!is_numeric($user_wei_min)) $user_wei_min = '';
if (!is_numeric($user_wei_max)) $user_wei_max = '';
if (empty($user_gender)) $user_gender='1'; // Valamelyik nemet kiválasztjuk alapértelmezettnek

// Ellenőrizzük, hogy a kisebb-nagyobb értékek nem lettek-e felcserélve, ha fel lettek, akkor visszacseréljük őket
if ( (intval($user_info_min) > intval($user_info_max)) && (intval($user_info_max) != 0) ) {
   $seged = $user_info_max;
   $user_info_max = $user_info_min;
   $user_info_min = $seged;
}
if ( (intval($user_hei_min )> intval($user_hei_max)) && (intval($user_hei_max) != 0) ) {
   $seged = $user_hei_max;
   $user_hei_max = $user_hei_min;
   $user_hei_min = $seged;
}
if ( (intval($user_wei_min) > intval($user_wei_max)) && (intval($user_wei_max) != 0) ) {
   $seged = $user_wei_max;
   $user_wei_max = $user_wei_min;
   $user_wei_min = $seged;
}

// Eredménylista fejlécének legyártása
$eredmenylista_fejlec = 'A(z) ';
if (!empty($username)) $eredmenylista_fejlec .= ' <b>'.$username.'</b> névtöredékű,';
if (!empty($user_from)) $eredmenylista_fejlec .= ' <b>'.$user_from.'</b> lakóhelyű,';
if (!empty($user_info_min)) $eredmenylista_fejlec .= ' <b>'.$user_info_min.(!empty($user_info_max)?'-'.$user_info_max:'').'</b> éves,';
if (!empty($user_hei_min)) $eredmenylista_fejlec .= ' <b>'.$user_hei_min.(!empty($user_hei_max)?'-'.$user_hei_max:'').'</b> cm magasságú,';
if (!empty($user_wei_min)) $eredmenylista_fejlec .= ' <b>'.$user_wei_min.(!empty($user_wei_max)?'-'.$user_wei_max:'').'</b> kg súlyú,';
$eredmenylista_fejlec .= ' '.($user_gender==1?'<b>férfi</b>':'<b>nő</b>');
$eredmenylista_fejlec .= ' tagjaink listája'; // A kettőspontot a kiírásnál rakjuk bele

// Ha a tartományon értelmezett értékeknél csak a minimumot adják meg, akkor csak arra az egy konkrét értékre fog keresni
// Például: 30-35 év --> 30-35 év, de 30-üres év --> csak a 30 évesekre fog keresni
if ( (!empty($user_info_min)) && (empty($user_info_max)) ) $user_info_max = $user_info_min;
if ( (!empty($user_hei_min)) && (empty($user_hei_max)) ) $user_hei_max = $user_hei_min;
if ( (!empty($user_wei_min)) && (empty($user_wei_max)) ) $user_wei_max = $user_wei_min;

// Felépítjük a lekérdezést
$lekerdezes = 'SELECT * FROM '.$table_prefix.'users WHERE user_id!=-1 AND user_gender='.$user_gender;
if (!empty($username)) $lekerdezes .= ' AND username LIKE "%'.$username.'%"';
if (!empty($user_from)) $lekerdezes .= ' AND user_from LIKE "%'.$user_from.'%"';
if ( (!empty($user_info_min)) && (!empty($user_info_max)) ) $lekerdezes .= ' AND user_info BETWEEN '.$user_info_min.' AND '.$user_info_max;
if ( (!empty($user_hei_min)) && (!empty($user_hei_max)) ) $lekerdezes .= ' AND user_hei BETWEEN '.$user_hei_min.' AND '.$user_hei_max;
if ( (!empty($user_wei_min)) && (!empty($user_wei_max)) ) $lekerdezes .= ' AND user_wei BETWEEN '.$user_wei_min.' AND '.$user_wei_max;
$lekerdezes .= ' ORDER BY username LIMIT '.$max_talalat;

// Ha hibát keresünk kiíratjuk az SQL parancsot
if ($debug_mode == true) echo ('<pre>'.$lekerdezes.'</pre>');

$eredmeny=mysql_query($lekerdezes, $kapcsolat) or ( $debug_mode==true ? die('<p>'.mysql_error().'</p></body></html>') : die('<p>Hiba történt a keresés közben.</p></body></html>') );
$sorok_szama=mysql_num_rows($eredmeny);

// Eredménylista fejlécének kiírása
echo '<p>'.$eredmenylista_fejlec.($sorok_szama!=0 ? ' ('.$sorok_szama.' találat)' : '').':</p>';

// Ha nincs semmi
if ($sorok_szama == 0){
  echo '<p>Sajnálom, a keresés nem járt sikerrel.</p>
   <p><a href="tagkereses.html">Új keresés</a></p>
   </body>
   </html>';
   mysql_close($kapcsolat);
   exit;
}

// A táblázat fejléce - mivel a lekérdezésben az összes adatot lekérjük nyugodtan bővítheted a listát további oszlopokkal
echo '<table>
   <thead>
   <tr>
   <td>Név</td>
   <td>Tartózkodási hely</td>
   <td>Kor</td>
   <td>Testmagasság</td>
   <td>Testsúly</td>
   </tr>
   </thead>
   <tbody>';

// A táblázat sorai
while($talalat = mysql_fetch_assoc($eredmeny)){
   echo '<tr>
      <td><a href="profile.php?mode=viewprofile&u='.$talalat['user_id'].'">'.$talalat['username'].'</a></td>
      <td>'.$talalat['user_from'].'</td>
      <td>'.$talalat['user_info'].' év</td>
      <td>'.$talalat['user_hei'].' cm</td>
      <td>'.$talalat['user_wei'].' kg</td>
      </tr>';
}

// Takarítás
mysql_free_result($eredmeny);
mysql_close($kapcsolat);
?>
</tbody>
</table>
<p><a href="tagkereses.html">Új keresés</a></p>
</body>
</html>
A nemet még mindig nem tudom, hogy milyen formában tárolod, így maradtam a férfi - 1, nő - 2 módszernél, ezt a HTML fájl 29-30. soraiban tudod megváltoztatni a value értékeknél.

Felhasználó profiljának megtekintése Privát üzenet küldése
Vesta
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2007.05.15. Kedd 22:29
Hozzászólások: 266
Hozzászólás Elküldve: 2007.09.24. 19:28    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Igen, most tökéletes! Nagyon köszönöm!

Felhasználó profiljának megtekintése Privát üzenet küldése Felhasználó weblapjának megtekintése
Marcee
Adminisztrátor
Adminisztrátor
Avatar

Csatlakozott: 2006.01.17. Kedd 1:00
Hozzászólások: 2921
Hozzászólás Elküldve: 2007.09.24. 20:40    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Úgy látom a mértékegységeket kétszer írja ki, a felesleget a PHP fájl 131-133. soraiból tudod kitörölni, az SQL parancs megjelenítését -és hiba esetén a szószátyár üzemmódot- pedig a 22. sorban tudod kikapcsolni. Ha kikapcsolod, akkor adatbázis probléma esetén nem egy száraz, angol nyelvű hibaüzenetet fog a látogatóid fejéhez vágni, hanem egy udvarias, magyar nyelvű szöveggel kéri meg őket a későbbi próbálkozásra. ;)

Felhasználó profiljának megtekintése Privát üzenet küldése
Vesta
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2007.05.15. Kedd 22:29
Hozzászólások: 266
Hozzászólás Elküldve: 2007.09.25. 13:17    Hozzászólás témája:
Hozzászólás az előzmény idézésével
tökéletesen működik

annyi hiba van csak, hogy a hosszú ű és ő bet? :-) helyett kérdőjelet ír a lekérdezésnél...

pl. Gödöll?

Felhasználó profiljának megtekintése Privát üzenet küldése Felhasználó weblapjának megtekintése
Marcee
Adminisztrátor
Adminisztrátor
Avatar

Csatlakozott: 2006.01.17. Kedd 1:00
Hozzászólások: 2921
Hozzászólás Elküldve: 2007.09.25. 20:04    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Próbálj meg beszúrni a

Kód:

mysql_select_db
kezdetű sor után ezt:

Kód:

@mysql_query('SET NAMES latin2');

Felhasználó profiljának megtekintése Privát üzenet küldése
Vesta
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2007.05.15. Kedd 22:29
Hozzászólások: 266
Hozzászólás Elküldve: 2007.09.25. 22:13    Hozzászólás témája:
Hozzászólás az előzmény idézésével
tökéletes!

egy sörre majd valamikor ;-)

Felhasználó profiljának megtekintése Privát üzenet küldése Felhasználó weblapjának megtekintése
Vesta
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2007.05.15. Kedd 22:29
Hozzászólások: 266
Hozzászólás Elküldve: 2007.11.26. 21:48    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Help!

Igen szépen felfejlődött az oldal, eszközöltem pár módosítást. Most jöttem rá, hogy az egyiket kár volt...

A gender az értékeket eddig "1" nő és "2" férfi alapján vette...

most "nő" és "férfi" van elmentve az sql-ben...

viszont azt meg nem ismeri fel az ékezet miatt...

Hibaüzenet:
SELECT * FROM phpbb_users WHERE user_id!=-1 AND user_act=Nő ORDER BY username LIMIT 100
Unknown column 'NĹ‘' in 'where clause'

Mit csináljak? Nem akarom visszaállítani "1" és "2"-re ,mert már igen sokan regiztek fel...

Felhasználó profiljának megtekintése Privát üzenet küldése Felhasználó weblapjának megtekintése
fberci
Adminisztrátor
Adminisztrátor
Avatar

Csatlakozott: 2005.05.28. Szombat 1:00
Hozzászólások: 7388
Hozzászólás Elküldve: 2007.11.26. 22:49    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Egyrészt egy egyszerű paranccsalk vissza lehet állítani a numerikus értékeket, másrészt pedig az SQL lekérésekben az értékeket legtöbb esetben idézőjelek közé kell tenni, tehát pl.

Kód:

SELECT * FROM phpbb_users WHERE user_id != -1 AND user_act = 'Nő' ORDER BY username LIMIT 100

_________________
Üdv.: fberci
Kereső | Szabályzat | phpBB3 telepítés/frissítés/konvertálás | Útmutatók | Olympus - phpBB3 | Kérlek, ne küldj privát üzenetet nem személyes dologgal kapcsolatban!

Felhasználó profiljának megtekintése Privát üzenet küldése Felhasználó weblapjának megtekintése
Vesta
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2007.05.15. Kedd 22:29
Hozzászólások: 266
Hozzászólás Elküldve: 2007.11.27. 16:17    Hozzászólás témája:
Hozzászólás az előzmény idézésével
hol a hiba?

html:

Kód:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <style type="text/css">
.post {
width: 200px;
}
.post_mini {
width: 30px;
}
  </style>
<title></title>
</head>
<body>
<form name="tagkereses"
 action="tagkereses.php" method="get">
  <p class="focimek">Keres&eacute;s
az adatb&aacute;zisban</p>
  <table border="0" cellspacing="0"
 width="100%">
    <tbody>
      <tr>
        <td>N&eacute;v vagy
n&eacute;v r&eacute;szlete:</td>
        <td> <input
 class="post" name="username" id="tagkereses_username"
 maxlength="100" type="text"></td>
      </tr>
      <tr>
        <td>Nem:</td>
        <td>
        <select name="act" size="Nő"
 id="tagkereses_user_act">
        <option value="1">Nő</option>
        <option value="2">F&eacute;rfi</option>
        </select>
        </td>
      </tr>
      <tr>
        <td>Tart&oacute;zkod&aacute;si
hely:</td>
        <td> <input
 class="post" name="user_from" id="tagkereses_user_from"
 maxlength="100" type="text"></td>
      </tr>
      <tr>
        <td>&Eacute;letkor:</td>
        <td> <input
 class="post_mini" name="info_min"
 id="tagkereses_user_info_min" maxlength="2" type="text">-
        <input class="post_mini"
 name="info_max" id="tagkereses_user_info_max"
 maxlength="2" type="text"> &eacute;v </td>
      </tr>
      <tr>
        <td>Testmagass&aacute;g:</td>
        <td> <input
 class="post_mini" name="hei_min"
 id="tagkereses_user_hei_min" maxlength="3" type="text">-
        <input class="post_mini"
 name="hei_max" id="tagkereses_user_hei_max" maxlength="3"
 type="text"> cm </td>
      </tr>
      <tr>
        <td>Tests&uacute;ly:</td>
        <td> <input
 class="post_mini" name="wei_min"
 id="tagkereses_user_wei_min" maxlength="3" type="text">-
        <input class="post_mini"
 name="wei_max" id="tagkereses_user_wei_max" maxlength="3"
 type="text"> kg </td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td><input
 name="kereses" id="tagkereses_kereses" value="Keres&eacute;s"
 type="submit"></td>
      </tr>
    </tbody>
  </table>
</form>
</body>
</html>

php:

Kód:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html dir="ltr">
<head>
</head>
<body>
<h1>Keresés</h1>
<?php
// Kapcsolódási adatok beállítása
$dbhost = 'xxx';
$dbuser = 'xxx';
$dbpasswd = 'xxx';
$dbname = 'xxx';
$table_prefix = 'phpbb_';
// Ha a phpBB kapcsolati adatait szeretnéd használni töröld ki a következő sor elejéről a két perjelet
//require_once('config.php');

// Maximum hány találat jelenjen meg a listában
$max_talalat = 100;

// Hibakeresési mód, éles használatnál majd állítsd "false"-ra!
// $debug_mode = false;
$debug_mode = true;

// Beállítások vége ============================================

// Kapcsolódás az adatbázishoz
$kapcsolat = @mysql_connect($dbhost, $dbuser, $dbpasswd) or ( $debug_mode==true? die('<p>Hiba a szerverhez csatlakozáskor:<br>'.mysql_error().'</p></body></html>') : die('<p>Adatbázis hiba, kérlek próbáld meg később! (CONNECT)</p></body></html>') );
@mysql_select_db($dbname, $kapcsolat) or ( $debug_mode==true? die('<p>Hiba az adatbázis kiválasztásakor:<br>'.mysql_error().'</p></body></html>') : die('<p>Adatbázis hiba, kérlek próbáld meg később! (SELECT)</p></body></html>') );
@mysql_query('SET NAMES latin2');

// Értékek lekérdezése
$username = mysql_real_escape_string($_GET['username']); // Felhasználónév
$user_act = mysql_real_escape_string($_GET['act']); // Nem
$user_from = mysql_real_escape_string($_GET['user_from']); // Lakóhely
$user_info_min = mysql_real_escape_string($_GET['info_min']); // Minimum életkor
$user_info_max = mysql_real_escape_string($_GET['info_max']); // Maximum életkor
$user_hei_min = mysql_real_escape_string($_GET['hei_min']); // Minimum magasság
$user_hei_max = mysql_real_escape_string($_GET['hei_max']); // Maximum magasság
$user_wei_min = mysql_real_escape_string($_GET['wei_min']); // Minimum testsúly
$user_wei_max = mysql_real_escape_string($_GET['wei_max']); // Maxmimum testsúly

// Értékek típusainka ellenőrzése, ha nem az, ami, akkor eldobjuk - a genderről nem tudok semmit, emiatt ott csak azt tudjuk ellenőrizni, hogy üres-e
if (!is_string($username)) $username = '';
if (!is_string($user_from)) $user_from = '';
if (!is_numeric($user_info_min)) $user_info_min = '';
if (!is_numeric($user_info_max)) $user_info_max = '';
if (!is_numeric($user_hei_min)) $user_hei_min = '';
if (!is_numeric($user_hei_max)) $user_hei_max = '';
if (!is_numeric($user_wei_min)) $user_wei_min = '';
if (!is_numeric($user_wei_max)) $user_wei_max = '';
if (empty($user_act)) $user_act='Nő'; // Valamelyik nemet kiválasztjuk alapértelmezettnek

// Ellenőrizzük, hogy a kisebb-nagyobb értékek nem lettek-e felcserélve, ha fel lettek, akkor visszacseréljük őket
if ( (intval($user_info_min) > intval($user_info_max)) && (intval($user_info_max) != 0) ) {
   $seged = $user_info_max;
   $user_info_max = $user_info_min;
   $user_info_min = $seged;
}
if ( (intval($user_hei_min )> intval($user_hei_max)) && (intval($user_hei_max) != 0) ) {
   $seged = $user_hei_max;
   $user_hei_max = $user_hei_min;
   $user_hei_min = $seged;
}
if ( (intval($user_wei_min) > intval($user_wei_max)) && (intval($user_wei_max) != 0) ) {
   $seged = $user_wei_max;
   $user_wei_max = $user_wei_min;
   $user_wei_min = $seged;
}

// Eredménylista fejlécének legyártása
$eredmenylista_fejlec = 'A(z) ';
if (!empty($username)) $eredmenylista_fejlec .= ' <b>'.$username.'</b> névtöredékű,';
if (!empty($user_from)) $eredmenylista_fejlec .= ' <b>'.$user_from.'</b> lakóhelyű,';
if (!empty($user_info_min)) $eredmenylista_fejlec .= ' <b>'.$user_info_min.(!empty($user_info_max)?'-'.$user_info_max:'').'</b> éves,';
if (!empty($user_hei_min)) $eredmenylista_fejlec .= ' <b>'.$user_hei_min.(!empty($user_hei_max)?'-'.$user_hei_max:'').'</b> cm magasságú,';
if (!empty($user_wei_min)) $eredmenylista_fejlec .= ' <b>'.$user_wei_min.(!empty($user_wei_max)?'-'.$user_wei_max:'').'</b> kg súlyú,';
$eredmenylista_fejlec .= ' '.($user_act==Nő?'<b>férfi</b>':'<b>nő</b>');
$eredmenylista_fejlec .= ' tagjaink listája'; // A kettőspontot a kiírásnál rakjuk bele

// Ha a tartományon értelmezett értékeknél csak a minimumot adják meg, akkor csak arra az egy konkrét értékre fog keresni
// Például: 30-35 év --> 30-35 év, de 30-üres év --> csak a 30 évesekre fog keresni
if ( (!empty($user_info_min)) && (empty($user_info_max)) ) $user_info_max = $user_info_min;
if ( (!empty($user_hei_min)) && (empty($user_hei_max)) ) $user_hei_max = $user_hei_min;
if ( (!empty($user_wei_min)) && (empty($user_wei_max)) ) $user_wei_max = $user_wei_min;

// Felépítjük a lekérdezést
$lekerdezes = 'SELECT * FROM '.$table_prefix.'users WHERE user_id!=-1 AND user_act='.$user_act;
if (!empty($username)) $lekerdezes .= ' AND username LIKE "%'.$username.'%"';
if (!empty($user_from)) $lekerdezes .= ' AND user_from LIKE "%'.$user_from.'%"';
if ( (!empty($user_info_min)) && (!empty($user_info_max)) ) $lekerdezes .= ' AND user_info BETWEEN '.$user_info_min.' AND '.$user_info_max;
if ( (!empty($user_hei_min)) && (!empty($user_hei_max)) ) $lekerdezes .= ' AND user_hei BETWEEN '.$user_hei_min.' AND '.$user_hei_max;
if ( (!empty($user_wei_min)) && (!empty($user_wei_max)) ) $lekerdezes .= ' AND user_wei BETWEEN '.$user_wei_min.' AND '.$user_wei_max;
$lekerdezes .= ' ORDER BY username LIMIT '.$max_talalat;

// Ha hibát keresünk kiíratjuk az SQL parancsot
if ($debug_mode == true) echo ('<pre>'.$lekerdezes.'</pre>');

$eredmeny=mysql_query($lekerdezes, $kapcsolat) or ( $debug_mode==true ? die('<p>'.mysql_error().'</p></body></html>') : die('<p>Hiba történt a keresés közben.</p></body></html>') );
$sorok_szama=mysql_num_rows($eredmeny);

// Eredménylista fejlécének kiírása
echo '<p>'.$eredmenylista_fejlec.($sorok_szama!=0 ? ' ('.$sorok_szama.' találat)' : '').':</p>';

// Ha nincs semmi
if ($sorok_szama == 0){
  echo '<p>Sajnálom, a keresés nem járt sikerrel.</p>
   <p><a href="tagkereses.html">Új keresés</a></p>
   </body>
   </html>';
   mysql_close($kapcsolat);
   exit;
}

// A táblázat fejléce - mivel a lekérdezésben az összes adatot lekérjük nyugodtan bővítheted a listát további oszlopokkal
echo '<table>
   <thead>
   <tr>
   <td>Név</td>
   <td>Tartózkodási hely</td>
   <td>Kor</td>
   <td>Testmagasság</td>
   <td>Testsúly</td>
   </tr>
   </thead>
   <tbody>';

// A táblázat sorai
while($talalat = mysql_fetch_assoc($eredmeny)){
   echo '<tr>
      <td><a href="profile.php?mode=viewprofile&u='.$talalat['user_id'].'">'.$talalat['username'].'</a></td>
      <td>'.$talalat['user_from'].'</td>
      <td>'.$talalat['user_info'].' év</td>
      <td>'.$talalat['user_hei'].' cm</td>
      <td>'.$talalat['user_wei'].' kg</td>
      </tr>';
}

// Takarítás
mysql_free_result($eredmeny);
mysql_close($kapcsolat);
?>
</tbody>
</table>
<p><a href="tagkereses.html">Új keresés</a></p>
</body>
</html>

Felhasználó profiljának megtekintése Privát üzenet küldése Felhasználó weblapjának megtekintése
Vesta
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2007.05.15. Kedd 22:29
Hozzászólások: 266
Hozzászólás Elküldve: 2007.11.28. 19:49    Hozzászólás témája:
Hozzászólás az előzmény idézésével

Kód:

Egyrészt egy egyszerű paranccsalk vissza lehet állítani a numerikus értékeket, másrészt pedig az SQL lekérésekben az értékeket legtöbb esetben idézőjelek közé kell tenni, tehát pl.
Kód:

SELECT * FROM phpbb_users WHERE user_id != -1 AND user_act = 'Nő' ORDER BY username LIMIT 100
 


A hibaüzenetet írtam le, abban nehéz módosítanom. Beillesztettem a kódot, vannak idézőjelek. Tudtok segíteni?

Felhasználó profiljának megtekintése Privát üzenet küldése Felhasználó weblapjának megtekintése
Marcee
Adminisztrátor
Adminisztrátor
Avatar

Csatlakozott: 2006.01.17. Kedd 1:00
Hozzászólások: 2921
Hozzászólás Elküldve: 2007.11.28. 21:06    Hozzászólás témája:
Hozzászólás az előzmény idézésével
A beszúrt PHP kódodban a következő sorok hibásan lettek módosítva:

Kód:

$eredmenylista_fejlec .= ' '.($user_act==Nő?'<b>férfi</b>':'<b>nő</b>');
Javítsd át erre:

Kód:

$eredmenylista_fejlec .= ' '.($user_act=='Nő'?'<b>férfi</b>':'<b>nő</b>');


Kód:

$lekerdezes = 'SELECT * FROM '.$table_prefix.'users WHERE user_id!=-1 AND user_act='.$user_act;
erre:

Kód:

$lekerdezes = 'SELECT * FROM '.$table_prefix.'users WHERE user_id!=-1 AND user_act="'.$user_act.'"';

És a html fájlban:

Kód:

<select name="act" size="Nő" id="tagkereses_user_act">
sort is javítsd át erre:

Kód:

<select name="act" size="1" id="tagkereses_user_act">

Felhasználó profiljának megtekintése Privát üzenet küldése
Vesta
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2007.05.15. Kedd 22:29
Hozzászólások: 266
Hozzászólás Elküldve: 2007.11.29. 15:25    Hozzászólás témája:
Hozzászólás az előzmény idézésével
A módosítások után is ezt kapom:

Keresés
SELECT * FROM phpbb_users WHERE user_id!=-1 AND user_act="1" ORDER BY username LIMIT 100
A(z) nő tagjaink listája:

Sajnálom, a keresés nem járt sikerrel.

Új keresés

Felhasználó profiljának megtekintése Privát üzenet küldése Felhasználó weblapjának megtekintése
Marcee
Adminisztrátor
Adminisztrátor
Avatar

Csatlakozott: 2006.01.17. Kedd 1:00
Hozzászólások: 2921
Hozzászólás Elküldve: 2007.11.29. 17:42    Hozzászólás témája:
Hozzászólás az előzmény idézésével
A html fájlodban írt át a következő sorokban az 1, 2 értékeket férfira, nőre:

Kód:

<option value="1">Nő</option>
<option value="2">F&eacute;rfi</option>


Úgy látom (már ha jó oldalt nézek) a találati lista neveinél hibásak a profilok linkjei, azt a következő sorban tudod javítani:

Kód:

<td><a href="profile.php?mode=viewprofile&u='.$talalat['user_id'].'">'.$talalat['username'].'</a></td>
Bővítsd ki az elejét:

Kód:

<td><a href="forum/profile.php?mode=viewprofile&u='.$talalat['user_id'].'">'.$talalat['username'].'</a></td>

Felhasználó profiljának megtekintése Privát üzenet küldése
Vesta
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2007.05.15. Kedd 22:29
Hozzászólások: 266
Hozzászólás Elküldve: 2007.11.29. 18:19    Hozzászólás témája:
Hozzászólás az előzmény idézésével
jó lett :-)

Felhasználó profiljának megtekintése Privát üzenet küldése Felhasználó weblapjának megtekintése
Hozzászólások megtekintése:  

Időzóna: (GMT +1 óra) RSS - hozzászólások
Nem készíthetsz új témákat ebben a fórumban.
Nem válaszolhatsz egy témára ebben a fórumban.
Nem módosíthatod a hozzászólásaidat a fórumban.
Nem törölheted a hozzászólásaidat a fórumban.
Nem szavazhatsz ebben fórumban.

Hirdetés
Hirdetés