fekz 0 Denunciar post Postado Fevereiro 6, 2009 Galera, to com um problemão... Tenho 2 tabelas, e vou botar as estruturas pra vocês: Tabela opções: numero (auto_inc) idenq // Id da enquete, pra mostrar apenas as opções desta enquete atual. opcoes // Valor da opção da enquete X Tabela enquete: id (auto_inc) pergunta // Pergunta da enquete quantidade // Quantidade de opções pra serem criadas dinamicamente Ou seja, eu quero botar uma quantidade, exemplo: 5! A enquete de id 8, por exemplo, vai criar uma enquete com 5 opções, e cada opção teria que ser relacionada ao campo opcoes da tabela opções. ex: Enquete id = 9 Qual a sua cor preferida? Quantidade = 3 Tabela opções: idenq = 9 opcao 1 = azul opcao 2 = rosa opcao 3 = verde Olhem como está renderizando: http://www.palmeiras24horas.site90.com/teste.phpEle está fazendo corretamente, porém invés de colocar a opção ao lado, cliquem no link pra ver oq acontece. Segue o código do script: $sql = "SELECT * FROM enquete E JOIN opcoes O ON E.id = O.idenq WHERE E.id=8"; $resultado = mysql_query($sql); while ($linha = mysql_fetch_array($resultado)){ $titulo = $linha["titulo"]; $pergunta = $linha["pergunta"]; $idenq = $linha["id"]; $opcoes = $linha["quantidade"]; $numero = $linha["numero"]; $opcao = $linha["opcao"]; print " " . $idenq . " " . $numero . " " . $opcao; echo "<ul> <li class=\"first\"><span>$titulo</span></li> <li><p class=\"right\">$pergunta</p>"; echo "<div class=\"formenq\"> <form class=\"formularioenquete\" method=\"post\" action=\"mostraresenq.php\">"; for($i=0; $i < $opcoes; $i++) { echo "<input type=\"radio\" name=\"enquete\" value=\"a\" />$opcao"; } ?> Estou tentando de tudo quanto é jeito mas não encontro a solução. Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Cobra 0 Denunciar post Postado Fevereiro 6, 2009 Se rodares a tua consulta no MYSQL, acho que vai perceber que todas as linhas retornam todos os atributos, o que faz a montagem da tua página estar errada. Para manter mais ou menos a mesma estrutura, tente algo assim: <?php $sql = "SELECT * FROM enquete E JOIN opcoes O ON E.id = O.idenq WHERE E.id=8"; $resultado = mysql_query($sql); echo "<div class=\"formenq\"><form class=\"formularioenquete\" method=\"post\" action=\"mostraresenq.php\">"; $x = 0; while ($linha = mysql_fetch_array($resultado)) { $titulo = $linha["titulo"]; $pergunta = $linha["pergunta"]; $idenq = $linha["id"]; $opcoes = $linha["quantidade"]; $numero = $linha["numero"]; $opcao = $linha["opcao"]; if ($x == 0) { print " " . $idenq . " " . $numero . " " . $opcao; echo "<ul> <li class=\"first\"><span>$titulo</span></li> <li><p class=\"right\">$pergunta</p>"; } echo "<input type=\"radio\" name=\"enquete\" value=\"a\" />$opcao"; if (++$x == $opcoes) echo "</ul">; } echo '</form></div>'; ?> Compartilhar este post Link para o post Compartilhar em outros sites
fekz 0 Denunciar post Postado Fevereiro 6, 2009 Opa, maravilha, isso eu acho que deu certo, obrigado. Porém, na minha página principal: http://www.palmeiras24horas.site90.com Ele lista as 2 últimas enquetes, e como eu estou pondo: $sql = "SELECT * FROM enquete E JOIN opcoes O ON E.id = O.idenq WHERE E.id=8";Ele só vai mostrar uma enquete, a do ID atual... Precisava fazer com que pegasse as últimas duas, e cada uma seria um id, no caso o 7 e o 8... e ai... ferro? auhuhauhaa Compartilhar este post Link para o post Compartilhar em outros sites
fekz 0 Denunciar post Postado Fevereiro 7, 2009 Criei este tópico: http://forum.imasters.com.br/index.php?showtopic=330589 e botaram RESOLVIDO.. porém não está resolvido... Resolvido parcialmente: <?php $sql = "SELECT * FROM enquete E JOIN opcoes O ON E.id = O.idenq WHERE E.id=8"; $resultado = mysql_query($sql); echo "<div class=\"formenq\"><form class=\"formularioenquete\" method=\"post\" action=\"mostraresenq.php\">"; $x = 0; while ($linha = mysql_fetch_array($resultado)) { $titulo = $linha["titulo"]; $pergunta = $linha["pergunta"]; $idenq = $linha["id"]; $opcoes = $linha["quantidade"]; $numero = $linha["numero"]; $opcao = $linha["opcao"]; if ($x == 0) { print " " . $idenq . " " . $numero . " " . $opcao; echo "<ul> <li class=\"first\"><span>$titulo</span></li> <li><p class=\"right\">$pergunta</p>"; } echo "<input type=\"radio\" name=\"enquete\" value=\"a\" />$opcao"; if (++$x == $opcoes) echo "</ul">; } echo '</form></div>'; ?> Acontece que: Opa, maravilha, isso eu acho que deu certo, obrigado. Porém, na minha página principal: http://www.palmeiras24horas.site90.com Ele lista as 2 últimas enquetes, e como eu estou pondo: $sql = "SELECT * FROM enquete E JOIN opcoes O ON E.id = O.idenq WHERE E.id=8";Ele só vai mostrar uma enquete, a do ID atual... Precisava fazer com que pegasse as últimas duas, e cada uma seria um id, no caso o 7 e o 8... e ai... ferro? auhuhauhaa Compartilhar este post Link para o post Compartilhar em outros sites
Alessandro_ 0 Denunciar post Postado Fevereiro 7, 2009 faz um select ordenado pelo código decrescente pelo id e exibe apenas os 2 ultimos. ex: Select * from noticia order by id desc limit 2 acho que isso deve resolver.... Compartilhar este post Link para o post Compartilhar em outros sites
jgarcia 1 Denunciar post Postado Fevereiro 7, 2009 Criei este tópico:http://forum.imasters.com.br/index.php?showtopic=330589 e botaram RESOLVIDO.. porém não está resolvido... Resolvido parcialmente... Você deveria ter solicitado ao Moderador da área que o tópico fosse reaberto, mas deixa como está. Tal ação serve para que o assunto de um tópico não acabe duplicado, ou seja, para que não sejam criados vários tópicos, do mesmo usuário, tratando do mesmo assunto. ;) Abraços. Compartilhar este post Link para o post Compartilhar em outros sites
fekz 0 Denunciar post Postado Fevereiro 7, 2009 faz um select ordenado pelo código decrescente pelo id e exibe apenas os 2 ultimos. ex: Select * from noticia order by id desc limit 2 acho que isso deve resolver.... Não cara, não adianta fazer isso. Como eu expliquei, o id tem que ser = o id da enquete atual, porém como tem 2, ficou essa confusão na minha cabeça.... Isso funcionaria, mas eu preciso puxar somente onde id=id_atual_da_enquete... Se for só pra aparecer, eu sei que é limit 2... Alguém me ajuda? Compartilhar este post Link para o post Compartilhar em outros sites
Mário Monteiro 179 Denunciar post Postado Fevereiro 8, 2009 Mesclei os dois topicos e retirei o resolvido da proxima vez voce faz duas coisas: Primeiro nao diga que deu certo sem estar com a resolução completa como ocorreu neste caso que foi colocado o resolvido provavlemente por esta frase Opa, maravilha, isso eu acho que deu certo, obrigado. E segundo e mais importante nao duplique topicos com o mesmo assunto sob hipotese alguma, neste caso bastaria solicitar no proprio topico que o resolvido fosse retirado Compartilhar este post Link para o post Compartilhar em outros sites
fekz 0 Denunciar post Postado Fevereiro 9, 2009 Mesclei os dois topicos e retirei o resolvido da proxima vez voce faz duas coisas: Primeiro nao diga que deu certo sem estar com a resolução completa como ocorreu neste caso que foi colocado o resolvido provavlemente por esta frase Opa, maravilha, isso eu acho que deu certo, obrigado. E segundo e mais importante nao duplique topicos com o mesmo assunto sob hipotese alguma, neste caso bastaria solicitar no proprio topico que o resolvido fosse retirado Obrigado, e desculpe! Da próxima seguirei os passos corretamente. Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Fevereiro 10, 2009 Usa um OR, que o SELECT vai lhe retornar os 2. $sql = "SELECT * FROM enquete E JOIN opcoes O ON E.id = O.idenq WHERE (E.id=8) OR (E.id=7)";É essa a dúvida ? Compartilhar este post Link para o post Compartilhar em outros sites
fekz 0 Denunciar post Postado Fevereiro 11, 2009 Acho que é um problema fácil pros experientes, mas não consigo encontrar, alguém me ajuda estou desesperado? Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Fevereiro 11, 2009 Usa um OR, que o SELECT vai lhe retornar os 2. $sql = "SELECT * FROM enquete E JOIN opcoes O ON E.id = O.idenq WHERE (E.id=8) OR (E.id=7)";É essa a dúvida ?você leu meu post?Qual é a dúvida agora? está dando algum erro? qual ? Compartilhar este post Link para o post Compartilhar em outros sites