ivan919 Posted May 7, 2013 at 10:23 AM Report #506047 Posted May 7, 2013 at 10:23 AM (edited) Boas, Estou a fazer uma aplicação para a escola e agora estou a elaborar o relatório e preciso de tirar uma duvida sobre um bocado de código que ainda não percebi bem para que serve. Nome do cliente: <select name=nome> $sqlc = "SELECT * FROM cliente"; $queryc=mysql_query($sqlc); if ($queryc>0){ echo("<option> </option>"); while($sqlc = mysql_fetch_array($queryc)){ $nome=$sqlc["nome"]; $string = str_replace(' ', '_', $nome); echo("<option value=$string>$string</option>");} }; echo("</select> <input type='submit' name='submit' value='Pesquisar'><br></fieldset><form><p>"); if(isset($_POST["submit"])){ $nome=$_POST['nome']; $string = str_replace('_', ' ', $nome); $sql= "SELECT * FROM cliente where nome='$string'"; Tenho este codigo, vai criar um select com todos os nomes dos clientes para depois escolhermos um e mostrar todos os dados do cliente escolhido, mas quando tinha o primeiro e ultimo nome dos clientes (ex: Paulo Carvalho) nada acontecia quando escolhia o nome, mas com apenas um nome (ex: Paulo) já apareciam os dados dele. Falaram-me que podia ser por causa dos espaços contidos no nome e que deveria tirados, então, depois de varias tentativas, com o str_replace meti um '_' na parte do select que mostra os nomes e depois para mostrar os dados completos substitui o '_' por um espaço para poder fazer a query correctamente. O problema é que não percebo o porque de ter que fazer isto. Porque ter que retirar um espaço para depois o voltar a meter? Espero pela resposta Obrigado Edited May 7, 2013 at 10:31 AM by ivan919
N3lson Posted May 7, 2013 at 06:41 PM Report #506148 Posted May 7, 2013 at 06:41 PM (edited) // EXISTE FORM AQUI PARA TRÁS CERTO ? Nome do cliente: <select name="nome"> $sqlc = "SELECT * FROM cliente"; $queryc=mysql_query($sqlc); while($row = mysql_fetch_array($queryc)){ extract($row); echo '<option value="'. $nome . '">'. $nome .'</option>'; } echo "</select> <input type='submit' name='submit' value='Pesquisar'> </form> </fieldset>"; isset($_POST['nome']) ? $nome= trim($_POST['nome']) : $nome = FALSE; if($nome) { $sql= "SELECT * FROM cliente where nome='$nome'"; } Tenta assim Edited May 7, 2013 at 06:59 PM by N3lson You can't do it, kid. But don't worry, my boy. You're not the only one. No one else can do it.
HappyHippyHippo Posted May 8, 2013 at 08:58 AM Report #506218 Posted May 8, 2013 at 08:58 AM ora vamos por partes : 1º - apaga todas as tuas alterações ! isso não faz sentido 2º - o teu query de pesquisa : $sql= "SELECT * FROM cliente where nome='$string'"; o nome tem de ser exactamente igual ao valor na variável $string se pretendes pesquisar por partes do nome (como só colocando Paulo) o SQL seria: $sql= "SELECT * FROM cliente WHERE nome LIKE '%$string%'"; 3º - cuidado com os dados que vem por post, conheçes o Bobby Tables, se não conheçes vai ler sobre ele na net ... IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
N3lson Posted May 8, 2013 at 06:06 PM Report #506303 Posted May 8, 2013 at 06:06 PM (edited) HappyHippo eu acho mesmo que o que ele pretende é ver os detalhes todos directamente do form select. Mas ivan919 segue o conselho do happyhippo (importante) e pesquisa sobre as bobby tables Edited May 8, 2013 at 06:08 PM by N3lson You can't do it, kid. But don't worry, my boy. You're not the only one. No one else can do it.
ivan919 Posted May 9, 2013 at 11:13 AM Author Report #506380 Posted May 9, 2013 at 11:13 AM N3lson segui o codigo que fizeste, ainda tive que pesquisar uma ou outra coisa para ver para que serviam mas faz mesmo aquilo que eu queria obrigado 🙂
N3lson Posted May 9, 2013 at 05:50 PM Report #506489 Posted May 9, 2013 at 05:50 PM Estamos aqui para isso mesmo ajudar-nos uns aos outros . You can't do it, kid. But don't worry, my boy. You're not the only one. No one else can do it.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now