Information provided by the BD

Asked

Viewed 65 times

0

Hello My project has a form that brings the BD information in case the user wants to edit, it is not changing the data, nor the image..

form:

  <?php 
  $id = $_GET["id"];
  //Executar consulta
  $result = mysqli_query($conectar, "SELECT * FROM videos WHERE id = '$id' LIMIT 1");
 $resultado = mysqli_fetch_assoc($result);
 ?>

<div class="container" style="width: 100%">

<div class="page-header"><h1>Editar de Vídeo</h1></div>
<div class="row">
    <div class="col-md-10">
<form class="form-horizontal" method="post" action="processa/proc_edit_vid.php"  >

<div class="form-group">
    <label for="inputEmail3" class="col-sm-2 control-label">Título</label>
        <div class="col-sm-10">
            <input type="texto" class="form-control" name="nome" placeholder="Título do Vídeo" value="<?php echo $resultado['nome'] ?>">
        </div>
</div>

<div class="form-group">
    <label for="inputEmail3" class="col-sm-2 control-label">Descrição</label>
        <div class="col-sm-10">
        <textarea class="form-control" rows="3" name="desc_vid" placeholder="Descrição do Vídeo"><?php echo $resultado['desc_vid'] ?></textarea>
        </div>
</div>

<div class="form-group">
    <label for="inputEmail3" class="col-sm-2 control-label">Tempo</label>
        <div class="col-sm-10">
            <input type="texto" class="form-control" name="tempo" placeholder="Tempo de Vídeo" value="<?php echo $resultado['tempo'] ?>">
        </div>
</div>

<div class="form-group">
    <label for="inputEmail3" class="col-sm-2 control-label">Star 1</label>
        <div class="col-sm-10">
            <input type="texto" class="form-control" name="star_1" placeholder="PornStar 1" value="<?php echo $resultado['star_1'] ?>">
        </div>
</div>

<div class="form-group">
    <label for="inputEmail3" class="col-sm-2 control-label">Star 2</label>
        <div class="col-sm-10">
            <input type="texto" class="form-control" name="star_2" placeholder="PornStar 2" value="<?php echo $resultado['star_2'] ?>">
        </div>
</div>

<div class="form-group">
    <label for="inputEmail3" class="col-sm-2 control-label">Imagem </label>
        <div class="col-sm-10"><input type="file" name="imagem"></div>
</div>
<?php   
$foto = $resultado['imagem'];
    if($foto == ""){?>
        <div class="form-group">
            <label for="inputEmail3" class="col-sm-2 control-label">Imagem  BD</label>
            <div class="col-sm-10">
                O Vídeo não possui Imagem
            </div>
        </div>
<?php
}
    if($foto != ""){?>
        <div class="form-group">
            <label for="inputEmail3" class="col-sm-2 control-label">Imagem do BD</label>
            <div class="col-sm-10">
                <img src="<?php echo "video/thumb/$foto"; ?>" width="100" height="100">
                <input type="hidden" name="img_antiga" value='<?php echo $foto ?>'>
            </div>
        </div>
<?php } ?>

<div class="form-group">
    <label for="inputEmail3" class="col-sm-2 control-label">Tags</label>
        <div class="col-sm-10">
            <input type="texto" class="form-control" name="tags" placeholder="Tags" value="<?php echo $resultado['tags'] ?>">
        </div>
</div>

<div class="form-group">
    <label for="inputEmail3" class="col-sm-2 control-label">Description</label>
        <div class="col-sm-10">
            <textarea class="form-control" rows="3" name="description" placeholder="Descrição que o Google Recebe"><?php echo $resultado['description'] ?></textarea>
        </div>
</div>

<?php $categoria_id = $resultado['categoria_id']; ?>
<div class="form-group">
    <label for="inputEmail3" class="col-sm-2 control-label">Categoria</label>
        <div class="col-sm-10">
            <select class="form-control" name="categoria_id">
                <option>Selecione</option>
                <?php 
                    $result_cat = mysqli_query($conectar, "SELECT * FROM categorias");
                while ($dados = mysqli_fetch_assoc($result_cat)){
                    $id_categoria = $dados['id'];
                ?>  
                <option value="<?php echo $dados["id"];?>"<?php if($id_categoria == $categoria_id){echo 'Selected';} ?>
                ><?php echo $dados["nome"];?></option>
                <?php } ?>
            </select>
        </div>
</div>


<input type="hidden" name="id" value="<?php echo $resultado['id']; ?>">
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
  <button type="submit" class="btn btn-success">Editar</button>
</div>
</div>
</form>
</div><br>
</div></div>

How They Were Saved

    $nome = $conectar->real_escape_string($nome);
    $desc_vid = $conectar->real_escape_string($desc_vid);
    $tempo = $conectar->real_escape_string($tempo);
    $star_1 = $conectar->real_escape_string($star_1);
    $star_2 = $conectar->real_escape_string($star_2);
    $nome_final = $conectar->real_escape_string($nome_final);
    $categoria_id = $conectar->real_escape_string($categoria_id);
    $tags = $conectar->real_escape_string($tags);
    $description = $conectar->real_escape_string($description);

    $query = mysqli_query($conectar, "INSERT INTO videos (nome, desc_vid, tempo, star_1, star_2, imagem, categoria_id, tags, description, created) VALUES ('".$nome."', '".$desc_vid."', '".$tempo."', '".$star_1."', '".$star_2."', '".$nome_final."', '".$categoria_id."', '".$tags."', '".$description."', NOW())") or die(mysqli_error($conectar));

