Jump to content


Photo

Buscar Ids No Bd


  • Faça o login para participar
2 replies to this topic

#1 Eu_Nana

Eu_Nana

    12 Horas

  • Usuários
  • 291 posts
  • Sexo:Feminino
  • Localidade:SP

Posted 29/12/2009, 08:52

Olá pessoal,

Preciso de uma ajuda de vcs....bom eu tenho três tabelas em um BD:

- tabela participantes;

- tabela oficinas;

- e uma tabela que é o relacionamento entre as duas acima, tabela participantes_has_oficinas;

Na página relacionada com as oficinas, tenho 4 selects, onde a pessoa deve escolher 4 tipos de oficinas por prioridade da forma que desejar:

Select 1

<select name="titulo" id="titulo">

<option >Selecione </option>

<option value=" Oficina1 ">Oficina1 </option>

<option value=" Oficina2 "> Oficina2</option>

<option value=" Oficina3 "> Oficina3</option>

<option value=" Oficina4 "> Oficina4 </option>

<option value=" Oficina5"> Oficina5 </option>

<option value=" Oficina6 "> Oficina6 </option>

</select>
Select 2

<select name="titulo2" id="titulo2">

<option >Selecione </option>

<option value=" Oficina1 ">Oficina1 </option>

<option value=" Oficina2 "> Oficina2</option>

<option value=" Oficina3 "> Oficina3</option>

<option value=" Oficina4 "> Oficina4 </option>

<option value=" Oficina5"> Oficina5 </option>

<option value=" Oficina6 "> Oficina6 </option>

</select>
E assim por diante…são 4 selects com as mesmas opções, onde a pessoa deve selecionar de acordo com a prioridade q desejar, a oficina que mais gostar....

Até aí td bem.....esta fazendo.....eu consigo inserir todas as opções de uma determinada pessoa no BD, porém preciso fazer o seguinte:

Na tabela oficinas: Por exemplo, uma pessoa de nome João, selecionou as quatro oficinas dps disso armazeno todas na tabela oficinas, dps q fiz isso preciso pegar os id do João na tabela participantes do BD e os ids referentes a cada oficina que o João escolheu, no meu caso ele esta fazendo o seguinte ..ele pega somente o ultimo ID com um erro....ele só pegar o id na segunda vez que tento inserir as oficinas.....meu código de inserção esta assim:

<?php

include "include/conexao.php";

$nome = $_POST['nome'];

$titulo1 = $_POST['titulo'];

$titulo2 = $_POST['titulo2'];

$oficina3 = $_POST['oficina3'];

$oficina4 = $_POST['oficina4'];



$professor1 = $_POST['professor'];

$professor2 = $_POST['professor2'];

$professores3 = $_POST['professores3'];

$professores4 = $_POST['professores4'];



$horario1 = $_POST['horario'];

$horario2 = $_POST['horario2'];

$horario3 = $_POST['horario3'];

$horario4 = $_POST['horario4'];



/*--------------------------------------------------

Seleciona o idparticipantes de participantes 

---------------------------------------------------*/

$consulta_idparticipantes = "SELECT idparticipantes from participantes where nome=" . "\"" . $nome . "\"";



$result1 = mysql_query($consulta_idparticipantes) or die (mysql_error());

while($sql_part=mysql_fetch_array($result1))

{

$id_bd = $sql_part['idparticipantes'];

}



/*--------------------------------------------------

Seleciona o idparticipantes de participantes 

---------------------------------------------------*/

$consulta_idoficinas = "SELECT * from oficinas order by idoficinas";

$res_idoficinas = mysql_query($consulta_idoficinas) or die (mysql_error());



while($sql_idoficina = mysql_fetch_array($res_idoficinas))

{

$id_oficinas = $sql_idoficina['idoficinas'];

} 



$sql = "INSERT INTO oficinas(titulo, professor, horario) VALUES

('$titulo1','$professor1','$horario1')"; 

$rs = mysql_query($sql,$con) or die (mysql_error());



$sql1 = "INSERT INTO oficinas(titulo, professor, horario) VALUES

('$titulo2','$professor2','$horario2')"; 

