Jump to content
ivan919

[Resolvido] Duvida com str_replace

Recommended Posts

ivan919

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 by ivan919

Share this post


Link to post
Share on other sites
N3lson

// 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 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.

Share this post


Link to post
Share on other sites
HappyHippyHippo

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

Share this post


Link to post
Share on other sites
N3lson

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 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.

Share this post


Link to post
Share on other sites
ivan919

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 :)

Share this post


Link to post
Share on other sites
N3lson

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.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.