PHP Editing

    <?php   session_start();
    include_once("../seguranca.php");
    include_once("../conexao.php");

    $id = $_POST["id"];
    $nome = $_POST["nome"];
    $desc_vid = $_POST["desc_vid"];
    $tempo = $_POST["tempo"];
    $star_1 = $_POST["star_1"];
    $star_2 = $_POST["star_2"];
    $imagem = $_FILES['imagem']['name'];
    $categoria_id = $_POST["categoria_id"];
    $tags = $_POST["tags"];
    $description = $_POST["description"];
    $img_antiga = $_POST["img_antiga"];

    if($imagem == ""){
    $nome = $conectar->real_escape_string($nome);
    $desc_vid = $conectar->real_escape_string($desc_vid);
    $tempo = $conectar->real_escape_string($tempo);
    $star_1 = $conectar->real_escape_string($star_1);
    $star_2 = $conectar->real_escape_string($star_2);
    $nome_final = $conectar->real_escape_string($nome_final);
    $categoria_id = $conectar->real_escape_string($categoria_id);
    $tags = $conectar->real_escape_string($tags);
    $description = $conectar->real_escape_string($description);
    $img_antiga = $conectar->real_escape_string($img_antiga);

    $query = mysqli_query($conectar, "UPDADE videos set nome='$nome', desc_vid='$desc_vid', tempo='$tempo', star_1='$star_1', star_2='$star_2', categoria_id='$categoria_id', tags='$tags', description='$description', modified = NOW() WHERE id='$id'");
        if (mysqli_affected_rows($conectar) != 0){
    <script type=\"text/javascript\">
          alert(\"Editado com Sucesso.\");
    </script>
    ";
    }else {
        echo "
        <script type=\"text/javascript\">
            alert(\"Edição não Realizado.\");
        </script>
        ";
    }
    } /* Comentado até o fim, pra testar o UPDADE
    else{
    // Local onde imagem vai ser salva
    $_UP['pasta'] = 'video/thumb/';
    // Tamanho da imagem
    $_UP['tamanho'] = 1024*1024*100; //5Mb
    // Exrensões permitidas
    $_UP['extensoes'] = array('png', 'jpg', 'jpeg', 'gif');
    // Renomear a imagem
    $_UP['renomear'] = false;

    // Tipos de erro de UpLoad do PHP
    $_UP['erros'][0] = 'Não houve erro';
    $_UP['erros'][1] = 'Imagem maior que o limite do php';
    $_UP['erros'][2] = 'Imagem muito grande';
    $_UP['erros'][3] = 'UpLoad da imagem feita parcialmente';
    $_UP['erros'][4] = 'Erro no UpLoad da imagem';

    // Verifica se houve algum erro
    if($_FILES['imagem']['erros'] != 0){
        die("Não foi possivel fazer UpLoad, Erro: <br />". $_UP['erros']        [$_FILES['imagem']['erros']]);
        exit;
    }

    // Verifica qual a extensão
    $img_nome = $_FILES['imagem']['name'];
    $img_separador = explode('.', $img_nome);
    $extensao = strtolower(end($img_separador));
    //$extensao = strtolower(end(explode('.', $_FILES['imagem']['name'])));
    if(array_search($extensao, $_UP['extensoes'])=== false){
echo "
<script type=\"text/javascript\">
    alert(\"Arquivo não compatível: png, jpg, jpeg e gif. \");
</script>
";
    }
    // Verifica o tamanho
    else if ($_UP['tamanho'] < $_FILES['imagem']['size']){
echo "Imagem muito grande, limite de 5Mb";
    }
    // Salva nos arquivos do site
    else{
//Verifica se deve trocar o nome da imagem
if($_UP['renomear'] == true){
    // Cria nome Baseado no UNIX TIMESTAMP atual e com extensão
    $nome_final = time().'.jpg';
}else{
    // Mantem o nome da imagem
    $nome_final = $_FILES['imagem']['name'];
}
// Verifica se é possivel mover a imagem para a pasta escolhida
if(move_uploaded_file($_FILES['imagem']['tmp_name'], $_UP['pasta'].$nome_final)){
    // Upload efetuado com sucesso

    echo "
<script type=\"text/javascript\">
    alert(\"Editado com Sucesso.\");
</script>
";
}else{
    // Falha no UpLoad

    echo "
<script type=\"text/javascript\">
    alert(\"Edição não Realizado.\");
</script>
";
    }
}
    }*/
?>
  • In the last two UPDATE you are placing points trying to concatenate, but you are not closing double quotes before and reopening them after the variables.

  • this is the problem, I’m trying to edit a product that already has image, so as if($image == "") it only executes the first UPDATE, (I already commented the code after Else) it presents the alert that was edited (I added the same alert of Else), but did not change any field in the BD

1 answer

1

The updates as Killerjack highlighted involving variables with double quotes.

"UPDADE videos SET nome='".$nome."', desc_vid='".$desc_vid."', -----

But you can also omit them by removing the concatenation points.

"UPDADE videos SET nome='$nome', desc_vid='$desc_vid', -----

$query = mysqli_query($conectar, "UPDADE videos SET nome='$nome', desc_vid='$desc_vid', tempo='$tempo', star_1='$star_1', star_2='$star_2', imagem='$nome_final', categoria_id='$categoria_id', tags='$tags', description='$description', modified = NOW() WHERE id='$id'");


$query = mysqli_query($conectar, "UPDADE videos SET nome='$nome', desc_vid='$desc_vid', tempo='$tempo', star_1='$star_1', star_2='$star_2', categoria_id='$categoria_id', tags='$tags', description='$description', modified = NOW() WHERE id='$id'");
  • this is the problem, I’m trying to edit a product that already has image, so as if($image == "") it only executes the first UPDATE, (I already commented the code after Else) it presents the alert that was edited (I added the same alert of Else), but did not change any field in the BD.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.