$rs1 = mysql_query($sql1,$con) or die (mysql_error());



sql2 = "INSERT INTO oficinas(oficina, professor, horario) VALUES

('$oficina3','$professores3','$horario3')"; 

$rs2 = mysql_query($sql2,$con) or die (mysql_error());



$sql3 = "INSERT INTO oficinas(oficina, professor, horario) VALUES

('$oficina4','$professor4','$horario4')"; 

$rs3 = mysql_query($sql3,$con) or die (mysql_error());*/



/************************************************

INSERÇÃO na TABELA participantes_has_oficinas

************************************************/

$sql4 = "INSERT INTO participantes_has_oficinas VALUES

('$id_bd','$id_oficinas','1')"; 

$rs4 = mysql_query($sql4,$con) or die (mysql_error());

$msg = "Cliente CADASTRADO com sucesso";

echo "<meta HTTP-EQUIV='Refresh' ONTENT='0;URL=../mensagens.php?msg=$msg'>"; 

mysql_close($con);

?>

Edição feita por: Paulo Freitas, 29/12/2009, 14:30.
Arrumando a bagunça ;~


#2 André Manoel

André Manoel

    Doutor

  • Usuários
  • 996 posts
  • Sexo:Masculino
  • Localidade:Brasilia

Posted 29/12/2009, 09:40

E ae meu irmão!

Tudo na paz...?

Bemmm eu consegui enxergar um erro lá em cima no código...

Aqui :


$result1 = mysql_query($consulta_idparticipantes) or die (mysql_error());

while($sql_part=mysql_fetch_array($result1))

{

$id_bd = $sql_part['idparticipantes'];

}


Quando você faz isso aí em cima... Você está criando um laço aonde, a variável '$id_bd' irá receber um valor após o outro... ou seja...
Vamos supor que no primeiro laço ela irá receber o 'idparticipante' = 1...
No segundo laço vamos supor que ela receba o valor 3...

Então o 3 irá sobreescrever o valor de 1 que estava armazenado anteriormente! Entendeu?!
Por isso que Só está pegando o ultimo 'id'... porque no ultimo laço ele já sobreescreveu os outros id's!

A forma que eu enxergo para que vc possa resolver isso é: em vez de usar uma variável '$id_bd', você utilize um array para armazenar todos esses ids!

Em vez de usar '$id_bd' você pode usar:


$result1 = mysql_query($consulta_idparticipantes) or die (mysql_error());

while($sql_part=mysql_fetch_array($result1))

{

     $ids[] = $sql_part['idparticipantes'];

}


Será criado um array com os valores dos id's que depois você pode inserir através de um for ... ou um foreach no banco de dados.
Iniciando na Ajuda On line...

Posted Image Meu post lhe ajudou? Reputar/votar é uma das formas de agradecer.

#3 Eu_Nana

Eu_Nana

    12 Horas

  • Usuários
  • 291 posts
  • Sexo:Feminino
  • Localidade:SP

Posted 30/12/2009, 08:26

E ae meu irmão!

Tudo na paz...?

Bemmm eu consegui enxergar um erro lá em cima no código...

Aqui :

$result1 = mysql_query($consulta_idparticipantes) or die (mysql_error());

while($sql_part=mysql_fetch_array($result1))

{

$id_bd = $sql_part['idparticipantes'];

}
Quando você faz isso aí em cima... Você está criando um laço aonde, a variável '$id_bd' irá receber um valor após o outro... ou seja...
Vamos supor que no primeiro laço ela irá receber o 'idparticipante' = 1...
No segundo laço vamos supor que ela receba o valor 3...

Então o 3 irá sobreescrever o valor de 1 que estava armazenado anteriormente! Entendeu?!
Por isso que Só está pegando o ultimo 'id'... porque no ultimo laço ele já sobreescreveu os outros id's!

A forma que eu enxergo para que vc possa resolver isso é: em vez de usar uma variável '$id_bd', você utilize um array para armazenar todos esses ids!

Em vez de usar '$id_bd' você pode usar:

$result1 = mysql_query($consulta_idparticipantes) or die (mysql_error());

