Jump to content
Fórum Script Brasil
  • 0

(Resolvido) Hide em select php + db sql


Silver

Question

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 to comment
Share on other sites

9 answers to this question

Recommended Posts

  • 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>";
			   }
			}
		}

Edited by Silver
Link to comment
Share on other 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 to comment
Share on other 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.

Edited by Silver
Link to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

  • 0

Estou à disposição para ajudar, e se rolar uma grana, estou mais disposto ainda =)

Pode entrar em contato via mensagem pessoal aqui no fórum mesmo, para conversarmos sobre o assunto.

Link to comment
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
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  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.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...