Boa tarde Galera do bem ,
Tenho o seguinte código em uma pagina de cadastro :
$sql = "SELECT cpf,idUser FROM `tblContacts` where cpf = '".$cpf."' limit 1"; $resultado = $pdo ->query($sql); if($resultado !== 0 ) { foreach ($resultado as $row) { $randomicId = $row['idUser']; } } else { switch ($horaAtual) { case ($horaAtual > $hora1 && $horaAtual < $hora2): $sql = "SELECT * FROM `tblUsers` where grupo = 'vendas' and ativo = 1 and periodo = 'manha' ORDER BY RAND() LIMIT 1"; $resultado = $pdo ->query($sql); if($resultado !== false) { foreach($resultado as $row) { $randomicId = $row['idUser']; } } break; case ($horaAtual > $hora2 && $horaAtual < $hora3): $sql = "SELECT * FROM `tblUsers` where grupo = 'vendas' and ativo = 1 and periodo = 'tarde' ORDER BY RAND() LIMIT 1"; $resultado = $pdo ->query($sql); if($resultado !== false) { foreach($resultado as $row) { $randomicId = $row['idUser']; } } break; default: $sql = "SELECT * FROM `tblUsers` where grupo = 'vendas' and ativo = 1 and periodo = 'manha' ORDER BY RAND() LIMIT 1"; $resultado = $pdo ->query($sql); if($resultado !== false) { foreach($resultado as $row) { $randomicId = $row['idUser']; } } } } try { $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo->exec("SET CHARACTER SET utf8");//corrige os acentos na hora de gravar no BD $stmt = $pdo->prepare('INSERT INTO tblContacts(product, name, gender, cpf, rg, nasc, phone1, phone2, email, addressType, cep, address, number, ap, comp, quarter, city, state, refer, dateSend, hourSend, qtd,origem,idUser) VALUES(:product,:name, :gender, :cpf, :rg, :nasc, :phone1, :phone2, :email, :addressType, :cep, :address, :number, :ap, :comp, :quarter, :city, :state, :refer, :dateSend, :hourSend, :qtd,:origem,:idUser)'); $stmt->execute(array(':product' => $product,':name' => $name,':phone1' => $phone1,':gender'=>$gender,':cpf'=>$cpf,':rg'=>$rg,':nasc'=>$nasc,':phone1'=>$phone1,':phone2'=>$phone2,':email'=>$email,':addressType'=>$addressType,':cep'=>$cep,':address'=>$rua,':number'=>$number,':ap'=>$ap,':comp'=>$comp,':quarter'=>$quarter,':city'=>$city,':state'=>$state,':refer'=>$refer,':dateSend' =>$date, ':hourSend' => $hour , ':qtd' => $qtd,':origem'=> $origem,':idUser'=>$randomicId)); } catch(PDOException $e) { echo 'Error: ' . $e->getMessage(); } $pdo = null;
Era para o código fazer o seguinte :
Quando o usuario faz um cadastro no site , eu pego o CPF dele e consulto no banco para ver se tem alguém cadastro com esse CPF , se tiver ele pegara o valor do campo idUsuario e atribuirá para a variável $randomiId.
Se nao tiver nenhum cadastro com o CPF informado , ele ira fazer a consulta na tabela de usuários , pegando o ID de algum usuário aleatoriamente. e atribuir o ID desse usuário para a variável $randomicId
Assim , eu evitaria de que se alguém se cadastrar 2 vezes no site , o cadastro seja enviado para usuários diferentes.
Tipo , fulano x entrou no site e fez cadastro , por ser o primeiro cadastro dele no site , o sistema pegou o ID 35 . Ao entrar depois de uns dias , fulano x fez outro cadastro , como ele ja havia feito um cadastro , o sistema pegou e gravou o ID 35 no idUsuario.
Mas , o que ta acontecendo , é que , se é o primeiro cadastro da pessoa no site , o sistema nao esta atribuindo um valor para a variavel $randomiId , mas se o cadastro ja existe , ele pega o valor do banco e atribui normal.
O que ta errado no codigo?
Desde ja , grato.