Carcleo 4 Denunciar post Postado Maio 25, 2012 Como faço para concatenar, não os valores, mas os nomes das variaveis? for ($i=1; $i<=10; $i++) { echo $foto.$i; } Isso imprimir o valor da variavel $foto mais o valor da variavel $i Preciso imprimir o valor da variavel a ser formada $foto1, $foto2, $foto3.... conforme o loop Compartilhar este post Link para o post Compartilhar em outros sites
shini 318 Denunciar post Postado Maio 25, 2012 tente assim: for ($i=1; $i<=10; $i++){ echo $foto[$i]; } Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Maio 25, 2012 concatenação de nome de variável não existe pra isso existem arrays :) Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Maio 25, 2012 pois é, na tabela mysql os campos são nomeadsos foto1, foto2 até foto10. Como eu resolvo isso em um for? Compartilhar este post Link para o post Compartilhar em outros sites
kleber brito 0 Denunciar post Postado Maio 25, 2012 Fala mano, Tudo bem? Eu não entendi muito bem se é isso mesmo, mas ai vai: <?php $nome = "foto"; for ($i=1; $i<=10; $i++){ echo "$$nome"."$i"."<br>" ; } ?> Imprime: $foto1 $foto2 $foto3 $foto4 $foto5 $foto6 $foto7 $foto8 $foto9 $foto10 É isso mesmo? Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Maio 25, 2012 né não. Mas é quase isso. Não seria para imprimir. Tenho uma tabela com 10 campos foto. foto1, foto2, até foto10; Estou fazendo um while quero imprimir o conteudo do campo foto1 até o foto10. Então, em vez de escrever: imprima foto1, imprima foto2, .... Eu quero fazer um for. sendo $i de 1 a 10, imprima foto$i Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Maio 25, 2012 de novo, use array esqueça $foto1, $foto2... use um array de fotos foto[0] foto[1] ... Compartilhar este post Link para o post Compartilhar em outros sites
kleber brito 0 Denunciar post Postado Maio 25, 2012 né não. Mas é quase isso. Não seria para imprimir. Tenho uma tabela com 10 campos foto. foto1, foto2, até foto10; Estou fazendo um while quero imprimir o conteudo do campo foto1 até o foto10. Então, em vez de escrever: imprima foto1, imprima foto2, .... Eu quero fazer um for. sendo $i de 1 a 10, imprima foto$i <?php $foto = array(); for ($i = 1; $i <= 10; $i++) { array_push($foto, $i); } foreach ($foto as $imprime){ echo "foto".$imprime . "<br>"; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Maio 25, 2012 de novo, use array esqueça $foto1, $foto2... use um array de fotos foto[0] foto[1] ... Quer dizer, no list do while criar os nomes das variaveis em forma de array? foto[1], foto[2], foto[3]...foto[10]; Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Maio 25, 2012 Quer dizer, no list do while criar os nomes das variaveis em forma de array? foto[1], foto[2], foto[3]...foto[10]; não sei que while é esse, mas o que você tem que fazer é não usar uma variável para cada imagem. use um array ps: array começa em 0, n!ao em 1. então o primeiro elemento é foto[0] ps2: o dia que precisar de 11 fotos, terá dor de cabeça. divida sua tabela e faça relacionamento entre elas Compartilhar este post Link para o post Compartilhar em outros sites
Marcelo de Andrade 2 Denunciar post Postado Maio 25, 2012 Explique melhor a sua dúvida. O que eu entendi é que você quer fazer multi-upload, é isso? Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Maio 25, 2012 Observe: Eu tinha uma base de dsdos e estou normaizando essa base. Então, criei as tabelas de novo e estou migrando(localmente) as tabelas. Um delas, a de imoveis, eu gravava as fotos na propria tabela de imoveis em, no maximo, 10 fotos. Agora, estou gravando as fotos ilimitadas em uma tabela fotos separada da tabela de imoveis. Então, tenho cerca de 74 imoveis e media 8 fotos por imovel para copiar e colar uma a uma na nova tabela. Então, o que eu fiz: conectei a tabela antiga, lí todos os registros dos imoveis e, para cada imovel(while), fiz um for(quero fazer-fiz diferente)para, a cada conjunto de 10 campos de fotos, fazer um insert na nova tabela. Veja abaixo <?php define('host', "localhost"); define('db', "db1"); define('db2', "db2"); define('user', "xxxx"); define('pass', "xxxx"); $conexao = new mysqli(host,user,pass,db); $conexao->set_charset("utf8"); $conexao2 = new mysqli(host,user,pass,db2); $conexao2->set_charset("utf8"); $fotos_string = " select Id, foto1, foto2, foto3, foto4, foto5, foto6, foto7, foto8, foto9, foto10 from ImoveisCadastroVenda order by Id "; $fotos = $conexao2->query($fotos_string); while(list( $id_imovel, $foto1, $foto2, $foto3, $foto4, $foto5, $foto6, $foto7, $foto8, $foto9, $foto10 )=$fotos->fetch_row() ) { if($foto1!="" and !is_null($foto1)){ $inserir_string = "insert into fotos(nome_fotos, id_imovel_fotos) values ('$foto1',$id_imovel)"; $inserir = $conexao->query($inserir_string); } if($foto2!="" and !is_null($foto2)){ $inserir_string2 = "insert into fotos(nome_fotos, id_imovel_fotos) values ('$foto2',$id_imovel)"; $inserir2 = $conexao->query($inserir_string2); } if($foto3!="" and !is_null($foto3)){ $inserir_string3 = "insert into fotos(nome_fotos, id_imovel_fotos) values ('$foto3',$id_imovel)"; $inserir3 = $conexao->query($inserir_string3); } if($foto4!="" and !is_null($foto4)){ $inserir_string4 = "insert into fotos(nome_fotos, id_imovel_fotos) values ('$foto4',$id_imovel)"; $inserir4 = $conexao->query($inserir_string4); } if($foto5!="" and !is_null($foto5)){ $inserir_string5 = "insert into fotos(nome_fotos, id_imovel_fotos) values ('$foto5',$id_imovel)"; $inserir5 = $conexao->query($inserir_string5); } if($foto6!="" and !is_null($foto6)){ $inserir_string6 = "insert into fotos(nome_fotos, id_imovel_fotos) values ('$foto6',$id_imovel)"; $inserir6 = $conexao->query($inserir_string6); } if($foto7!="" and !is_null($foto7)){ $inserir_string7 = "insert into fotos(nome_fotos, id_imovel_fotos) values ('$foto7',$id_imovel)"; $inserir7 = $conexao->query($inserir_string7); } if($foto8!="" and !is_null($foto8)){ $inserir_string8 = "insert into fotos(nome_fotos, id_imovel_fotos) values ('$foto8',$id_imovel)"; $inserir8 = $conexao->query($inserir_string8); } if($foto9!="" and !is_null($foto9)){ $inserir_string9 = "insert into fotos(nome_fotos, id_imovel_fotos) values ('$foto9',$id_imovel)"; $inserir9 = $conexao->query($inserir_string9); } if($foto10!="" and !is_null($foto10)){ $inserir_string10 = "insert into fotos(nome_fotos, id_imovel_fotos) values ('$foto10',$id_imovel)"; $inserir10 = $conexao->query($inserir_string10); } } ?> Queria acabar com esse montõ de if's. Compartilhar este post Link para o post Compartilhar em outros sites
shini 318 Denunciar post Postado Maio 25, 2012 n sei se funciona com o input file, mas você pode tentar, deixa os input file com o mesmo nome e adicionar [] por exemplos fotos[] ai no php você faz um for e um if para ver se foi o n preenchido o input file. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Maio 25, 2012 troca essas variáveis por um array // ... while ( $f = $fotos->fetch_row() ) { $fotos = array(); list( $id, $fotos[0], $fotos[1] ... // ... } aí você deixa de repetir código para $foto1...$foto10 e passa a usar um loop que percorre o array $fotos Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Maio 26, 2012 troca essas variáveis por um array // ... while ( $f = $fotos->fetch_row() ) { $fotos = array(); list( $id, $fotos[0], $fotos[1] ... // ... } aí você deixa de repetir código para $foto1...$foto10 e passa a usar um loop que percorre o array $fotos Tá. Mas não estou conseguindo adptar isso ao meu código. Como é que ficaria então? Assim? <?php define('host', "localhost"); define('db', "xxxx"); define('db2', "xxxx"); define('user', "xxxx"); define('pass', "xxxx"); $conexao = new mysqli(host,user,pass,db); $conexao->set_charset("utf8"); $conexao2 = new mysqli(host,user,pass,db2); $conexao2->set_charset("utf8"); $fotos_string = " select Id, foto1, foto2, foto3, foto4, foto5, foto6, foto7, foto8, foto9, foto10 from ImoveisCadastroVenda order by Id "; $fotos = $conexao2->query($fotos_string); while(list( $id_imovel, $foto[0], $foto[1], $foto[2], $foto[3], $foto[4], $foto[5], $foto[6], $foto[7], $foto[8], $foto[9] )=$fotos->fetch_row() ) { for ($i=0;$i<10;$i++) { if($foto[$i]!="" and !is_null($foto[$i])) { $inserir_string = "insert into fotos(nome_fotos, id_imovel_fotos) values ('$foto[$i]',$id_imovel)"; $inserir = $conexao->query($inserir_string); } } } ?> Assim funcionou certim Valeu! Compartilhar este post Link para o post Compartilhar em outros sites