Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

pedrovoltaire

Listar em Ordem Alfabetica e Status (ambiente PHP)

Recommended Posts

Em primeiro lugar obrigado pela atenção.

Vamos lá.

Estou listando uma tabela contendo participantes de um evento, por ordem alfabética. Até ai está tudo certo, porém agora quero além de listar por ordem alfabética também listar pelo Status de pagamento , ou seja , quero ter a opção de listar somente os que já pagaram, e listar também somente os que não pagaram. A consulta por ordem alfabética já funciona, inclusive mostra o se pagou ou não, porém o que quero é além de exibir por ordem alfabética, também exibir separadamente quem pagou e quem não pagou, da forma que esta aqui exibe todos em uma só lista.

Inclusive podendo ser duas listas.Uma com os de Status = S e outra de Status = N. Porém seguindo a ordem alfabética.

O Script não é meu, mas posso explicar algumas coisas.

No começo do Script (em negrito)ele se consulta a tabela "evento" para saber o status do evento( se o evento esta ativo ou não).

Mais abaixo(também em negrito) ele faz uma referencia a tabela evento porem pega o campo "pago"(no qual dará o status do participante) da tabela evento_publico.Esta parte ainda não entendi.

E se não for pedir muito, também queria saber como posso listar os nomes por número.(mas isso não é urgencia)

Espero que me ajudem.

Obrigado e segue o script.

seque o script:

//*<div id="terceiro" class="centro">

<div id="restrito">

<h2>Admnistrar Eventos</h2>

<?

$sql = mysql_query("SELECT COUNT(*) as total FROM evento WHERE status='S' ORDER BY id DESC") or die ("Erro: ".mysql_error());

$num = mysql_result($sql,0, "total");

 

$sql2 = mysql_query("SELECT * FROM evento WHERE status='S' ORDER BY id DESC") or die ("Erro: ".mysql_error());if($num != 0){

if($num > 1){

 

?>

<div id="dadosEnviar">

<form class="form">

<fieldset>

<legend>Selecione um Evento</legend>

 

<select name="congresso" id="congresso" onChange="if(this.value) window.location='index.php?pag=adminEvento&id='+this.value">

<option disabled>-Selecione-</option>

<?

while($dados = mysql_fetch_array($sql2)){

$selecionado = (isset($_GET["id"]) AND $_GET["id"] == $dados['id']) ? ' selected' : ' ';

echo "\t\t<option value=\"".$dados['id']."\"".$selecionado.">".$dados['nome']."</option>\n";

}

?>

</select>

</fieldset>

</form>

</div>

<?

}else{

$dados = mysql_fetch_array($sql2);

}

 

$id = (isset($_GET["id"])) ? $_GET["id"] : $dados["id"] ;

if(isset($id)){

$sql2 = mysql_query("SELECT a.* FROM evento_publico a, evento b WHERE a.id_evento = b.id AND a.id_evento = ".$id." ORDER BY a.nome") or die ("Erro: ".mysql_error());

$n = 1;

$sqlNum = mysql_num_rows($sql2);

if($sqlNum > 0){

?>

<table id="tabelaCarrinho" summary="Lista de cadastrados do <?=$dados["nome"]?>">

<caption>Lista de Cadastrados</caption>

<thead>

<td width="30%">Nome</td>

<td width="30%">E-mail</td>

<td width="15%">Cidade</td>

<td width="5%">UF</td>

<td width="20%">Pago?</td>

<td>Del</td>

</thead>

<?

while($dados2 = mysql_fetch_array($sql2)){

foreach($dados2 as $campo => $valor){

$$campo = $valor;

}

$nome = ucwords(strtolower($nome));

$cidade = ucwords(strtolower($cidade));

$estado = strtoupper($estado);

$selecionado = ($pago == "S") ? " checked" : "";

$selecionado2 = ($pago == "N") ? " checked" : "";

 

?>

<tr id="<?=$n?>">

<td class="normal"><?=$nome?></td>

<td class="lower"><?=$email?></td>

<td class="normal"><?=$cidade?></td>

<td><?=$estado?></td>

<td class="pago">

<input class="pago" type="radio" name="<?=$id?>" value="S" id="<?=$id?>-s" <?=$selecionado?> onclick="seleciona(this.name, this.value)">

<label class="pago" for="<?=$id?>-s">Sim</label>

<input class="pago" type="radio" name="<?=$id?>" value="N" id="<?=$id?>-n" <?=$selecionado2?> onclick="seleciona(this.name, this.value)">

<label class="pago" for="<?=$id?>-n">Não</label>

</td>

<td><a href="#" class="remover" title="Deletar <?=$nome?>" onclick="deletar('<?=$id?>','<?=$nome?>','adminEvento&id=<?=$_GET["id"]?>','publico')">X</a></td>

</tr>

<?

$n++;

}

 

?>

</table>

<?

}else{

echo "<div class=\"erro\">Nenhum Cadastro até o momento.</div>";

}

?>

</form>

<?

}

 

 

}// != 0

?>

<div class="bug"></div>

</div>

</div>

*//

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cria um campo no teu form que mande teu status via post, daí você faz uma condição mandando o status para dentro de tua sql.

 

$sql = mysql_query("SELECT COUNT(*) as total FROM evento WHERE status=$_POST['status'] ORDER BY id DESC") or die ("Erro: ".mysql_error());
Este order by não faz diferença, pois você está mostrando apenas o total de registros.

 

$sql2 = mysql_query("SELECT * FROM evento WHERE status='S' ORDER BY id DESC") or die ("Erro: ".mysql_error());
Se quer listar por DESC+ID coloca ORDER BY DESC,ID

 

Meio confusa tua questão, vê se resolveu alguma coisa, resolve, resume melhor e posta novamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Foi mal ai galera, nao sabia que nao podia colocar em outras secoes.Quanto a qual secao deixar, gostaria que voces me dessem um conselho.Sou novo em php, porem o problema tambem envolve mysql.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.