Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Hide em select php + db sql


Silver

Pergunta

Olá a todos,

tenho um script de upload em php e estou com o seguinte problema:

Em uma determinada página (user.php) eu tenho uma select box que pega valores do BD em SQL e coloca dentro da select. Um determinado valor chamado "papel" não pode aparecer nessa select do user.php, gostaria de dar um hide somente nesse valor "papel" e somente nessa página user.php. em todas as outras páginas o papel deve continuar aparecendo normalmente, nesse caso eu não posso deletar o valor papel do BD nem dar um hide total, o hide só iria funcionar na página user.php

meu script está assim:

<select name="upload_dir" id="upload_dir" >

<?php echo $upload_dirs?> // Essa parte pega os valores do BD e coloca dentro do select.

</select>

estou tentando resolver esse problema que está me causando uma dor de cabeça gigante e se alguém puder me ajudar ficarei eternamente agradecido.

Muito obrigado.

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0
Ao fazer a query buscando os dados do banco, não pegue o valor que quer ocultar.

Algo como

SELECT * FROM `nomedatabela` WHERE `caracteristica` != 'valor'
Opa, muito obrigado por responder. no caso o query está assim : $query="SELECT * FROM folders WHERE id IN ('".$folders."') ORDER BY name ASC"; dai devo colocar assim : $query="SELECT * FROM folders WHERE id IN ('".$folders."') ORDER BY name ASC != 'papel'"; Obrigado. O script está assim:
if($level!="user"){
		   $upload_dirs="";
		   $query="SELECT * FROM folders ORDER BY name ASC";
		   $result=mysql_query($query) or die("error getting folders from database"); while($rr=mysql_fetch_assoc($result)){
				$upload_dirs .= "<option value='".$rr["name"]."' ".($upload_dir==$rr["name"]?"selected":"").">".$rr["name"]."</option>";
		   }	
		} else {
			/*
			$q="SELECT upload_dirs FROM users WHERE id='".$_SESSION["idUser"]."'";
			$res=mysql_query($q);
			$rr=mysql_fetch_assoc($res);
			$folders = str_replace(',',"','",$rr["upload_dirs"]);
			$query="SELECT * FROM folders WHERE id IN ('".$folders."') ORDER BY name ASC";
		   $result=mysql_query($query) or die("error getting folders from database"); while($rr=mysql_fetch_assoc($result)){
				$upload_dirs .= "<option value='".$rr["name"]."' ".($upload_dir==$rr["name"]?"selected":"").">".$rr["name"]."</option>";
		   }	*/
		   	if(!stristr($access,"i")){ //if user cant see all files
				$q="SELECT upload_dirs FROM users WHERE id='".$_SESSION["idUser"]."'";
				$res=mysql_query($q);
				$rr=mysql_fetch_assoc($res);
				$folders = str_replace(',',"','",$rr["upload_dirs"]);
				$query="SELECT * FROM folders WHERE id IN ('".$folders."') ORDER BY name ASC";
			   $result=mysql_query($query) or die("error getting folders from database"); while($rr=mysql_fetch_assoc($result)){
					$upload_dirs .= "<option value='".$rr["name"]."' ".($upload_dir==$rr["id"]?"selected":"").">".$rr["name"]."</option>";
			   }	
			} else {
				$query="SELECT * FROM folders ORDER BY name ASC";
			   $result=mysql_query($query) or die("error getting folders from database"); while($rr=mysql_fetch_assoc($result)){
					$upload_dirs .= "<option value='".$rr["name"]."' ".($upload_dir==$rr["id"]?"selected":"").">".$rr["name"]."</option>";
			   }
			}
		}

Editado por Silver
Link para o comentário
Compartilhar em outros sites

  • 0

Não acredito que isso

SELECT * FROM folders WHERE id IN ('".$folders."') ORDER BY name ASC != 'papel'

vá funcionar.

Você precisa especificar a condição completa, ou seja, pegar todos os resultados, exceto aquele cujo valor é 'papel'. Entende?

Neste caso, é impossível te dizer como deve ficar o código. Se der pra tirar um printscreen do phpMyAdmin, da tabela que você está trabalhando, seria mais fácil.

Link para o comentário
Compartilhar em outros sites

  • 0
Não acredito que isso

SELECT * FROM folders WHERE id IN ('".$folders."') ORDER BY name ASC != 'papel'

vá funcionar.

Você precisa especificar a condição completa, ou seja, pegar todos os resultados, exceto aquele cujo valor é 'papel'. Entende?

Neste caso, é impossível te dizer como deve ficar o código. Se der pra tirar um printscreen do phpMyAdmin, da tabela que você está trabalhando, seria mais fácil.

Desculpe mais não entendo nada dessa parte :(

tirei o screenshot:

printnih.jpg

Isso é o que aparece na página - eu quero esconder o nome "vitaprint" do select, somente esse nome e somente dessa parte, das outras páginas quero que continue como está e por isso não posso excluir direto no php admin.

print2j.jpg

um outro membro gringo me disse para usar isso:

foreach($folder_number as $key => $value){

if($value['folder_number'] != 3){

$upload_dirs .= '<option value='.$value['folder_number].'">Folder Number '.$value['folder_number'].'</option>';

}

}

só que eu não sei onde e o mesmo não me disse.

Editado por Silver
Link para o comentário
Compartilhar em outros sites

  • 0

Agora vai depender. Se você usa o recurso retornado pela query mais de uma vez, e precisa que 'vitaprint' apareça nessas outras vezes, o ideal é colocar um 'if' para pegar os valores para este select. Ou seja, você continuará a recebê-lo, mas não vai colocá-lo no select box.

$upload_dir = "";
while($rr=mysql_fetch_assoc($result)){
     if($rr['name'] != "vitaprint"){
          $upload_dirs .= "<option value='".$rr['name']."' ".($upload_dir==$rr['name']?"selected":"").">".$rr['name']."</option>";
     }
}
Já se você não vai usar o recurso retornado pela query nesta página além deste selectbox, você pode alterar na query. Tecnicamente, esta maneira é preferível. Veja como ficaria a query:
SELECT * FROM `folders` WHERE `name` != 'vitaprint' ORDER BY `name` ASC
Neste caso, não é necessário usar aquele 'if' na hora de pegar o resultado da consulta. Veja:
$upload_dirs = "";
while($rr=mysql_fetch_assoc($result)){
    $upload_dirs .= "<option value='".$rr['name']."' ".($upload_dir==$rr['name']?"selected":"").">".$rr['name']."</option>";
}

Link para o comentário
Compartilhar em outros sites

  • 0

Opa rapaz, funcionou perfeitamente.

muito obrigado mesmo, fico a disposição para o que precisar e gostaria de saber se você tem interesse em fazer algumas modificações no meu script.

se tiver interesse me avise que agente conversa questões de valor etc..

Abraços

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...