Jhuan 0 Denunciar post Postado Outubro 15, 2013 Pessoal , bom dia ! A minha dúvida acredito ser bem simples. Tenho um script que faz uma consulta no mysql e gera uma tabela: coluna 1 coluna 2 coluna 3 Título 1 Título 2 Título 3 Linha 1 Linha 2 Linha 3 Gostaria de saber se existe como eu realizar algum comando para fazer a operação inversa. Inserir no SQL todos os valores dessa tabela HTML. E como eu faria isso ?!?! Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
Fabio Carpi 6 Denunciar post Postado Outubro 15, 2013 Essa tabela é virtual né? Se for, pelo pouco que sei, não tem como não. Compartilhar este post Link para o post Compartilhar em outros sites
raonibs 64 Denunciar post Postado Outubro 15, 2013 Tente algo como isso: INSERT INTO Table ( Column1, Column2 ) VALUES ( Value1, Value2 ), ( Value1, Value2 ) Compartilhar este post Link para o post Compartilhar em outros sites
GCAS 11 Denunciar post Postado Outubro 15, 2013 Olávc pode usar um loop for enquanto faz isso, ex: $reg = 10 //número de registros for ($i=0;$i<$reg;$i++){ $insercao = "insert into tabela (colunas) values ('valores')"; $exec = mysql_query($insercao); ] A grosso modo é isso.nesse caso utilizei "$reg" como número de registros, ou de linhas para o "for" percorrer. Pode usar outras formas - array.Ok este loop irá repetir o processo até o numero de dados a inserir até o número estipulado ,e, dentro deste loop, irá fazer n inserções. Lógico que isso é um algorítimo bem simples, há outras maneiras de implementar esse loop, bem mais elegantes. Espero ter ajudado, qualquer coisa dê um grito :D Compartilhar este post Link para o post Compartilhar em outros sites
Jhuan 0 Denunciar post Postado Outubro 15, 2013 Poxa , bem legal a dica de vocês. mas acredito eu não ser suficiente para sanar meu problema. utilizando o script: <?php error_reporting(E_ERROR | E_WARNING | E_PARSE); $id_assoc = $_POST["id_assoc"]; $User = $_SESSION["UsuarioNome"]; $Userid = $_SESSION["UsuarioID"]; $sql = "INSERT INTO scrap_request(id_association,requester)VALUES('$id_assoc','$Userid')"; if(isset($_POST['request']) && $_POST['request'] == 'Send Request'){ $select = mysql_query("SELECT * FROM scrap_request WHERE id_association = '$id_assoc'"); if(mysql_num_rows($select) >= 1){ echo "<div id='attention-div'> REQUEST ALREADY REGISTERED! </div>"; }else{ echo "<div id='right-div'> REQUEST DONE SUCCESFULLY! </div>" ; mysql_query($sql); } } ?> Eu consigo pegar o ULTIMO VALOR da COLUNA. Eu gostaria de pegar TODOS OS VALORES dessa determinada coluna. Assim como observado na figura. Gostaria de salvar OS VALORES DESSES INPUTS UM DE CADA VEZ. Será possível algo assim ?! Obrigado, Compartilhar este post Link para o post Compartilhar em outros sites
raonibs 64 Denunciar post Postado Outubro 15, 2013 Gostaria de salvar OS VALORES DESSES INPUTS UM DE CADA VEZ. A questão de fazer isso é a mesma questão loop do GCAS, quanto mais consultas ao banco de dados menos eficiente é o sistema, melhor inserir 10 linhas em 1 consulta do que 10 linhas em 10 consultas. Não que seja errado mas é preciso considerar este preço. Compartilhar este post Link para o post Compartilhar em outros sites
Vinicius Rangel 208 Denunciar post Postado Outubro 15, 2013 A questão de fazer isso é a mesma questão loop do GCAS, quanto mais consultas ao banco de dados menos eficiente é o sistema, melhor inserir 10 linhas em 1 consulta do que 10 linhas em 10 consultas. Não que seja errado mas é preciso considerar este preço. O ideal é inserir TUDO direto no banco, crie uma string com todos os inserts e execute ele. pesa muito menos. Compartilhar este post Link para o post Compartilhar em outros sites
erison 63 Denunciar post Postado Outubro 15, 2013 Olá vc pode usar um loop for enquanto faz isso, ex: $reg = 10 //número de registros for ($i=0;$i<$reg;$i++){ $insercao = "insert into tabela (colunas) values ('valores')"; $exec = mysql_query($insercao); ] A grosso modo é isso. nesse caso utilizei "$reg" como número de registros, ou de linhas para o "for" percorrer. Pode usar outras formas - array. Ok este loop irá repetir o processo até o numero de dados a inserir até o número estipulado ,e, dentro deste loop, irá fazer n inserções. Lógico que isso é um algorítimo bem simples, há outras maneiras de implementar esse loop, bem mais elegantes. Espero ter ajudado, qualquer coisa dê um grito :D esse modo esta errado por que você cria varias querys nesse exemplo que ele se referiu seria assim $reg = 10 //número de registros $insercao = null; for ($i=0;$i<$reg;$i++){ $insercao .= "insert into tabela (colunas) values ('valores');"; } $exec = mysql_query($insercao); Compartilhar este post Link para o post Compartilhar em outros sites
shini 318 Denunciar post Postado Outubro 15, 2013 esse modo esta errado por que você cria varias querys nesse exemplo que ele se referiu seria assim $reg = 10 //número de registros $insercao = null; for ($i=0;$i<$reg;$i++){ $insercao .= "insert into tabela (colunas) values ('valores');"; } $exec = mysql_query($insercao); mas isso ai n são varias query para o mysql_query() executar? na documentação diz mysql_query() sends a unique query (multiple queries are not supported) http://php.net/manual/en/function.mysql-query.php Compartilhar este post Link para o post Compartilhar em outros sites
erison 63 Denunciar post Postado Outubro 15, 2013 mas isso ai n são varias query para o mysql_query() executar? na documentação diz mas o tempo de execução e bem mais rápido vc usando uma query do que usar varias querys. Compartilhar este post Link para o post Compartilhar em outros sites
GCAS 11 Denunciar post Postado Outubro 15, 2013 Bem, realmente considerando a performance, tenho uma sugestão: $reg = 10 //número de registros $insercao = "insert into tabela (colunas) values "; for ($i=0;$i<$reg;$i++){ $valores .= "('valores'),"; } $v1 = substr($valores, 0, -1); $ins_qry = $insercao.$v1; $exec = mysql_query($ins_qry); // agora verifica se foi if ($exec){ echo "inserido com sucesso"; }else{ echo "problemas ao inserir"; } nesse caso, vai fazer um loop apenas com os valores e a parte das queries com as colunas fica tranquila. ficando assim: insert into tabelas (colunas) values ('valores1'), ('valores2'), ('valores3'); e por aí vai :Despero ter ajudado Compartilhar este post Link para o post Compartilhar em outros sites
GCAS 11 Denunciar post Postado Outubro 16, 2013 Poxa , bem legal a dica de vocês. mas acredito eu não ser suficiente para sanar meu problema. utilizando o script: <?php error_reporting(E_ERROR | E_WARNING | E_PARSE); $id_assoc = $_POST["id_assoc"]; $User = $_SESSION["UsuarioNome"]; $Userid = $_SESSION["UsuarioID"]; $sql = "INSERT INTO scrap_request(id_association,requester)VALUES('$id_assoc','$Userid')"; if(isset($_POST['request']) && $_POST['request'] == 'Send Request'){ $select = mysql_query("SELECT * FROM scrap_request WHERE id_association = '$id_assoc'"); if(mysql_num_rows($select) >= 1){ echo "<div id='attention-div'> REQUEST ALREADY REGISTERED! </div>"; }else{ echo "<div id='right-div'> REQUEST DONE SUCCESFULLY! </div>" ; mysql_query($sql); } } ?> Eu consigo pegar o ULTIMO VALOR da COLUNA. Eu gostaria de pegar TODOS OS VALORES dessa determinada coluna. Assim como observado na figura. Gostaria de salvar OS VALORES DESSES INPUTS UM DE CADA VEZ. Será possível algo assim ?! Obrigado, Olá meu caro Jhuan. Pelo que entendi através desta postagem, é que você não quer inserir muitos dados de uma só vez, e sim, ver todos os dados de uma vez. Sendo assim é simplesmente fazer um loop. Vou dar um exemplo: usando a sua variável select. for($i=0;$i<mysql_num_rows($select);$i++){ $linha = mysql_fetch_array($select); $dado1 = $linha['coluna']; } Esse o porque de você não conseguir pegar todos e sim o último registro. Desse jeito que você fez, o padrão é apenas pegar o último resultado. E já usando um loop, ele vai consultando o banco até o número de registros mostrado na query - número dado pela função "mysql_num_rows()". Espero ter ajudado :D Compartilhar este post Link para o post Compartilhar em outros sites
Jhuan 0 Denunciar post Postado Outubro 16, 2013 Pessoal Obrigado , vou tentar utilizar esses exemplos , assim que conseguir , eu posto aqui. Valeu ! Compartilhar este post Link para o post Compartilhar em outros sites