Ir para conteúdo

POWERED BY:

Arquivado

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

tamires

query

Recommended Posts

ola...estou com uma duvida sobre query...eh o seguinte...tenho isso daqui..<? //divide os dados do campo destinos_pac$arr = split(",", $row_rsPacote['destinos_pac']);//rsDestinos exibe destinosmysql_select_db($database_connTerras, $connTerras);foreach($arr as $num){$query_rsDestinos = "SELECT id_dest, nome_dest, descrap_dest, atrac_dest FROM terras_destino WHERE id_dest like '".$num."'";$rsDestinos = mysql_query($query_rsDestinos, $connTerras) or die(mysql_error());$row_rsDestinos = mysql_fetch_array($rsDestinos);//$totalRows_rsDestinos = mysql_num_rows($rsDestinos);}?>a query precisa ficar obrigatoriamente no topo da pagina? pq, pelo q me explicaram, esse codigo preciso deixar junto com o q desejo imprimir para o loop funcionar, so que quando coloco isso no local em que os dados serao impressos (no fim da pagina), nao funciona. e se coloco no topo da pagina, funciona.aguardo respostas gratatamires

Compartilhar este post


Link para o post
Compartilhar em outros sites

será q num é algum problemas com essas aspas: '".$num."'";flw...

Compartilhar este post


Link para o post
Compartilhar em outros sites

A query tem que estar antes da função que utiliza em si a query e imprime os dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal você tem que começar entender melhor as coisas

 

isso:

$query_rsDestinos = "SELECT id_dest, nome_dest, descrap_dest, atrac_dest FROM terras_destino WHERE id_dest like '".$num."'";

 

é a mesma coisa que isso só que sem a concatenção e no caso nao precisa concatenar mesmo

$query_rsDestinos = "SELECT id_dest, nome_dest, descrap_dest, atrac_dest FROM terras_destino WHERE id_dest like '$num'";

 

e outra coisa para consultas no banco de dados nao precisa de apostrofos se for campos numericos, só precisa se for string

 

settype($num, "integer");
$query_rsDestinos = "SELECT id_dest, nome_dest, descrap_dest, atrac_dest FROM terras_destino WHERE id_dest = $num";

 

e outra coisa ai que nao fazeia sentido é usar o like para buscar campo id

Compartilhar este post


Link para o post
Compartilhar em outros sites

quanto o like, eu troquei por = e deu na mesma, hehe.qto aos apostrofos, eh q qdo a gente usa variaveis tipo $_GET so funciona com apostrofos e concatenacao, nao eh? por forca do habito eu sempre ponho...mas eu tirei os apostrofos e continua na mesma, hehe.

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom, eh complicado mas vou tentar explicar...

e um site de turismo. quando o administrador cadastra um cruzeiro, ele escolhe em um campo select multiple todos os destinos que fazem parte desse cruzeiro. qdo o cadastro vai pro banco, o campo de destinos recebe as ids desses destinos (usando implode).

quando vou exibir o cruzeiro, a pagina exibe junto com os dados dele algumas informacoes dos destinos q fazem parte desse cruzeiro...so q qdo eu cadastrei o cruzeiro, so cadastrei a id, entao na pagina de exibicao eu tenho q separar de novo o campo (usei split) e coloquei esse resultado na variavel $num, que esta sendo repetida com a query ali aonde você viu...

acontece que na exibicao, so consigo exibir o ultimo resultado dos destinos. exemplo:

se ele tem q exibir os destinos 8, 9 e 10, ele so exibe o 10.

 

ai pedi ajuda aqui no forum e me disseram pra fazer isso:

 

//divide os dados do campo destinos_pac$arr = split(",", $row_rsPacote['destinos_pac']);//rsDestinos exibe destinosmysql_select_db($database_connTerras, $connTerras);foreach($arr as $num){$query_rsDestinos = "SELECT id_dest, nome_dest, descrap_dest, atrac_dest FROM terras_destino WHERE id_dest like '".$num."'";}$rsDestinos = mysql_query($query_rsDestinos, $connTerras) or die(mysql_error());$row_rsDestinos = mysql_fetch_assoc($rsDestinos);//$totalRows_rsDestinos = mysql_num_rows($rsDestinos);//daqui pra baixo e a exibcaoecho "<a href=\"destino.php?recordID=" . $row_rsDestinos['id_dest'] . ">" . $row_rsDestinos['nome_dest'] . "</a>";echo $row_rsDestinos['atrac_dest'];echo $row_rsDestinos['descrap_dest'];}

assim funciona, so que a parte q exibe os destinos fica no final na pagina, entao metade do codigo tenho q por no comeco da pagina e outra no final, ai nao funciona. e se ponho td no final, nao funciona...

ja tentei de tudo aqui mas nao sai, nem sei mais o que tentar..

se puder me dar uma maozinha, agradeco, hehe. :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao precisa colocar codigo, no começo ou no fim, você precisa colocar num lugar fazer o que precisa depois o resultado você usa as variaveis, se tiver dentro de um loop use dentro do loop, se for usar fora ,salve num array e use as pocições do array

Compartilhar este post


Link para o post
Compartilhar em outros sites

por exemplo, agora estou montando assim:

<? //divide os dados do campo destinos_pac$arr = split(",", $row_rsPacote['destinos_pac']);//rsDestinos exibe destinosmysql_select_db($database_connTerras, $connTerras);foreach($arr as $num){$query_rsDestinos = "SELECT id_dest, nome_dest, descrap_dest, atrac_dest FROM terras_destino WHERE id_dest like '".$num."'";}$rsDestinos = mysql_query($query_rsDestinos, $connTerras) or die(mysql_error());$row_rsDestinos = mysql_fetch_assoc($rsDestinos);//$totalRows_rsDestinos = mysql_num_rows($rsDestinos);?><?foreach ($arr as $num) {//daqui pra baixo e a exibcaoecho "<a href=\"destino.php?recordID=" . $num . ">" . $row_rsDestinos['nome_dest'] . "</a>";echo $row_rsDestinos['atrac_dest'];echo $row_rsDestinos['descrap_dest'];}?>
a id funciona normal atraves da $num aqui, exibe uma de cada vez, porem, todos os outros mostram apenas o ultimo, dois dois cadastros que ele deveria mostrar, ele mostra duas vezes o ultimo...

tentei colocar no 1o bloco:

$nome = $row_rsDestinos['nome_dest'];

e no segundo chamar pelo $nome, mas nao deu certo...depois coloquei no 2o bloco o echo $nome dentro de um for:

for($i=0; $i < sizeof($nome); $i++){ echo $nome[$i];}

mas ele mostrou duas vezes os dois registros juntos...

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.