while($sql_part=mysql_fetch_array($result1))

{

 	$ids[] = $sql_part['idparticipantes'];

}

Será criado um array com os valores dos id's que depois você pode inserir através de um for ... ou um foreach no banco de dados.


Olá td bom?

Antes de mais nada....eu não sou "irmão".....sou uma garota.....

Bom fiz oq vc sugeriu....minhas alterações abaixo:

$consulta_idoficinas = "SELECT * from oficinas order by idoficinas";

$res_idoficinas = mysql_query($consulta_idoficinas) or die (mysql_error());

while($sql_idoficina = mysql_fetch_array($res_idoficinas))

{

$ids[] = $sql_idoficina['idoficinas'];

}
/************************************************

INSERÇÃO na TABELA participantes_has_oficinas

************************************************/

foreach($ids as $a){

$sql4 = "INSERT INTO participantes_has_oficinas VALUES('$id_bd','$a','1')"; $rs4 = mysql_query($sql4,$con) or die (mysql_error());

} 

$msg = "Cliente CADASTRADO com sucesso";
Agora esta fazendo oq eu quero....porém ainda esta com um erro.....qnd vou inserir as oficinas pela 1ª vez...ele não pega os ids, nem o id do participante, nem o id da oficina para inserir na tabela participantes_has_oficinas ...ele só insere qnd realizo a inserção pela 2ª vez. Oq devo fazer para corrigir esse erro?

E ae meu irmão!

Tudo na paz...?

Bemmm eu consegui enxergar um erro lá em cima no código...

Aqui :

$result1 = mysql_query($consulta_idparticipantes) or die (mysql_error());

while($sql_part=mysql_fetch_array($result1))

{

$id_bd = $sql_part['idparticipantes'];

}
Quando você faz isso aí em cima... Você está criando um laço aonde, a variável '$id_bd' irá receber um valor após o outro... ou seja...
Vamos supor que no primeiro laço ela irá receber o 'idparticipante' = 1...
No segundo laço vamos supor que ela receba o valor 3...

Então o 3 irá sobreescrever o valor de 1 que estava armazenado anteriormente! Entendeu?!
Por isso que Só está pegando o ultimo 'id'... porque no ultimo laço ele já sobreescreveu os outros id's!

A forma que eu enxergo para que vc possa resolver isso é: em vez de usar uma variável '$id_bd', você utilize um array para armazenar todos esses ids!

Em vez de usar '$id_bd' você pode usar:

$result1 = mysql_query($consulta_idparticipantes) or die (mysql_error());

while($sql_part=mysql_fetch_array($result1))

{

	$ids[] = $sql_part['idparticipantes'];

}

Será criado um array com os valores dos id's que depois você pode inserir através de um for ... ou um foreach no banco de dados.


Olá td bom?

Antes de mais nada....eu não sou "irmão".....sou uma garota.....

Bom fiz oq vc sugeriu....minhas alterações abaixo:

$consulta_idoficinas = "SELECT * from oficinas order by idoficinas";

$res_idoficinas = mysql_query($consulta_idoficinas) or die (mysql_error());

while($sql_idoficina = mysql_fetch_array($res_idoficinas))

{

$ids[] = $sql_idoficina['idoficinas'];

}
/************************************************

INSERÇÃO na TABELA participantes_has_oficinas

************************************************/

foreach($ids as $a){

$sql4 = "INSERT INTO participantes_has_oficinas VALUES('$id_bd','$a','1')"; $rs4 = mysql_query($sql4,$con) or die (mysql_error());

} 

$msg = "Cliente CADASTRADO com sucesso";
Agora esta fazendo oq eu quero....porém ainda esta com um erro.....qnd vou inserir as oficinas pela 1ª vez...ele não pega os ids, nem o id do participante, nem o id da oficina para inserir na tabela participantes_has_oficinas ...ele só insere qnd realizo a inserção pela 2ª vez. Oq devo fazer para corrigir esse erro?



Alguém sabe oq pode ser???

Edição feita por: Paulo Freitas, 29/12/2009, 14:32.
Arrumando a baguncinha... ;~





0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq