Cadastrar mais de um item e listar

24/07/2018

0

Boa noite :D
Não estou conseguindo cadastrar mais de um produto
Seria listado alguns exercícios e assim os que forem preenchidos, será adicionados no bd

1. Adicionei "produtos" no banco de dados
2. ID, nome, grupo, imagem, id_quem_add
3. Listei todos "produtos" adicionados no banco de dados
4. (Duvida) Adicionar um ou mais "produto" para um usuário selecionado e salvar junto uma informação adicional
5. Mostrar só os produtos que foram adicionados para o usuário

Segue imagem
https://i.stack.imgur.com/sBKlf.png

O que estou tentando (pra unir os que foi adicionado, estou criando um numero com RAND e adicionando o mesmo pra cada)

<?php
if(isset($_POST['cadastrar']) && $_POST['cadastrar'] == "register"){

    $NomeTreino = $_POST['nometreino'];
    $AlunoTreino = $_POST['aluno'];
    $NomeInstrutorTreino = $_POST['nomeinstrutor'];
    $DataTerminoTreino = $_POST['datatermino'];
    $ExercicioTreino = $_POST['exercicio'];
    $ObsExercicioTreino = $_POST['observacao'];
    $SeriesExercicioTreino = $_POST['series'];

// Gera um ID aleatorio
$IdTreino = rand(0, 99999);

    // VERIFICA SE ESCREVEU NOS CAMPOS
    if(empty($NomeTreino) || empty($AlunoTreino) || empty($NomeInstrutorTreino) || empty($DataTerminoTreino)){
        echo"<code class='btn-danger center-block text-center'>Preencha todos os campos.</code>";
    }else{
        $query ="SELECT * FROM treinos WHERE nome = '$NomeTreino'";
        $result = mysql_query($query);
        $conta = mysql_num_rows($result);
        $busca = mysql_fetch_assoc($result);

        if($conta > 0){
            echo"Desculpe, já existe um treino cadastrado com o mesmo nome.";
        }else{
            $cadastrar = "INSERT INTO treinos (id_conexao, nome, aluno, instrutor, data, exercicio, obs, series) VALUE ('$IdTreino', '$NomeTreino', '$AlunoTreino', '$NomeInstrutorTreino', '$DataTerminoTreino', '$ExercicioTreino', '$ObsExercicioTreino', '$SeriesExercicioTreino')";
            if(mysql_query($cadastrar)){
                echo "<code class='btn-success center-block text-center'>Treino adicionado com sucesso!</code>";
                echo("<script>window.location = 'treinos.php';</script>");
            }else{
                echo "<code class='btn-danger center-block text-center'>Não foi possível cadastrar este treino.</code>";
            }
        }
    }
}
?>
Lucas

Lucas

Responder

Post mais votado

25/07/2018

Oi Lucas,

O seu RAND, para gerar a primary key, não é a melhor das opções, pois esse número pode se repetir. Uma maneira bem fácil de cuidar desse problema, é usar o auto_increment, do MySQL. Segue como fazer:

CREATE TABLE TREINOS
(
	ID_CONEXAO INT NOT NULL AUTO_INCREMENT,
        ....
       PRIMARY KEY(ID_CONEXAO)
)


Utilizando esse recurso, quando você fazer o Insert, não passe por parâmetro o ID, ele não precisa constar no seu Insert, que o MySQL cuidará do preenchimento dele.

Fernando Duwe

Fernando Duwe
Responder

Mais Posts

25/07/2018

Lucas

Mas a intenção é essa parceiro

Criar uma ID que vai ser colocado em todos exercicios que vai ser cadastrado na hr
Responder

25/07/2018

Lucas

Não sei se deu pra entender

Mas esse ID é usado pra conectar todos exercicios cadastrados juntos no mesmo TREINO


Talvez seria mais fácil eu criar um checkbox e os que eu selecionar vai ser criado na tabela mas não sei como posso fazer isso
Responder

25/07/2018

Fernando Duwe

Oi Lucas,

Veja se esse exemplo lhe ajuda: https://www.formget.com/php-checkbox/

Você pode listar os diversos exercícios que você tem em banco, e gravar os que o usuário selecionou, nos checkbox. Caso tenha alguma dúvida como fazer, pode me contatar.
Responder

01/08/2018

Lucas

Mas o que eu mais preciso é conseguir adicionar a cada exercicio uma tabela no bd
Responder

02/08/2018

Lucas

Alguem poderia me ajudar a fazer com que este script adicione no bd todos checklist adicionado com os dados das caixas? nome do exercicio, obs e series
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar