
Il form funziona alla perfezione per quello che mi serve: inserisco il dato da ricercare e seleziono mediante radiobox in quale "colonna ricercarlo", fin qui tutto bene, dov'è il problema?
A dire il vero sono 2:
- Non accetta alcun carattere Jolly: ad esempio il forum di ricerca accetta il carattere "*" come carattere Jolly, a me servirebbe una cosa simile: se scrivo A* vorrei che saltassero fuori tutti i membri che iniziano per A
- Il form è case sensitive, e questo è un impiccio: per trovarmi dovrei scrivere "Barrnet" al posto di "barrnet", nel mio caso non è un problema, ma ci sono nick molto complessi in cui vi è una alternanza di lettere maiuscole e minuscole.
Allego il codice del file .php e del template:
Codice: Seleziona tutto
<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();
$nome=$_POST['nome'];
$controllo=$_POST['controllorigoroso'];
if( $controllo == "1" ) {
switch ($_POST['azione']) {
case "1":
$sql = "SELECT * FROM ". USERS_TABLE . ", ". PROFILE_FIELDS_DATA_TABLE . "
WHERE ". USERS_TABLE . ".user_id = ". PROFILE_FIELDS_DATA_TABLE . ".user_id
AND username = '%$nome%'
";
break;
case "2":
$sql = "SELECT * FROM ". USERS_TABLE . ", ". PROFILE_FIELDS_DATA_TABLE . "
WHERE ". USERS_TABLE . ".user_id = ". PROFILE_FIELDS_DATA_TABLE . ".user_id
AND user_from = '%$nome%'
";
break;
case "3":
$sql = "SELECT * FROM ". USERS_TABLE . ", ". PROFILE_FIELDS_DATA_TABLE . "
WHERE ". USERS_TABLE . ".user_id = ". PROFILE_FIELDS_DATA_TABLE . ".user_id
AND pf_skype = '%$nome%'
";
break;
case "4":
$sql = "SELECT * FROM ". USERS_TABLE . ", ". PROFILE_FIELDS_DATA_TABLE . "
WHERE ". USERS_TABLE . ".user_id = ". PROFILE_FIELDS_DATA_TABLE . ".user_id
AND user_email = '%$nome%'
";
break;
case "5":
$sql = "SELECT * FROM ". USERS_TABLE . ", ". PROFILE_FIELDS_DATA_TABLE . "
WHERE ". USERS_TABLE . ".user_id = ". PROFILE_FIELDS_DATA_TABLE . ".user_id
AND pf_facebook = '%$nome%'
";
break;
case "6":
$sql = "SELECT * FROM ". USERS_TABLE . ", ". PROFILE_FIELDS_DATA_TABLE . "
WHERE ". USERS_TABLE . ".user_id = ". PROFILE_FIELDS_DATA_TABLE . ".user_id
AND pf_cell = '%$nome%'
";
break;
default:
$sql = "SELECT * FROM ". USERS_TABLE . ", ". PROFILE_FIELDS_DATA_TABLE . "
WHERE ". USERS_TABLE . ".user_id = ". PROFILE_FIELDS_DATA_TABLE . ".user_id
AND user_type NOT IN ('2')
";
break;
}
} else {
switch ($_POST['azione']) {
case "1":
$sql = "SELECT * FROM ". USERS_TABLE . ", ". PROFILE_FIELDS_DATA_TABLE . "
WHERE ". USERS_TABLE . ".user_id = ". PROFILE_FIELDS_DATA_TABLE . ".user_id
AND username LIKE '%$nome%'
";
break;
case "2":
$sql = "SELECT * FROM ". USERS_TABLE . ", ". PROFILE_FIELDS_DATA_TABLE . "
WHERE ". USERS_TABLE . ".user_id = ". PROFILE_FIELDS_DATA_TABLE . ".user_id
AND user_from LIKE '%$nome%'
";
break;
case "3":
$sql = "SELECT * FROM ". USERS_TABLE . ", ". PROFILE_FIELDS_DATA_TABLE . "
WHERE ". USERS_TABLE . ".user_id = ". PROFILE_FIELDS_DATA_TABLE . ".user_id
AND pf_skype LIKE '%$nome%'
";
break;
case "4":
$sql = "SELECT * FROM ". USERS_TABLE . ", ". PROFILE_FIELDS_DATA_TABLE . "
WHERE ". USERS_TABLE . ".user_id = ". PROFILE_FIELDS_DATA_TABLE . ".user_id
AND user_email LIKE '%$nome%'
";
break;
case "5":
$sql = "SELECT * FROM ". USERS_TABLE . ", ". PROFILE_FIELDS_DATA_TABLE . "
WHERE ". USERS_TABLE . ".user_id = ". PROFILE_FIELDS_DATA_TABLE . ".user_id
AND pf_facebook LIKE '%$nome%'
";
break;
case "6":
$sql = "SELECT * FROM ". USERS_TABLE . ", ". PROFILE_FIELDS_DATA_TABLE . "
WHERE ". USERS_TABLE . ".user_id = ". PROFILE_FIELDS_DATA_TABLE . ".user_id
AND pf_cell LIKE '%$nome%'
";
break;
default:
$sql = "SELECT * FROM ". USERS_TABLE . ", ". PROFILE_FIELDS_DATA_TABLE . "
WHERE ". USERS_TABLE . ".user_id = ". PROFILE_FIELDS_DATA_TABLE . ".user_id
AND user_type NOT IN ('2')
";
break;
}
}
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
$template->assign_block_vars('risultati',array(
'NOME' => $row['username'],
'LOC' => $row['user_from'],
'EMAIL' => $row['user_email'],
'SKYPE' => $row['pf_skype'],
'FACEBOOK' => $row['pf_facebook'],
'CELL' => $row['pf_cell']
));
}
page_header('Lista Utenti');
$template->set_filenames(array(
'body' => 'lista_body.html',
));
make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"));
page_footer();
?>
Codice: Seleziona tutto
<!-- INCLUDE overall_header.html -->
<h2>Elenco contatti membri</h2>
<!-- IF U_ACP -->
<span><form method='post'>
Dato da Ricercare <input size='16' name='nome' value=''>
<input type="radio" name="azione" value="1" checked="checked">Nome Utente
<input type="radio" name="azione" value="2" >Località
<input type="radio" name="azione" value="3">Skype
<input type="radio" name="azione" value="4">Email
<input type="radio" name="azione" value="5">Facebook
<input type="radio" name="azione" value="6"> Cell.
<input type="radio" name="azione" value="0"> Resetta
<input type="checkbox" name="controllorigoroso" value="1">Controllo Rigoroso
<input type='submit' name='Apply'></form>
</span>
<div class="forabg">
<div class="inner"><span class="corners-top"><span></span></span>
<ul class="topiclist">
<li class="header">
<dl class="icon">
<dd style="width: 15%"> Nome Utente </dd>
<dd style="width: 15%"> Località</dd>
<dd style="width: 15%"> Contatto Skype</dd>
<dd style="width: 15%"> Email</dd>
<dd style="width: 15%"> Facebook</dd>
<dd style="width: 15%"> Cell.</dd>
</dl>
</li>
</ul>
<ul class="topiclist forums">
<!-- BEGIN risultati -->
<li>
<dl>
<dd style="width: 15%; padding: 3px; border-bottom: 1px solid #cdcdcd;"> {risultati.NOME}</dd>
<dd style="width: 15%; padding: 3px 0; border-bottom: 1px solid #cdcdcd;"> {risultati.LOC}</dd>
<dd style="width: 15%; padding: 3px 0; border-bottom: 1px solid #cdcdcd;"> {risultati.SKYPE}</dd>
<dd style="width: 15%; padding: 3px 0; border-bottom: 1px solid #cdcdcd;"> <a href="mailto:{risultati.EMAIL}">{risultati.EMAIL}</a></dd>
<dd style="width: 15%; padding: 3px 0; border-bottom: 1px solid #cdcdcd;"> {risultati.FACEBOOK}</dd>
<dd style="width: 15%; padding: 3px 0; border-bottom: 1px solid #cdcdcd;"> {risultati.CELL}</dd>
</dl>
</li>
<!-- END risultati -->
</ul>
<span class="corners-bottom"><span></span></span>
</div>
</div>
<!-- ELSE -->
<p>Spiacente, non hai i permessi per visualizzare questa pagina.</p>
<!-- ENDIF -->
<!-- INCLUDE overall_footer.html -->
Ho aggiornato i codici di questa pagina con la versione che sto adoperando, magari servirà a qualcuno
