Jump to content

Search the Community

Showing results for tags 'sql'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Bem-vindos ao Portugal-a-Programar
    • Sugestões, Críticas ou Dúvidas relativas ao P@P
    • Acerca do P@P
  • Comunidade a Trabalhar
    • Wiki P@P
    • Apresentação de Projectos de Programação
    • Downloads
  • Revista PROGRAMAR
    • Revista PROGRAMAR
  • Desenvolvimento Geral
    • C
    • C++
    • Java
    • Haskell
    • Pascal
    • Python
    • Bases de Dados
    • Visual Basic Clássico
    • Visual Basic for Applications (VBA)
    • Dispositivos Móveis
    • Outras Linguagens
  • Desenvolvimento Orientado para Web
    • PHP
    • HTML
    • CSS
    • Javascript
    • Outras Linguagens de WebDevelopment
    • Desenvolvimento Web
  • Desenvolvimento .NET
    • C#
    • Visual Basic .NET
    • ASP.NET
    • WPF & SilverLight
  • Software e Sistemas Operativos
    • Software de Produtividade
    • Sistemas Operativos
    • Apresentação de Software
  • Informática
    • Interfaces Visuais
    • Computação Gráfica
    • Algoritmia e Lógica
    • Segurança e Redes
    • Hardware
    • Electrónica
    • Automação Industrial
    • Matemática
    • Dúvidas e Discussão de Programação
    • Notícias de Tecnologia
  • Outras Áreas
    • Dúvidas Gerais
    • Discussão Geral
    • Eventos
    • Anúncios de Emprego
    • Tutoriais
    • Snippets / Armazém de Código
  • Arquivo Morto
    • Projectos Descontinuados
    • System Empires

Blogs

  • Blog dos Moderadores
  • Eventos
  • Notícias de Tecnologia
  • Blog do Staff
  • Revista PROGRAMAR
  • Projectos
  • Wiki

Categories

  • Revista PROGRAMAR
  • Tutoriais
  • Textos Académicos
  • Exercícios Académicos
    • Exercícios c/ Solução
    • Exercícios s/ Solução
  • Bibliotecas e Aplicações
  • Outros

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Found 266 results

  1. lordspirit

    Query de insert não devolve resultados

    Bom dia e boa quarentena se for o vosso caso. Ando a desenvolver um software de inventário a partir de uma app partilhada no github aqui. Tenho tudo a funcionar na BD desde inserção de múltiplas categorias ao filtro das mesmas através de dropdowns mas algo se passa na minha query para inserir os produtos. Já tentei algumas técnicas de debug mas sem solução e vim em busca da vossa ajuda. Deixo o código. products.php <?php require_once '../database/database_connection.php'; require_once 'helper.php'; if(!isset($_SESSION['type'])) { header("Location: ../login.php"); die; } if($_SESSION['type']!='master') { header("Location : ../user"); die; } require_once '../templates/header.php'; ?> <section id="breadcrumb"> <div class="container"> <ol class="breadcrumb"> <li><a href="index.php">Dashboard</a></li> <li class="active">Product</li> </ol> </div> </section> <div class="container"> <span id="alert_action"></span> <div class="row"> <div class="col-md-12"> <div class="panel panel-default"> <div class="panel-heading-pink"> <h4 class="text-white">Product List</h4> <button type="button" class="btn btn-blue-grey" id="btnProductModal" data-toggle="modal" data-target="#productModal"><span class="glyphicon glyphicon-plus"></span> New Product</button> </div> <div class="panel-body"> <div class="row"> <div class="col-sm-12 table-responsive"> <table id="product_data" class="table table-bordered table-striped"> <thead> <tr> <th>Product ID</th> <th>Product Name</th> <th>Pais</th> <th>Localização</th> <th>SubLocalização</th> <th>Category</th> <th>Sub Category</th> <th>Brand</th> <th>Supplier</th> <th>Quantity</th> <th>Etiquetas</th> <th>Enter By</th> <th>Status</th> <th>Details</th> <th>Edit</th> <th>Delete</th> </tr> </thead> </table> </div> </div> </div> </div> </div> </div> </div> <div class="modal fade" id="productModal"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> <h4 class="modal-title text-white"></h4> </div> <div class="modal-body"> <form method="post" id="productFormModal"> <div class="form-group col-md-12"> <label for="productName">Item / Modelo</label> <input type="text" class="form-control" name="productName" id="productName" placeholder="Item / Modelo" required> </div> <div class="form-group col-md-4"> <label for="countryID">Pais</label> <select class="form-control" id="countryID" name="countryID" required> <option value="none" selected disabled hidden> Pais </option> <?php echo selectCountryList($conn); ?> </select> </div> <div class="form-group col-md-4"> <label for="categoryID">Categoria</label> <select class="form-control" id="categoryID" name="categoryID"> <option value="none" selected disabled hidden> Categoria </option> <?php echo selectCategoryList($conn); ?> </select> </div> <div class="form-group col-md-4"> <label for="brandID">Marca</label> <select class="form-control" id="brandID" name="brandID"> <option value="none" selected disabled hidden> Marca </option> <?php echo selectBrandList($conn); ?> </select> </div> <div class="form-group col-md-4"> <label for="locationID">Localização</label> <select class="form-control" id="locationID" name="locationID"> </select> </div> <div class="form-group col-md-4"> <label for="subcategoryID">Sub Categoria</label> <select class="form-control" id="subcategoryID" name="subcategoryID"> <!-- Sub category function --> </select> </div> <div class="form-group col-md-4"> <label for="supplierID">Fornecedor</label> <select class="form-control" id="supplierID" name="supplierID" required> <option value="none" selected disabled hidden> Fornecedor </option> <?php echo selectSupplierList($conn); ?> </select> </div> <div class="form-group col-md-4"> <label for="sublocationID">Sub Localização</label> <select class="form-control" id="sublocationID" name="sublocationID" required> <!-- Sublocation function --> </select> </div> <div class="form-group col-md-8"> <label for="productQuantity">Quantidade</label> <div class="input-group"> <input type="number" class="form-control" id="productQuantity" placeholder="Quantidade" required> <span class="input-group-addon"> <select id="productUnit" name="productUnit" required> <option value="Unit">Unidades</option> <option value="Mts">Metros</option> <option value="Box">Bobine</option> </select> </span> </div> </div> <div class="form-group col-md-12"> <label for="productDescription">Observações</label> <textarea class="form-control" rows="3" name="productDescription" id="productDescription" placeholder="Observações"></textarea> </div> <div class="form-group col-md-6"> <label for="ipaddress">Endereço IP</label> <div class="input-group"> <span class="input-group-addon">IP </span> <input type="text" class="form-control" id="ipaddress"> </div> </div> <div class="form-group col-md-6"> <label for="serialnumber">Número de Serie</label> <div class="input-group"> <span class="input-group-addon">Serial</span> <input type="text" class="form-control" id="serialnumber"> </div> </div> <div class="form-group col-md-4"> <label for="label1">Etiqueta 1</label> <select class="form-control" id="label1" name="label1" required> <option value="none" selected disabled hidden> Etiqueta 1 </option> <?php echo selectLabelList($conn); ?> </select> </div> <div class="form-group col-md-4"> <label for="label2">Etiqueta 2</label> <select class="form-control" id="label2" name="label2" required> <option value="none" selected disabled hidden> Etiqueta 2 </option> <?php echo selectLabelList($conn); ?> </select> </div> <div class="form-group col-md-4"> <label for="label3">Etiqueta 3</label> <select class="form-control" id="label3" name="label3" required> <option value="none" selected disabled hidden> Etiqueta 3 </option> <?php echo selectLabelList($conn); ?> </select> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-dark" data-dismiss="modal">Cancel</button> <input type="submit" id="productBtnModal" class="btn btn-pink text-white" value=""> </div> </form> </div> </div> </div> <!-- Modal View --> <div class="modal fade" id="viewProductModal" tabindex="-1" role="dialog" aria-labelledby="viewProductModalLabel"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header bg-lightblue"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> <h4 class="modal-title text-white">Product Details</h4> </div> <div class="modal-body"> </div> <div class="modal-footer"> <button type="button" class="btn btn-dark" data-dismiss="modal">Close</button> </div> </div> </div> </div> <div id="deleteProductModal" class="modal fade"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header bg-red"> <button type="button" style="color: #fff;" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> <h4 class="modal-title text-white"><span class="glyphicon glyphicon-trash"></span> Delete Product</h4> </div> <div class="modal-body"> </div> <div class="modal-footer"> <button type="button" class="btn btn-dark" data-dismiss="modal">Cancel</button> <input type="submit" class="btn btn-danger" id="deleteProductBtn" value="Delete Product"> </div> </div> </div> </div> <script type="text/javascript"> $(document).ready(function(){ const productListInfo = $('#product_data').DataTable({ dom: '<"top"Bif>rt<"bottom"lp><"clear">', buttons: [ 'copy', 'print', 'excel', 'pdf', 'colvis' ], "processing": true, "serverSide": true, "order" : [], "ajax" : { url : 'products_fetch.php', type : 'POST' }, "pageLength" : 10, "columns":[ {"name" : "productID", "orderable":true}, {"name" : "productName", "orderable":true}, {"name" : "countryName", "orderable":true}, {"name" : "locationName", "orderable":true}, {"name" : "sublocationName", "orderable":true}, {"name" : "categoryName", "orderable":true}, {"name" : "subcategoryName", "orderable":true}, {"name" : "brandName", "orderable":true}, {"name" : "supplierName", "orderable":true}, {"name" : "productQuantity", "orderable":true}, {"name" : "productUnit", "orderable":false}, {"name" : "productDescription", "orderable":true}, {"name" : "ipAddress", "orderable":true}, {"name" : "serialNumber", "orderable":true}, {"name" : "label1", "orderable":true}, {"name" : "label2", "orderable":true}, {"name" : "label3", "orderable":true}, {"name" : "userName", "orderable":true}, {"name" : "productStatus", "orderable":true}, {"name" : "Edit", "orderable":false}, {"name" : "View", "orderable":false}, {"name" : "Delete", "orderable":false} ] }); let hasSelectChange = false; let addProductToken = ''; let updateProductToken = ''; let deleteProductToken = ''; $(document).on('click','#btnProductModal', function(){ updateProductToken = '<?php echo hash('sha256', 'abcdef') ?>'; deleteProductToken = "<?php echo hash('sha256', '12345') ?>"; addProductToken = "<?php echo hash('sha256', 'add_product_token') ?>"; $('#productModal .modal-body div').remove('.checkbox'); $('#productFormModal')[0].reset(); $('#productModal .modal-header').removeClass('bg-orange'); $('#productModal .modal-header').removeClass('bg-red'); $('#productModal .modal-header').addClass('bg-pink'); $('#productModal .modal-title').html('<span class="glyphicon glyphicon-plus"></span> Add New Product'); $('#productBtnModal').removeClass('deleteProductSubmit'); $('#productBtnModal').removeClass('btn-warning updateProductSubmit'); $('#productBtnModal').addClass('btn-pink text-white addProductSubmit'); $('#productBtnModal').val('Add New Product'); $('#productBtnModal').removeAttr('update_product_id'); $('#productBtnModal').removeAttr('delete_product_id'); $('#productBtnModal').removeAttr('delete_product_name'); $('#productUnit option').remove('#selectedValue'); $('#productUnit option').remove('#disabledSelected'); $('#productUnit').prepend(`<option value="" id="disabledSelected" disabled selected>Unidade</option>`); //opçoes caixa categoria $('#categoryID option').remove('#categorySelectedValue'); $('#categoryID option').remove('#categoryDisabledSelected'); $('#categoryID').prepend(`<option disabled selected id="categoryDisabledSelected">Categoria</option>`); //opçoes caixa pais $('#countryID option').remove('#countrySelectedValue'); $('#countryID option').remove('#countryDisabledSelected'); $('#countryID').prepend(`<option disabled selected id="countryDisabledSelected">Pais</option>`); //opçoes caixa localização $('#locationID option').remove('#locationSelectedValue'); $('#locationID option').remove('#locationDisabledSelected'); $('#locationID').prepend(`<option disabled selected id="locationDisabledSelected">Localização</option>`); //opçoes caixa sublocalização $('#sublocationID option').remove('#sublocationSelectedValue'); $('#sublocationID option').remove('#sublocationDisabledSelected'); $('#sublocationID').prepend(`<option disabled selected id="sublocationDisabledSelected">Sub Localização</option>`); //opçoes caixa subcategoria $('#subcategoryID option').remove('#subcategorySelectedValue'); $('#subcategoryID option').remove('#subcategoryDisabledSelected'); $('#subcategoryID').prepend(`<option disabled selected id="subcategoryDisabledSelected">Sub Categoria</option>`); //opçoes caixa marca $('#brandID option').remove('#brandSelectedValue'); $('#brandID option').remove('#brandDisabledSelected'); $('#brandID').prepend(`<option disabled selected id="brandDisabledSelected">Marca</option>`); //opçoes caixa fornecedor $('#supplierID option').remove('#supplierSelectedValue'); $('#supplierID option').remove('#supplierDisabledSelected'); $('#supplierID').prepend(`<option disabled selected id="supplierDisabledSelected">Fornecedor</option>`); //opçoes caixa etiqueta 1 $('#label1 option').remove('#label1SelectedValue'); $('#label1 option').remove('#label1DisabledSelected'); $('#label1').prepend(`<option disabled selected id="label1DisabledSelected">Etiqueta 1</option>`); //opçoes caixa etiqueta 2 $('#label2 option').remove('#label2SelectedValue'); $('#label2 option').remove('#label2DisabledSelected'); $('#label2').prepend(`<option disabled selected id="label2DisabledSelected">Etiqueta 2</option>`); //opçoes caixa etiqueta 3 $('#label3 option').remove('#label3SelectedValue'); $('#label3 option').remove('#label3DisabledSelected'); $('#label3').prepend(`<option disabled selected id="label3DisabledSelected">Etiqueta 3</option>`); $('#brandList').html(''); }); //*********************** perceber funcionalidade ***************************** $(document).on('change', '#categoryID', function(){ hasSelectChange = true; const categoryID = $('#categoryID').val(); $.ajax({ url : 'products_manage.php', method : 'POST', data : {'categoryID' : categoryID, 'hasSelectChange' : hasSelectChange}, success:function(data){ $('#brandList').html(data); } }); }); //*************************************************************************** $(document).on('click', '.addProductSubmit', function(event){ event.preventDefault(); $(this).attr('disabled', 'disabled'); const addProductFormData = [ {name : 'addProductToken', value : addProductToken}, {name : 'productName', value : $('#productName').val()}, {name : 'countryID', value : $('#countryID').val()}, {name : 'locationID', value : $('#locationID').val()}, {name : 'sublocationID', value : $('#sublocationID').val()}, {name : 'categoryID', value : $('#categoryID').val()}, {name : 'subcategoryID', value : $('#subcategoryID').val()}, {name : 'brandID', value : $('#brandID').val()}, {name : 'supplierID', value : $('#supplierID').val()}, {name : 'productQuantity', value : $('#productQuantity').val()}, {name : 'productUnit', value : $('#productUnit').val()}, {name : 'productDescription', value : $('#productDescription').val()}, {name : 'ipaddress', value : $('#ipaddress').val()}, {name : 'serialnumber', value : $('#serialnumber').val()}, {name : 'label1', value : $('#label1').val()}, {name : 'label2', value : $('#label2').val()}, {name : 'label3', value : $('#label3').val()}, ]; $.ajax({ url : 'products_manage.php', method : 'POST', data : addProductFormData, success:function(data){ $('#productFormModal')[0].reset(); $('#productModal').modal('hide'); $('#alert_action').fadeIn().html(`<div class="alert alert-info"> <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a> <strong>`+ data +`</strong> </div>`); $('#productBtnModal').attr('disabled', false); productListInfo.ajax.reload(); } }); }); $(document).on('click', '.viewProduct', function(){ const productViewID = $(this).attr('id'); const productViewName = $(this).attr('productViewName'); const productViewCountry = $(this).attr('productViewCountry'); const productViewLocation = $(this).attr('productViewLocation'); const productViewSublocation = $(this).attr('productViewSublocation'); const productViewCategory = $(this).attr('productViewCategory'); const productViewSubcategory = $(this).attr('productViewSubcategory'); const productViewBrand = $(this).attr('productViewBrand'); const productViewSupplier = $(this).attr('productViewSupplier'); const productViewQuantity = $(this).attr('productViewQuantity'); const productViewDescription = $(this).attr('productViewDescription'); const productViewIpAddress = $(this).attr('productViewIpAddress'); const productViewSerialNumber = $(this).attr('productViewSerialNumber'); const productViewLabel1 = $(this).attr('productViewLabel1'); const productViewLabel2 = $(this).attr('productViewLabel2'); const productViewLabel3 = $(this).attr('productViewLabel3'); const productViewEnterBy = $(this).attr('productViewEnterBy'); const productViewStatus = $(this).attr('productViewStatus'); console.log(productViewBasePrice); let statusTag = ''; let productDescriptionTag = '' if(productViewDescription==''){ productDescriptionTag = '<td> - </td>' }else{ productDescriptionTag = '<td>'+productViewDescription+'</td>' } if(productViewStatus=='active'){ statusTag = '<td class="text-success" >Activo</td>' }else { statusTag = '<td class="text-danger" >Inactivo</td>' } $('#viewProductModal .modal-body').html(` <table class="table table-striped"> <tr> <td>Product ID</td> <td>`+productViewID+`</td> </tr> <tr> <td>Product Name</td> <td>`+productViewName+`</td> </tr> <tr> <td>Product Country</td> <td>`+productViewCountry+`</td> </tr> <tr> <td>Description</td> `+productViewLocation+` </tr> <tr> <td>Brand</td> <td>`+productViewSublocation+`</td> </tr> <tr> <td>Category</td> <td>`+productViewCategory+`</td> </tr> <tr> <td>Product Quantity</td> <td>`+productViewSubcategory+`</td> </tr> <tr> <td>Enter By</td> <td>`+productViewBrand+`</td> </tr> <tr> <td>Enter By</td> <td>`+productViewSupplier+`</td> </tr> <tr> <td>Enter By</td> <td>`+productViewQuantity+`</td> </tr> <tr> <td>Enter By</td> <td>`+productViewLabels+`</td> </tr> <tr> <td>Enter By</td> <td>`+productViewEnterBy+`</td> </tr> <tr> <td>Enter By</td> <td>`+productViewStatus+`</td> </tr> <tr> <td>Enter By</td> <td>`+productViewDescription+`</td> </tr> <tr> <td>Product Status</td> `+statusTag+` </tr> </table>`); }); $(document).on('click', '.editProduct', function(){ addProductToken = "<?php echo hash('sha256', 'asdfgh') ?>"; deleteProductToken = "<?php echo hash('sha256', '12345') ?>"; updateProductToken = '<?php echo hash('sha256', 'update_product_token') ?>'; $('#productFormModal')[0].reset(); $('#productModal .modal-header').removeClass('bg-pink'); $('#productModal .modal-header').removeClass('bg-red'); $('#productModal .modal-header').addClass('bg-orange'); $('#productModal .modal-title').html('<span class="glyphicon glyphicon-plus"></span>Edit Product'); $('#productBtnModal').removeClass('deleteProductSubmit'); $('#productBtnModal').addClass('btn-warning updateProductSubmit'); $('#productBtnModal').removeClass('btn-pink text-white addProductSubmit'); $('#productBtnModal').val('Edit Product'); $('#productBtnModal').removeAttr('delete_product_id'); $('#productBtnModal').removeAttr('delete_product_name'); const productEditID = $(this).attr('id'); const productEditName = $(this).attr('productEditName'); const productEditDescription = $(this).attr('productEditDescription'); const productEditBrand = $(this).attr('productEditBrand'); const productEditCategory = $(this).attr('productEditCategory'); const productEditQuantity = $(this).attr('productEditQuantity'); const productEditBasePrice = $(this).attr('productEditBasePrice'); const productEditTax = $(this).attr('productEditTax'); const productEditEnterBy = $(this).attr('productEditEnterBy'); const productEditStatus = $(this).attr('productEditStatus'); const productEditBrandID = $(this).attr('productEditBrandID'); const productEditCategoryID = $(this).attr('productEditCategoryID'); const productEditUnit = $(this).attr('productEditUnit'); $('#productBtnModal').attr('update_product_id', productEditID); $('#productModal').modal('show'); $('#productName').val(productEditName); $('#categoryID option').remove('#categorySelectedValue'); $('#categoryID option').remove('#categoryDisabledSelected'); $('#categoryID').prepend(`<option value="`+productEditCategoryID+`" id="categorySelectedValue" selected>`+productEditCategory+`</option>`); $('#productDescription').val(productEditDescription); $('#productQuantity').val(productEditQuantity); $('#productUnit option').remove('#selectedValue'); $('#productUnit option').remove('#disabledSelected'); $('#productUnit').prepend(`<option value="`+productEditUnit+`" id="selectedValue" selected>`+productEditUnit+`</option>`); let checkboxElems = ''; if(productEditStatus== 'active'){ checkboxElems = `<label id="labelStatusProduct"> <input type="checkbox" id="checkboxStatusProduct" checked> Activo </label>`; } else{ checkboxElems = `<label id="labelStatusProduct"> <input type="checkbox" id="checkboxStatusProduct" > Inactivo </label>`; } $('#productModal .modal-body div').remove('.checkbox'); $('#productModal .modal-body').append(`<div class="checkbox"> `+ checkboxElems +` </div>`); }); $(document).on('click', '#checkboxStatusProduct', function(){ let str = $("#labelStatusProduct").text(); let str2 = str.trim(); if(str2=='Activo'){ $("#labelStatusProduct").html(`<input type="checkbox" id="checkboxStatusProduct" > Inactivo`); } else{ $("#labelStatusProduct").html(`<input type="checkbox" id="checkboxStatusProduct" checked > Activo`); } }); $(document).on('click','.updateProductSubmit', function(event){ event.preventDefault(); $(this).attr('disabled', 'disabled'); let str = $("#labelStatusProduct").text(); let str2 = str.trim(); let updateProductStatus = str2.toLowerCase(); const editProductFormData = [ {name : 'updateProductToken', value : updateProductToken}, {name : 'productID', value : $(this).attr('update_product_id')}, {name : 'productName', value : $('#productName').val()}, {name : 'countryID', value : $('#countryID').val()}, {name : 'locationID', value : $('#locationID').val()}, {name : 'sublocationID', value : $('#sublocationID').val()}, {name : 'categoryID', value : $('#categoryID').val()}, {name : 'subcategoryID', value : $('#subcategoryID').val()}, {name : 'brandID', value : $('#brandID').val()}, {name : 'supplierID', value : $('#supplierID').val()}, {name : 'productQuantity', value : $('#productQuantity').val()}, {name : 'productUnit', value : $('#productUnit').val()}, {name : 'productDescription', value : $('#productDescription').val()}, {name : 'ipAddress', value : $('#ipAddress').val()}, {name : 'serialNumber', value : $('#serialNumber').val()}, {name : 'label1', value : $('#label1').val()}, {name : 'label2', value : $('#label2').val()}, {name : 'label3', value : $('#label3').val()}, {name : 'productStatus', value : updateProductStatus} ]; $.ajax({ url : 'products_manage.php', method : 'POST', data : editProductFormData, success:function(data){ $('#productFormModal')[0].reset(); $('#productModal').modal('hide'); $('#alert_action').fadeIn().html(`<div class="alert alert-warning"> <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a> <strong>`+ data +`</strong> </div>`); $('#productBtnModal').attr('disabled', false); productListInfo.ajax.reload(); } }); }); $(document).on('click', '.deleteProduct', function(){ addProductToken = "<?php echo hash('sha256', 'asdfgh') ?>"; deleteProductToken = "<?php echo hash('sha256', 'delete_product_token') ?>"; updateProductToken = '<?php echo hash('sha256', 'abcdef') ?>'; $('#productBtnModal').removeClass('btn-warning updateProductSubmit'); $('#productBtnModal').removeClass('btn-pink text-white addProductSubmit'); $('#deleteProductBtn').removeAttr('update_product_id'); $('#deleteProductBtn').attr('delete_product_id', $(this).attr('id')); $('#deleteProductBtn').attr('delete_product_name', $(this).attr('productName')); $('#deleteProductBtn').addClass('deleteProductSubmit'); $('#deleteProductModal .modal-body').html(`<h5 class="text-black"> Are You Sure Want to Permanently Delete <strong>"`+ $(this).attr('productName') +`"</strong> Product ?</h5>`) }); $(document).on('click','.deleteProductSubmit', function(event){ event.preventDefault(); $('#deleteProductBtn').attr('disabled', 'disabled'); deleteProductSubmit = true; const deleteProductFormData = [ {name : 'deleteProductToken', value : deleteProductToken}, {name : 'productID', value : $(this).attr('delete_product_id')}, {name : 'productName', value : $(this).attr('delete_product_name')} ]; $.ajax({ url : 'products_manage.php', method : 'POST', data : deleteProductFormData, success:function(data){ $('#deleteProductModal').modal('hide'); $('#alert_action').fadeIn().html(`<div class="alert alert-danger"> <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a> <strong>`+ data +`</strong> </div>`); $('#deleteProductBtn').attr('disabled', false); productListInfo.ajax.reload(); } }) }); }); $("#countryID").change(function(){ var deptid = $('#countryID').find(":selected").val(); $.ajax({ url: 'get_locations.php', type: 'post', data: {country:deptid}, success:function(response){ $('#locationID').empty() .append('<option value="" id="disabledSelected" disabled="" selected="">Select Location</option>') .append(response); } }); }); $("#locationID").change(function(){ var deptid = $('#locationID').find(":selected").val(); $.ajax({ url: 'get_sublocations.php', type: 'post', data: {location:deptid}, success:function(response){ $('#sublocationID').empty() .append('<option value="" id="disabledSelected" disabled="" selected="">Sub Localização</option>') .append(response); } }); }); $("#categoryID").change(function(){ var deptid = $('#categoryID').find(":selected").val(); $.ajax({ url: 'get_subcategories.php', type: 'post', data: {category:deptid}, success:function(response){ $('#subcategoryID').empty() .append('<option value="" id="disabledSelected" disabled="" selected="">Sub Categoria</option>') .append(response); } }); }); </script> <?php require_once '../templates/footer.php'; ?> products_manage.php <?php require_once '../database/database_connection.php'; require_once 'helper.php'; if(!isset($_SESSION['type'])) { header("Location: ../login.php"); die; } if($_SESSION['type']!='master') { header("Location : ../user"); die; } // if(isset($_POST['hasSelectChange'])) // { // if($_POST['hasSelectChange']==true) // { // echo selectProductList($conn, $_POST['categoryID']) ; // } // } if(isset($_POST['addProductToken'])) { $token = hash('sha256', 'add_product_token'); if($_POST['addProductToken']===$token) { if(htmlspecialchars($_POST['productName']!='') && htmlspecialchars($_POST['productQuantity']!='') && htmlspecialchars($_POST['productUnit']!='')) { if(is_numeric(htmlspecialchars($_POST['productQuantity'])) && !is_numeric(htmlspecialchars($_POST['productName']))) { $query = "INSERT INTO products (productName, countryID, locationID, sublocationID, , categoryID, subcategoryID, brandID, supplierID, productQuantity, productUnit, productDescription, ipAddress, serialNumber, label1, label2, label3, productEnterBy, productStatus, productDate) VALUES(:productName, :countryID, :locationID, :sublocationID, :categoryID, :subcategoryID, :brandID, :supplierID, :productQuantity, :productUnit, :productDescription, :ipAddress, :serialNumber, :label1, :label2, :label3, :productEnterBy, :productStatus, :productDate)"; $stmt = $conn->prepare($query); $stmt->execute([ ':productName' => htmlspecialchars($_POST['productName']), ':countryID' => htmlspecialchars($_POST['countryID']), ':locationID' => htmlspecialchars($_POST['locationID']), ':sublocationID' => htmlspecialchars($_POST['sublocationID']), ':categoryID' => htmlspecialchars($_POST['categoryID']), ':subcategoryID' => htmlspecialchars($_POST['subcategoryID']), ':brandID' => htmlspecialchars($_POST['brandID']), ':supplierID' => htmlspecialchars($_POST['supplierID']), ':productQuantity' => htmlspecialchars($_POST['productQuantity']), ':productUnit' => htmlspecialchars($_POST['productUnit']), ':productDescription' => htmlspecialchars($_POST['productDescription']), ':ipAddress' => htmlspecialchars($_POST['ipAddress']), ':serialNumber' => htmlspecialchars($_POST['serialNumber']), ':label1' => htmlspecialchars($_POST['label1']), ':label2' => htmlspecialchars($_POST['label2']), ':label3' => htmlspecialchars($_POST['label3']), ':productEnterBy' => $_SESSION['userID'], ':productStatus' => 'active', ':productDate' => date('Y-m-d') ]); $result = $stmt->rowCount(); if($result > 0) { echo "New Product Added!"; } else { die('Failed to execute! an error occured.'); } } else { die('Product Name can not filled by numeric or Product Quantity, must be filled by numeric.'); } } else { die('Please fill Product Name, Product Quantity and Product Unit Field.'); } } else { die('Failed to execute! an error occured.'); } } if(isset($_POST['updateProductToken'])) { $token = hash('sha256', 'update_product_token'); if($_POST['updateProductToken']===$token) { if(htmlspecialchars($_POST['brandID'])!='' && htmlspecialchars($_POST['categoryID']!='') && htmlspecialchars($_POST['productName']!='') && htmlspecialchars($_POST['productQuantity']!='') && htmlspecialchars($_POST['productBasePrice']!='') && htmlspecialchars($_POST['productTax']!='') && htmlspecialchars($_POST['productUnit']!='')) { if(is_numeric(htmlspecialchars($_POST['productBasePrice'])) && is_numeric(htmlspecialchars($_POST['productTax'])) && is_numeric(htmlspecialchars($_POST['productQuantity'])) && !is_numeric(htmlspecialchars($_POST['productName']))) { $query = "UPDATE product SET categoryID = :categoryID, brandID = :brandID, productName = :productName, productDescription = :productDescription, productBasePrice = :productBasePrice, productQuantity = :productQuantity, productUnit = :productUnit, productTax = :productTax , productStatus = :productStatus WHERE productID = :productID"; $stmt = $conn->prepare($query); $stmt->execute([ ':categoryID' => htmlspecialchars($_POST['categoryID']), ':brandID' => htmlspecialchars($_POST['brandID']), ':productName' => htmlspecialchars($_POST['productName']), ':productDescription' => htmlspecialchars($_POST['productDescription']), ':productBasePrice' => htmlspecialchars(preg_replace('/[^0-9]/', '', $_POST['productBasePrice'])), ':productQuantity' => htmlspecialchars($_POST['productQuantity']), ':productUnit' => htmlspecialchars($_POST['productUnit']), ':productTax' => htmlspecialchars(preg_replace('/[^0-9]/', '', $_POST['productTax'])), ':productStatus' => htmlspecialchars($_POST['productStatus']), ':productID' => htmlspecialchars($_POST['productID']) ]); $result = $stmt->rowCount(); if($result > 0) { echo "Product Edited"; } else { die('Failed to edit product An error occured.'); } } else { die('Product Name can not filled by numeric or Product Quantity, Product Base Price, Product Quantity, and Product Tax must filled by numeric.'); } } else { die('Please fill Product Name, Product Quantity, Product Base Price, Product Tax, and Product Unit Field.'); } } else { die('Failed to execute! an error occured.'); } } if(isset($_POST['deleteProductToken'])) { $token = hash('sha256', 'delete_product_token'); if($_POST['deleteProductToken']===$token) { $query = "DELETE FROM product WHERE productID = :productID"; $stmt = $conn->prepare($query); $stmt->execute([':productID' => htmlspecialchars($_POST['productID'])]); $result = $stmt->rowCount(); if($result > 0) { echo $_POST['productName']." has been deleted!"; } else { die('Failed to execute! an error occured.'); } } else { die('Failed to execute! an error occured.'); } } products_fetch.php <?php require_once '../database/database_connection.php'; if(!isset($_SESSION['type'])) { header("Location: ../login.php"); die; } if($_SESSION['type']!='master') { header("Location : ../user"); die; } $query = ''; $output = []; $query .= "Select * From product"; if(isset($_POST['search']['value'])) { if($_POST['search']['value'] != '') { $query .= 'WHERE product.productID LIKE "%'. $_POST["search"]["value"] .'%" '; $query .= 'OR product.productName LIKE "%'. $_POST["search"]["value"] .'%" '; $query .= 'OR category.categoryName LIKE "%'. $_POST["search"]["value"] .'%" '; $query .= 'OR brand.brandName LIKE "%'. $_POST["search"]["value"] .'%" '; $query .= 'OR user.userName LIKE "%'. $_POST["search"]["value"] .'%" '; $query .= 'OR product.productQuantity LIKE "%'. $_POST["search"]["value"] .'%" '; $query .= 'OR product.productStatus LIKE "%'. $_POST["search"]["value"] .'%" '; } } if(isset($_POST["order"])) { $tes = $_POST['order'][0]["column"]; $query .= ' ORDER BY '.$_POST["columns"][$tes]["name"].' '.$_POST["order"]["0"]["dir"].''; } else { $query .= "ORDER BY productID DESC"; } if(isset($_POST['length'])) { if($_POST["length"] != -1) { $query .= ' LIMIT '. $_POST['start'].', '. $_POST['length']; } } $stmt = $conn->prepare($query); $stmt->execute(); $result = $stmt->fetchAll(); $data = []; $filtered_rows = $stmt->rowCount(); foreach($result as $row) { $status = ''; if($row['productStatus']=='active') { $status = '<p class="text-success">Active</p>'; } else { $status = '<p class="text-danger">Inactive</p>'; } $sub_array = []; $sub_array[] = $row['productID']; $sub_array[] = $row['productName']; $sub_array[] = $row['categoryName']; $sub_array[] = $row['brandName']; $sub_array[] = $row['productQuantity'].' '.$row['productUnit']; $sub_array[] = $row['userName']; $sub_array[] = $status; $sub_array[] = '<button type="button" id="'.$row["productID"].'" class ="btn btn-info btn-xs viewProduct" productViewName="'.$row["productName"].'" productViewBrand="'.$row["brandName"].'" productViewCategory="'.$row["categoryName"].'" productViewBasePrice="'.$row["productBasePrice"].'" productViewQuantity="'.$row["productQuantity"].'" productViewTax="'.$row["productTax"].'" productViewEnterBy="'.$row["userName"].'" productViewStatus="'.$row["productStatus"].'" productViewDescription="'.$row["productDescription"].'" data-toggle="modal" data-target="#viewProductModal" >View</button>'; $sub_array[] = '<button type="button" id="'.$row["productID"].'" class ="btn btn-warning btn-xs editProduct" productEditName="'.$row["productName"].'" productEditBrand="'.$row["brandName"].'" productEditCategory="'.$row["categoryName"].'" productEditBasePrice="'.$row["productBasePrice"].'" productEditQuantity="'.$row["productQuantity"].'" productEditTax="'.$row["productTax"].'" productEditEnterBy="'.$row["userName"].'" productEditStatus="'.$row["productStatus"].'" productEditDescription="'.$row["productDescription"].'" productEditCategoryID="'.$row["categoryID"].'" productEditBrandID="'.$row["brandID"].'" productEditUnit="'.$row["productUnit"].'">Edit</button>'; $sub_array[] = '<button type="button" id="'.$row["productID"].'" class ="btn btn-danger btn-xs deleteProduct" productName="'.$row["productName"].'" data-toggle="modal" data-target="#deleteProductModal">Delete</button>'; $data[] = $sub_array; } $draw = ''; if(isset($_POST['draw'])) { $draw = $_POST['draw']; } $output = [ "draw" => intval($draw), "recordsTotal" => $filtered_rows, "recordsFiltered" => getTotalAllRecords($conn), "data" => $data ]; echo json_encode($output); function getTotalAllRecords($conn) { $stmnt = $conn->prepare("SELECT * FROM product "); $stmnt->execute(); return $stmnt->rowCount(); } O meu formulário funciona bem no sentido de devolver as consultas durante o seu preenchimento. https://imgur.com/a/Hi5z04u P.S. Não liguem ao CSS.. é algo que ainda ando a debater-me visto que alguns imports não permitem que os meus botões da datatable apareçam devidamente. O helper.php detém as funções públicas <?php require_once '../database/database_connection.php'; if(!isset($_SESSION['type'])) { header("Location: ../login.php"); die; } function selectCategoryList($conn) { if($_SESSION['type']!='master') { header("Location : ../user"); die; } $query = "SELECT * FROM category WHERE categoryStatus ='active' ORDER BY categoryName ASC "; $stmt = $conn->prepare($query); $stmt->execute(); $result = $stmt->fetchAll(); $output = ''; foreach($result as $r) { $output .= '<option class="categoryList" value="'.$r['categoryID'].'">'.$r['categoryName'].'</option>'; } return $output; } function selectCountryList($conn) { if($_SESSION['type']!='master') { header("Location : ../user"); die; } $query = "SELECT * FROM country WHERE countryStatus ='active' ORDER BY countryName ASC "; $stmt = $conn->prepare($query); $stmt->execute(); $result = $stmt->fetchAll(); $output = ''; foreach($result as $r) { $output .= '<option class="countryList" value="'.$r['countryID'].'">'.$r['countryName'].'</option>'; } return $output; } function selectLabelList($conn) { if($_SESSION['type']!='master') { header("Location : ../user"); die; } $query = "SELECT * FROM label WHERE labelStatus ='active' ORDER BY labelName ASC "; $stmt = $conn->prepare($query); $stmt->execute(); $result = $stmt->fetchAll(); $output = ''; foreach($result as $r) { $output .= '<option class="labelList" value="'.$r['labelID'].'">'.$r['labelName'].'</option>'; } return $output; } function selectBrandList($conn) { if($_SESSION['type']!='master') { header("Location : ../user"); die; } $query = "SELECT * FROM brand WHERE brandStatus ='active' ORDER BY brandName ASC "; $stmt = $conn->prepare($query); $stmt->execute(); $result = $stmt->fetchAll(); $output = ''; foreach($result as $r) { $output .= '<option class="brandList" value="'.$r['brandID'].'">'.$r['brandName'].'</option>'; } return $output; } function selectSupplierList($conn) { if($_SESSION['type']!='master') { header("Location : ../user"); die; } $query = "SELECT * FROM supplier WHERE supplierStatus ='active' ORDER BY supplierName ASC "; $stmt = $conn->prepare($query); $stmt->execute(); $result = $stmt->fetchAll(); $output = ''; foreach($result as $r) { $output .= '<option class="supplierList" value="'.$r['supplierID'].'">'.$r['supplierName'].'</option>'; } return $output; } function selectLocationList($conn) { if($_SESSION['type']!='master') { header("Location : ../user"); die; } $stmt = $conn->prepare($query); $stmt->execute(); $result = $stmt->fetchAll(); $output = ''; foreach($result as $r) { $output .= '<option class="locationList" value="'.$r['locationID'].'">'.$r['locationName'].'</option>'; } return $output; } function selectProductList($conn) { if($_SESSION['type']!='master') { header("Location : ../user"); die; } $query = "SELECT * FROM product WHERE productStatus = 'active' ORDER BY productID ASC "; $stmt = $conn->prepare($query); $stmt->execute(); $result = $stmt->fetchAll(); $output = ''; if(!empty($result)) { $output .= '<label for="brandID">Brand</label> <select class="form-control" id="brandID" name="brandID" required>'; foreach($result as $r) { $output .= '<option class="brandList" value="'.$r['brandID'].'">'.$r['brandName' ].'</option>'; } $output .= '</select>'; } else { $output .= '<p class="text-danger">Erro. </p>'; } return $output; } function getUserName($conn, $userID) { $query = "SELECT userName FROM user WHERE userID = '".$userID."' "; $stmt = $conn->prepare($query); $stmt->execute(); $result = $stmt->fetchAll(); foreach($result as $r) { return $r['userName']; } } function getAllProduct($conn) { $query = "SELECT productID FROM product WHERE productStatus='active'"; $stmt = $conn->prepare($query); $stmt->execute(); $result = $stmt->fetchAll(); $data = []; foreach ($result as $r) { $data[]=$r['productID']; } return $data; } function getProductByID($productID, $conn) { $query = "SELECT * FROM product WHERE productID = '".$productID."' "; $stmt = $conn->prepare($query); $stmt->execute(); $result = $stmt->fetchAll(); $data = []; foreach ($result as $r) { $data[] = $r['productBasePrice']; $data[] = $r['productTax']; $data[] = $r['productQuantity']; $data[] = $r['productName']; } return $data; } A minha BD -- phpMyAdmin SQL Dump -- version 5.0.1 -- https://www.phpmyadmin.net/ -- -- Host: 127.0.0.1 -- Tempo de geração: 16-Mar-2020 às 11:50 -- Versão do servidor: 10.4.11-MariaDB -- versão do PHP: 7.4.3 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET AUTOCOMMIT = 0; START TRANSACTION; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8mb4 */; -- -- Banco de dados: `inventory_management` -- -- -------------------------------------------------------- -- -- Estrutura da tabela `brand` -- CREATE TABLE `brand` ( `brandID` int(12) NOT NULL, `brandName` varchar(100) DEFAULT NULL, `brandStatus` enum('active','inactive') DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -------------------------------------------------------- -- -- Estrutura da tabela `category` -- CREATE TABLE `category` ( `categoryID` int(12) NOT NULL, `categoryName` varchar(100) DEFAULT NULL, `categoryStatus` enum('active','inactive') DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -------------------------------------------------------- -- -- Estrutura da tabela `country` -- CREATE TABLE `country` ( `countryID` int(12) NOT NULL, `countryName` varchar(100) DEFAULT NULL, `countryStatus` enum('active','inactive') DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -------------------------------------------------------- -- -- Estrutura da tabela `label` -- CREATE TABLE `label` ( `labelID` int(12) NOT NULL, `labelName` varchar(100) DEFAULT NULL, `labelStatus` enum('active','inactive') DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -------------------------------------------------------- -- -- Estrutura da tabela `location` -- CREATE TABLE `location` ( `locationID` int(12) NOT NULL, `countryID` int(12) NOT NULL, `locationName` varchar(100) DEFAULT NULL, `locationStatus` enum('active','inactive') DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -------------------------------------------------------- -- -- Estrutura da tabela `product` -- CREATE TABLE `product` ( `productID` int(12) NOT NULL, `productName` varchar(100) NOT NULL, `countryID` int(12) NOT NULL, `locationID` int(12) NOT NULL, `sublocationID` int(12) NOT NULL, `categoryID` int(12) NOT NULL, `subcategoryID` int(12) NOT NULL, `brandID` int(12) NOT NULL, `supplierID` int(12) NOT NULL, `productQuantity` int(11) NOT NULL, `productUnit` varchar(50) NOT NULL, `productDescription` varchar(200) NOT NULL, `ipAddress` varchar(15) NOT NULL, `serialNumber` varchar(50) NOT NULL, `label1` int(11) NOT NULL, `label2` int(11) NOT NULL, `label3` int(11) NOT NULL, `productEnterBy` int(11) NOT NULL, `productStatus` enum('active','inactive') NOT NULL, `productDate` date NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -------------------------------------------------------- -- -- Estrutura da tabela `subcategory` -- CREATE TABLE `subcategory` ( `subcategoryID` int(12) NOT NULL, `categoryID` int(12) NOT NULL, `subcategoryName` varchar(100) DEFAULT NULL, `subcategoryStatus` enum('active','inactive') DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -------------------------------------------------------- -- -- Estrutura da tabela `sublocation` -- CREATE TABLE `sublocation` ( `sublocationID` int(12) NOT NULL, `locationID` int(12) NOT NULL, `sublocationName` varchar(100) DEFAULT NULL, `sublocationStatus` enum('active','inactive') DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -------------------------------------------------------- -- -- Estrutura da tabela `supplier` -- CREATE TABLE `supplier` ( `supplierID` int(12) NOT NULL, `supplierName` varchar(100) DEFAULT NULL, `supplierStatus` enum('active','inactive') DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -------------------------------------------------------- -- -- Estrutura da tabela `user` -- CREATE TABLE `user` ( `userID` int(11) NOT NULL, `userEmail` varchar(70) DEFAULT NULL, `userPassword` varchar(100) DEFAULT NULL, `userName` varchar(50) DEFAULT NULL, `userType` enum('master','user') DEFAULT NULL, `userStatus` enum('active','inactive') DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Índices para tabelas despejadas -- -- -- Índices para tabela `brand` -- ALTER TABLE `brand` ADD PRIMARY KEY (`brandID`); -- -- Índices para tabela `category` -- ALTER TABLE `category` ADD PRIMARY KEY (`categoryID`); -- -- Índices para tabela `country` -- ALTER TABLE `country` ADD PRIMARY KEY (`countryID`); -- -- Índices para tabela `label` -- ALTER TABLE `label` ADD PRIMARY KEY (`labelID`); -- -- Índices para tabela `location` -- ALTER TABLE `location` ADD PRIMARY KEY (`locationID`); -- -- Índices para tabela `product` -- ALTER TABLE `product` ADD PRIMARY KEY (`productID`); -- -- Índices para tabela `subcategory` -- ALTER TABLE `subcategory` ADD PRIMARY KEY (`subcategoryID`); -- -- Índices para tabela `sublocation` -- ALTER TABLE `sublocation` ADD PRIMARY KEY (`sublocationID`); -- -- Índices para tabela `supplier` -- ALTER TABLE `supplier` ADD PRIMARY KEY (`supplierID`); -- -- Índices para tabela `user` -- ALTER TABLE `user` ADD PRIMARY KEY (`userID`); -- -- AUTO_INCREMENT de tabelas despejadas -- -- -- AUTO_INCREMENT de tabela `brand` -- ALTER TABLE `brand` MODIFY `brandID` int(12) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7018; -- -- AUTO_INCREMENT de tabela `category` -- ALTER TABLE `category` MODIFY `categoryID` int(12) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=10018; -- -- AUTO_INCREMENT de tabela `country` -- ALTER TABLE `country` MODIFY `countryID` int(12) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=16006; -- -- AUTO_INCREMENT de tabela `label` -- ALTER TABLE `label` MODIFY `labelID` int(12) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=50009; -- -- AUTO_INCREMENT de tabela `location` -- ALTER TABLE `location` MODIFY `locationID` int(12) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=14021; -- -- AUTO_INCREMENT de tabela `product` -- ALTER TABLE `product` MODIFY `productID` int(12) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=100001; -- -- AUTO_INCREMENT de tabela `subcategory` -- ALTER TABLE `subcategory` MODIFY `subcategoryID` int(12) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=18013; -- -- AUTO_INCREMENT de tabela `sublocation` -- ALTER TABLE `sublocation` MODIFY `sublocationID` int(12) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=15003; -- -- AUTO_INCREMENT de tabela `user` -- ALTER TABLE `user` MODIFY `userID` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6006; COMMIT; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; Já ando a partir a cabeça à 3 dias de volta disto. Conseguem ajudar por favor ?
  2. No Excel faço uma conexão SQL em uma pasta de trabalho com outra pasta de trabalho, conforme código abaixo. Antes verifico se o arquivo existe ou se está aberto em rede. Minha pergunta é: como e onde utilizo as propriedades ConnectionTimeout e CommandTimeout? Se a conexão cair antes do tempo, como faço para verificar e onde insiro a verificação? E se preciso verificar, antes de abrir a conexão, se a mesma está em aberto, pois outras pastas de trabalho também retornam via SQL os dados da mesma pasta de trabalho de origem: fiquei na dúvida se a conexão para os dados de origem é exclusiva da minha pasta de trabalho, ou se dá erro se outra pasta de trabalho também abriu ao mesmo tempo uma conexão com o mesmo arquivo de origem. Obs.: o retorno de dados está funcionando perfeitamente. 'RETORNA OS DADOS 'Instrução SQL stSQL = "Select * From [" & stNomePLan & "$]" stSQL = stSQL & "Where " & stNomeColOrigem & " =" & lgCodAlugueis stSQL = stSQL & "And Data Between #" & Format(dtDataInicio, "MM/DD/YYYY") & "#" stSQL = stSQL & "And #" & Format(dtDataFinal, "MM/DD/YYYY") & "#" 'Cria a conexão Call EstabeleceConexao 'Abre a conexão On Error Resume Next grsConsulta.Open stSQL, gcnConexaoPlan, adOpenKeyset, adLockOptimistic 'gcnConexaoPlan.CommandTimeout 30 'Verifica se houve erro If Err.Number <> 0 Then MsgBox "ERRO!" On Error GoTo 0 GoTo EncerraMacro End If On Error GoTo 0 'Verifica se tem registros na planilha de origem If grsConsulta.RecordCount = 0 Then MsgBox "Operação cancelada! Não há dados a retornar!", vbCritical + vbOKOnly, "ERRO!" GoTo EncerraMacro End If 'Limpa a planilha PlanLíquida gwsPlanLiquida.Cells.Clear 'Insere os títulos das colunas For lgCols = 0 To grsConsulta.Fields.Count - 1 gwsPlanLiquida.Cells(1, lgCols + 1).Value = grsConsulta.Fields(lgCols).Name Next lgCols 'Insere os registros gwsPlanLiquida.Range("A2").CopyFromRecordset grsConsulta 'Acerta a largura das colunas gwsPlanLiquida.Columns.AutoFit lgUltCol = gwsPlanLiquida.Cells(1, Columns.Count).End(xlToLeft).Column If lgUltCol > 1 Then For lgLoopCol = 1 To lgUltCol With gwsPlanLiquida .Columns(lgLoopCol).ColumnWidth = .Columns(lgLoopCol).ColumnWidth + 2 End With Next lgLoopCol End If 'Mensagem de encerramento MsgBox "Operação concluída com sucesso!", vbInformation + vbOKOnly, "OK" Em outro módulo: Public gcnConexaoPlan As ADODB.Connection 'Variável de conexão Public grsConsulta As ADODB.Recordset 'Variável de Recordset Public gstNomeCaminho As String Public gstNomeArquivo As String Sub EstabeleceConexao() Set gcnConexaoPlan = New ADODB.Connection Set grsConsulta = New ADODB.Recordset With gwsApoio gstNomeCaminho = .Range("B5").Value gstNomeArquivo = .Range("B4").Value End With With gcnConexaoPlan .Provider = "Microsoft.ACE.OLEDB.12.0" .ConnectionString = "Data Source=" & gstNomeCaminho & Application.PathSeparator & gstNomeArquivo & _ ";Extended Properties=Excel 12.0" .Open End With End Sub Sub EncerraConexao() gstNomeCaminho = "" gstNomeArquivo = "" If Not (grsConsulta Is Nothing) Then If (grsConsulta.State And adStateOpen) = adStateOpen Then grsConsulta.Close Set grsConsulta = Nothing End If If Not (gcnConexaoPlan Is Nothing) Then If (gcnConexaoPlan.State And adStateOpen) = adStateOpen Then gcnConexaoPlan.Close Set gcnConexaoPlan = Nothing End If End Sub
  3. Estou a usar PyQt5 e mariaDB, preciso de preencher uma tabela com os dados de um SELECT à base de dados, Para o mesmo SELECT os dados podem variar em Nº de Linhas e/ou Colunas A parte do SQL está a funcionar (minimamente, recebo uma lista), mas não consigo mostrar os valor (de uma forma simples e direta) na tabela Em VB.net é só 1 linha: dgvDados.DataSource = mdlMySQL.funGetDataTable(strQuery) -> esta função faz um fetchAll, basicamente e a tabela é preenchida automaticamente, com o nº de linhas, colunas, os nomes dos cabeçalhos etc... mostra os dados todos Em python, ainda não consegui fazer isto de forma tão simples. Alguma ideia, ou estou a pedir de mais?
  4. Boas, Tenho como projeto fazer uma pagina WEB ou algo parecido com um dashboard com erros a partir de uma base de dados . Enquadramento; Tenho uma aplicação que gere utilizadores e permissões/acessos que esses mesmos utilizadores tem para aceder a aplicações, etc Muitas vezes essas permissões podem ficar em erro por variados motivos, como por exemplo falha de comunicação com sistemas destinos,.. E numa bases de dados em que tenho essas permissões e utilizadores e o seu estado queria com esses dados(directamente da BD) ter um dashboard com os erros a ser atualizado automaticamente na pagina web e por exemplo actualizava todos os dias ou algo parecido e com a possibilidade de sacar reports. A minha pergunta é: É possivel ? Como faria isso ? Que linguagens teria de usar ? Precisava mesmo guideness e de umas luzes Agradeço a todos desde já
  5. JoaoMBarbosa

    Erro a ligar a servidores

    Estou com uma duvida quando mudo as credenciais da base de dados em localhost para as credenciais da base de dados em server da-me este erro no php Warning: mysqli::__construct(): php_network_getaddresses: getaddrinfo failed: Este anfitri�o n�o � conhecido. in C:\xampp\htdocs\CoreContactos_BD\conexao.php on line 6 Warning: mysqli::__construct(): (HY000/2002): php_network_getaddresses: getaddrinfo failed: Este anfitri�o n�o � conhecido. in C:\xampp\htdocs\CoreContactos_BD\conexao.php on line 6
  6. marioverdini

    vb.net + sql

    Boa tarde a todos Baixei um codigo fonte da internet e como sou iniciante estou estudando o codigo para afins de aprendizado entao vamos la, no cadastro de produto tem uma textbox que recebe um valor preço pelo que percebi a declaçao da variavel pelo q parece esta misturada com conecçao com o banco sql isso acontece no codigo do botao save ou update Queria saber nessa situação como faço para no campo preço ter casas decimais no entanto eu digito o preço de 1.01 e primo em salvar ou em atualizao ele aceita mas quando vou pesquisar o produto no form de pesquisa preço fica 101 No banco sql estava com o tipo de dados float eu alterei para decimal tanto no codigo como no sql nao deu certo alguem pode me ajudar? vou colocar o codigo do botao update Private Sub Update_Record_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Update_Record.Click Try con = New SqlConnection(cs) con.Open() Dim cb As String = "update product set Productname=@d2,category=@d3,Weight=@d4,price=@d5 where Productcode=@d1" cmd = New SqlCommand(cb) cmd.Connection = con cmd.Parameters.Add(New SqlParameter("@d1", System.Data.SqlDbType.NChar, 20, "productcode")) cmd.Parameters.Add(New SqlParameter("@d2", System.Data.SqlDbType.VarChar, 250, "productname")) cmd.Parameters.Add(New SqlParameter("@d3", System.Data.SqlDbType.VarChar, 150, "category")) cmd.Parameters.Add(New SqlParameter("@d4", System.Data.SqlDbType.NChar, 10, "weight")) cmd.Parameters.Add(New SqlParameter("@d5", System.Data.SqlDbType.Float, 10, "price")) cmd.Parameters("@d1").Value = txtProductCode.Text cmd.Parameters("@d2").Value = txtProductName.Text cmd.Parameters("@d3").Value = cmbCategory.Text cmd.Parameters("@d4").Value = cmbWeight.Text cmd.Parameters("@d5").Value = CDbl(txtPrice.Text) cmd.ExecuteReader() MessageBox.Show("Successfully updated", "Product Details", MessageBoxButtons.OK, MessageBoxIcon.Information) Update_Record.Enabled = False fillCategory() fillWeight() autocomplete() If con.State = ConnectionState.Open Then con.Close() End If con.Close() Catch ex As Exception MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try End Sub
  7. Eu tenho 3 tabelas: "Terceiros", "Morada_Terceiro", "Contactos_Terceiro". O objetivo era: seria inserido um terceiro, o mesmo seria listado, fosse-lhe atribuído uma morada e um contacto, no entanto gostaria que fosse possível atribuir várias moradas a um só terceiro. Utilizei primeiro o INNER JOIN nas 3 tabelas e não foi possível, passei para o LEFT JOIN e quando era introduzido mais que uma morada ou contacto a um terceiro era listado a mesma informação mais que uma vez, acabei por utilizar o RIGHT JOIN e o FULL JOIN e nada. //Tabela Terceiros $sql="SELECT Terceiros.*, Email, Telefone, Telemovel, TipoC, Morada, Localidade, CodPostal FROM ((Terceiros INNER JOIN Contactos_Terceiro on Terceiros.Numero = Contactos_Terceiro.Numero ) INNER JOIN Morada_Terceiro on Terceiros.Numero = Morada_Terceiro.Numero )"; if(isset($pesq)) $sql.=" where Nome like '$pesq' "; $sql.=" limit $ini, $tp"; $res=$lig->query($sql); //Tabela Contactos_Terceiro $sql="SELECT Contactos_Terceiro.*, Nome FROM Contactos_Terceiro INNER JOIN Terceiros on (Terceiros.Numero = Contactos_Terceiro.Numero)"; if(isset($pesq)) $sql.=" where Nome like '$pesq'"; $sql.=" limit $ini, $tp"; $res=$lig->query($sql); //Tabela Morada_Terceiro $sql="SELECT Morada_Terceiro.*, Nome FROM Morada_Terceiro INNER JOIN Terceiros on (Terceiros.Numero = Morada_Terceiro.Numero)"; if(isset($pesq)) $sql.=" where Nome like '$pesq'"; $sql.=" limit $ini, $tp"; $res=$lig->query($sql);
  8. Filipa

    Paginação deixou de funcionar

    Acabei de fazer o campo de pesquisa e a paginação do meu projeto, no entanto tenho 17 registos já adicionados mas apenas apresenta 8 registos. Fiz o código com o objetivo de apresentar 15 registos por página, ou seja, na segunda página deveria aparecer os 2 registos que faltam. No entanto avisa que existem 2 páginas, mas a segunda página se encontra vazia <?php $sql="select * from Terceiros"; $res=$lig->query($sql); ?> <style> .modal { text-align: center; padding: 0 !important; } .modal:before { content: ''; display: inline-block; height: 100%; vertical-align: middle; margin-right: -4px; } .modal-dialog { display: inline-block; text-align: center; vertical-align: middle; } div.blueTable { border: 0px solid #1C6EA4; background-color: #EEEEEE; width: 100%; text-align: center; border-collapse: collapse; } .divTable.blueTable .divTableCell, .divTable.blueTable .divTableHead { border: 2px solid #AAAAAA; padding: 10px 5px; } .divTable.blueTable .divTableBody .divTableCell { font-size: 16px; } .divTable.blueTable .divTableRow:nth-child(even) { background: #D4EED1; } .divTable.blueTable .divTableHeading { background: #20A42B; background: -moz-linear-gradient(top, #58bb60 0%, #36ad40 66%, #20A42B 100%); background: -webkit-linear-gradient(top, #58bb60 0%, #36ad40 66%, #20A42B 100%); background: linear-gradient(to bottom, #58bb60 0%, #36ad40 66%, #20A42B 100%); border-bottom: 2px solid #444444; } .divTable.blueTable .divTableHeading .divTableHead { font-size: 15px; font-weight: bold; color: #FFFFFF; border-left: 4px solid #D0E4F5; } .divTable.blueTable .divTableHeading .divTableHead:first-child { border-left: none; } .blueTable .tableFootStyle { font-size: 14px; } .blueTable .tableFootStyle .links { text-align: right; } .blueTable .tableFootStyle .links a{ display: inline-block; background: #1C6EA4; color: #FFFFFF; padding: 2px 8px; border-radius: 5px; } .blueTable.outerTableFooter { border-top: none; } .blueTable.outerTableFooter .tableFootStyle { padding: 3px 5px; } /* DivTable.com */ .divTable{ display: table; } .divTableRow { display: table-row; } .divTableHeading { display: table-header-group;} .divTableCell, .divTableHead { display: table-cell;} .divTableHeading { display: table-header-group;} .divTableFoot { display: table-footer-group;} .divTableBody { display: table-row-group;} } </style> <head><meta http-equiv="Content-Type" content="text/html; charset=gb18030"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="initial-scale=1.0; maximum-scale=1.0; width=device-width;"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" /> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script> </head> <?php //paginação $tp=15; if (isset($_REQUEST['pesquisa'])) $pesq='%'.$_REQUEST['pesquisa'].'%'; if (isset($_REQUEST['pag'])) $np=$_REQUEST['pag']; else $np=1; $ini=($np-1)*$tp; $sql="select * from Terceiros"; if(isset($pesq)) $sql.=" where Nome like '$pesq'"; $res=$lig->query($sql); $nr=$res->num_rows; $qp=$nr/$tp+1; //Fim paginação $sql="SELECT Terceiros.*, Email, Telefone, Telemovel, TipoC, Morada, Localidade, CodPostal FROM ((Terceiros INNER JOIN Contactos_Terceiro on Terceiros.CodCon = Contactos_Terceiro.CodCon ) INNER JOIN Morada_Terceiro on Terceiros.Numero = Morada_Terceiro.Numero )"; if(isset($pesq)) $sql.=" where Nome like '$pesq'"; $sql.=" limit $ini, $tp"; $res=$lig->query($sql); ?> <div class="container"> <h1 align="center">Listar Terceiros</h1> <br><br> <table class="table table-striped"> <thead> <tr> <tr> <th colspan=2> <a href="index.php?cmd=addter"> <button type="button" class="btn btn-success btn-lg">Adicionar Terceiro</button> </a> </th> <th colspan=3> <form method="POST" class="form-inline" action="index.php?cmd=lister"> <div class="form-group"> <label for="Pesquisa" >Pesquisar Terceiros: </label> <input type="text" class="form-control" id="pesquisa" name="pesquisa"> <button type="submit" class="btn btn-default">Pesquisar</button> </div> </form> <?php if ($pesq !='') echo "<center><a href='index.php?cmd=lister' class='btn btn-default'>Listar todos os terceiros </a></center>"; ?> </th> </tr> <th>Numero</th> <th>Cliente</th> <th>Fornecedor</th> <th>NIF</th> <th>Nome</th> <th>IdSiliamb</th> <th>Tipo</th> <th></th> <th></th> </tr> </thead> <tbody> <?php //$sql= "SELECT Terceiros.*, Email, Telefone, Telemovel, TipoC, Morada, Localidade, CodPostal from Terceiros, Contactos_Terceiro, Morada_Terceiro "; //$sql.="WHERE Contactos_Terceiro.CodCon = Terceiros.CodCon and Morada_Terceiro.Numero = Terceiros.Numero "; //$res=$lig->query($sql); while ($lin=$res->fetch_array()){ ?> <tr> <td><?php echo$lin[Numero]; ?></td> <td><?php echo$lin[Cliente]; ?></td> <td><?php echo$lin[Fornecedor]; ?></td> <td><?php echo$lin[NIF]; ?></td> <td><?php echo$lin[Nome]; ?></td> <td><?php echo$lin[Idsiliamb]; ?></td> <td><?php echo$lin[Tipo]; ?></td> <td><a href=index.php?cmd=editer&Numero=<?php echo$lin[Numero];?> title="Editar"><img src='Imagens/edit.png' width="20" height = "20" ></a></td> <td><a href=index.php?cmd=delter&Numero=<?php echo$lin[Numero];?> title="Apagar" onclick="return confirm('Tem a certeza que deseja apagar este registo?');" ><img src='Imagens/delete.png' width="20" height = "20" ></a></td> <td><td><button data-toggle = "modal" data-target = "#<?php echo$lin[Numero];?>" title="Visualizar" class="btn btn-default openBtn"><img src='Imagens/eye.png' width="20" height = "20" ><button></td></td> </tr> <!-- Inicio do PopUp --> <div class="modal fade" id="<?php echo $lin['Numero']; ?>" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> <h4 class="modal-title text-center" id="myModalLabel"><?php echo $lin['Nome']; ?></h4> </div> <div class="modal-body"> <div class="table-responsive"> <div class="divTable blueTable"> <div class="divTableHeading"> <div class="divTableRow"> <div class="divTableHead">Telefone</div> <div class="divTableHead">Telemovel</div> <div class="divTableHead">Email</div> <div class="divTableHead">Tipo</div> <div class="divTableHead">Morada</div> <div class="divTableHead">Localidade</div> <div class="divTableHead">Codigo Postal</div> </div> </div> <div class="divTableBody"> <div class="divTableRow"> <div class="divTableCell"><?php echo $lin['Telefone']; ?></div> <div class="divTableCell"><?php echo $lin['Telemovel']; ?></div> <div class="divTableCell"><?php echo $lin['Email']; ?></div> <div class="divTableCell"><?php echo $lin['TipoC']; ?></div> <div class="divTableCell"><?php echo $lin['Morada']; ?></div> <div class="divTableCell"><?php echo $lin['Localidade']; ?></div> <div class="divTableCell"><?php echo $lin['CodPostal']; ?></div> </div> </div> </div> </div> </div> </div> </div> <!-- Fim do PopUp --> <?php } ?> </tbody> </table> <?php //Paginação for ($i=1; $i<$qp; $i++) echo "<a href=index.php?cmd=lister&pag=$i>&nbsp$i&nbsp</a>"; ?> </div> .
  9. Filipa

    Campo de pesquisa e paginação

    Tenho como objetivo a realização de um campo de pesquisa, como também a paginação, ambos funcionavam até que realizei um popup que tinha como finalidade apresentar os dados de cada cliente que se encontravam inseridos em outras tabelas, através da realização de JOINS fui capaz de realizar tal tarefa, mas desde então que ao realizar uma pesquisa nenhuma alteração é feita, apresenta que existe mais que uma página mas no entanto quando vou clicar na segunda página apresenta exatamente o mesmo que a primeira e os dados conseguem ser inseridos com sucesso mas no entanto não são apresentados , no entanto sempre que apago o JOIN realizado tudo volta ao normal. <?php header('Content-type: text/plain; charset=utf-8'); ?> <?php if (isset($_REQUEST['pesquisa']) && $_REQUEST['pesquisa']!='') { $pesq1=$_REQUEST['pesquisa']; $pesq=$_REQUEST['pesquisa']; $pesq='%'.$pesq1.'%'; }else $pesq=''; $tp=10; if (isset($_REQUEST['pag'])) $np=$_REQUEST['pag']; else $np=1; $ini=($np-1)*$tp; //registo inicial a ser mostrado $sql="select * from Terceiros where 1=1"; if ($pesq !='') $sql.=" and upper(Numero) like upper('$pesq')"; $sql.=" order by Numero"; $res=$lig->query($sql); $nr=$res->num_rows; $qp=$nr/$tp+1; mysql_free_result($res); ?> <form align="center" method="POST" action="index.php?cmd=lister"> Pesquisar Terceiros: <input type="text" name="pesquisa" value="<?php echo $pesq1; ?>"> <input type="submit" value="Pesquisar"> </form> <p align="center"> <?php if ($pesq !='') echo "<center><a style='border-style: solid; padding:4px; border-width: thin;' href=index.php?cmd=lister>Listar todos os terceiros </a></center>"; ?> <?php $sql="select * from Terceiros where 1=1 "; if ($pesq !='') $sql.=" and upper(Numero) like upper('$pesq') "; $sql.=" ORDER BY Numero limit $ini, $tp"; $res=$lig->query($sql); ?> <div class="container" align="center" > <p align="center"> </div> <br><br> <?php if ($filtro !='') echo "<center><a style='border-style: solid; padding:4px; border-width: thin;' href=index.php?cmd=lister>Listar os terceiros </a></center>"; ?> <div class="container"> <h1 align="center">Listar Terceiros</h1> <br><br> <table class="table table-striped"> <thead> <tr> <tr> <th colspan=2> <a href="index.php?cmd=addter"> <button type="button" class="btn btn-success btn-lg">Adicionar Terceiro</button> </a> </th> </tr> <th>Numero</th> <th>Cliente</th> <th>Fornecedor</th> <th>NIF</th> <th>Nome</th> <th>IdSiliamb</th> <th>Tipo</th> <th></th> <th></th> </tr> </thead> <tbody> <?php $sql = "SELECT Terceiros.*, Email, Telefone, Telemovel, TipoC, Morada, Localidade, CodPostal from Terceiros, Contactos_Terceiro, Morada_Terceiro "; $sql.="WHERE Contactos_Terceiro.CodCon = Terceiros.CodCon and Morada_Terceiro.Numero = Terceiros.Numero "; $res=$lig->query($sql); while ($lin=$res->fetch_array()){ ?> <tr> <td><?php echo$lin[Numero]; ?></td> <td><?php echo$lin[Cliente]; ?></td> <td><?php echo$lin[Fornecedor]; ?></td> <td><?php echo$lin[NIF]; ?></td> <td><?php echo$lin[Nome]; ?></td> <td><?php echo$lin[Idsiliamb]; ?></td> <td><?php echo$lin[Tipo]; ?></td> <td><a href=index.php?cmd=editer&Numero=<?php echo$lin[Numero];?> title="Editar"><img src='Imagens/edit.png' width="20" height = "20" ></a></td> <td><a href=index.php?cmd=delter&Numero=<?php echo$lin[Numero];?> title="Apagar" onclick="return confirm('Tem a certeza que deseja apagar este registo?');" ><img src='Imagens/delete.png' width="20" height = "20" ></a></td> <td><td><button data-toggle = "modal" data-target = "#<?php echo$lin[Numero];?>" title="Visualizar" class="btn btn-default openBtn"><img src='Imagens/eye.png' width="20" height = "20" ><button></td></td> </tr> <!-- Inicio do PopUp --> <div class="modal fade" id="<?php echo $lin['Numero']; ?>" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> <h4 class="modal-title text-center" id="myModalLabel"><?php echo $lin['Nome']; ?></h4> </div> <div class="modal-body"> <div class="table-responsive"> <div class="divTable blueTable"> <div class="divTableHeading"> <div class="divTableRow"> <div class="divTableHead">Telefone</div> <div class="divTableHead">Telemovel</div> <div class="divTableHead">Email</div> <div class="divTableHead">Tipo</div> <div class="divTableHead">Morada</div> <div class="divTableHead">Localidade</div> <div class="divTableHead">Codigo Postal</div> </div> </div> <div class="divTableBody"> <div class="divTableRow"> <div class="divTableCell"><?php echo $lin['Telefone']; ?></div> <div class="divTableCell"><?php echo $lin['Telemovel']; ?></div> <div class="divTableCell"><?php echo $lin['Email']; ?></div> <div class="divTableCell"><?php echo $lin['TipoC']; ?></div> <div class="divTableCell"><?php echo $lin['Morada']; ?></div> <div class="divTableCell"><?php echo $lin['Localidade']; ?></div> <div class="divTableCell"><?php echo $lin['CodPostal']; ?></div> </div> </div> </div> </div> </div> </div> </div> <!-- Fim do PopUp --> <?php } ?> </tbody> </table> </div> <p align=center> <?php for ($i=1; $i<$qp; $i++) echo "<a href=index.php?cmd=lister&pag=$i&pesquisa=$pesq1>&nbsp$i&nbsp</a>"; ?> </p>
  10. RedCandy

    SQL retorna nada da base de dados

    Bom dia, eu quero que no seguinte código o SQL retorna da base de dados os valores "id_Admin", "username_Admin", "password_Admin", mas não retorna nada apesar de não dar quaisquer erros. <?php $servername = "localhost"; $username = "root"; $password = ""; $db = "aeac"; // Create connection $conn = mysqli_connect($servername, $username, $password, $db); // Check connection if(mysqli_connect_errno()){ die("connection failed: " . mysqli_connect_error() . " (" . mysqli_connect_errno() . ")"); } //get results from database $result = mysqli_query($conn, "SELECT * FROM admin"); echo "<table id='tableId' align='center' style='width:60%; height:5%'> <tr> <th>ID</th> <th>Nome</th> <th>Password</th> </tr>"; while ($property = mysqli_fetch_array($result)); { echo "<tr>"; echo "<td onclick='redirect()'>" . $property['id_Admin'] . "</td>"; echo "<td onclick='redirect()'>" . $property['username_Admin'] . "</td>"; echo "<td onclick='redirect()'>" . $property['password_Admin'] . "</td>"; echo "</tr>"; } echo "</table>"; ?> Já fiz várias pesquisas e troquei várias vezes o código para ver se algo funcionava mas nada. Tenho a certeza que todos os campos estão iguais aos da base de dados. Desde já obrigado, RedCandy.
  11. Tenho a seguinte SQL: SELECT celulas.idCelula, celulas.idPastor, membros.nome, celulas.idRede, redes.nome, celulas.idRegiao, regioes.nome, celulas.idArea, areas.nome, celulas.idSetor, setores.nome, celulas.idAnfitriao, celulas.idLider, celulas.idAuxiliar, celulas.diaReunioes, celulas.dataMultiplicacao, celulas.origem, celulas.nome FROM membros, pastores, redes, regioes, areas, setores, celulas WHERE pastores.idMembro = membros.idMembro AND celulas.idPastor = pastores.idPastor AND celulas.idRede = redes.idRede AND celulas.idRegiao = regioes.idRegiao AND celulas.idArea = areas.idArea AND celulas.idSetor = setores.idSetor Agora, celulas.idPastor = pastores.idPastor e pastores.idMembro = membros.idMembro Desta forma na parte do select: celulas.idPastor, membros.nome, Na esperança de obter o nome do pastor. O problema agora é que celulas.idPastor, celulas.idAnfitriao, celulas.idLider, celulas.idAuxiliar, Todos apontam para membros.idMembro Minha dúvida: Como obter o nome de cada um deles separadamente se todos apontam para membros.idMembro Obs.: NÃO existe uma tabela de anfitriões nem de Líderes nem de auxiliares pois todos são cadastrados como membros
  12. Boa tarde, tenho uma tabela em access com a seguinte estrutura: T_Artigos -ID_Artigo (Chave Primária) -ID_Familia -Descricao_Artigo -Vida_Util Acontece que pretendo fazer a seguinte consulta: SELECT T_Artigos.ID_Artigo, T_Artigos.ID_Familia, T_Artigos.Descricao_Artigo, T_Artigos.Vida_Util FROM T_Artigos WHERE T_Artigos.ID_Familia=2 AND T_Artigos.Descricao_Artigo Like "gtrthg" Até aqui tudo, ok. O problema começa quando uso %, como por exemplo: SELECT T_Artigos.ID_Artigo, T_Artigos.ID_Familia, T_Artigos.Descricao_Artigo, T_Artigos.Vida_Util FROM T_Artigos WHERE T_Artigos.ID_Familia=2 AND T_Artigos.Descricao_Artigo Like "gtrthg%" OU: SELECT T_Artigos.ID_Artigo, T_Artigos.ID_Familia, T_Artigos.Descricao_Artigo, T_Artigos.Vida_Util FROM T_Artigos WHERE T_Artigos.ID_Familia=2 AND T_Artigos.Descricao_Artigo Like "%gtrthg" Nestes casos, não devolve qualquer linha. Alguém me consegue ajudar? Agradeço desde ja.
  13. Ruben Santos

    Consulta dupla SQL na mesma tabela

    Boa tarde, Sou novo no fórum e tambem em programação SQL, no entanto não desisto de procurar soluções e tentar aprender cada vez mais e melhor. Venho aqui pedir ajuda sobre o seguinte assunto: Estou trabalhando com Access e a tabela em questão apresenta as operações realizadas (tempo de trabalho) no caso de ter interrupção, a interrupção tem a durabilidade desde o fim da operação até ao inicio da proxima operação Então sobre esta tabela, faço a seguinte pesquisa para saber, quantas interrupções tenho e a que horas interromperam: Dei o nome de "Inicio_interrupcoes" SELECT dbo_opr.cod_gpt, dbo_opr.cod_pt, dbo_opr.un_pt, dbo_opr.data_ini, dbo_opr.data_fim, dbo_opr.cod_interrup, * FROM dbo_opr WHERE (((dbo_opr.cod_interrup) Is Not Null)); Este comando, executa corretamente, retornando todos os registos em que cod.interrup seja não nulo. Seguindo agora o código onde preciso milagrosamente de ajuda: SELECT inicio_interrupcoes.cod_gpt, inicio_interrupcoes.cod_pt, inicio_interrupcoes.un_pt, inicio_interrupcoes.data_fim, inicio_interrupcoes.cod_interrup FROM dbo_opr INNER JOIN inicio_interrupcoes ON (dbo_opr.cod_gpt = inicio_interrupcoes.cod_gpt) AND (dbo_opr.cod_pt = inicio_interrupcoes.cod_pt) GROUP BY inicio_interrupcoes.cod_gpt, inicio_interrupcoes.cod_pt, inicio_interrupcoes.un_pt, inicio_interrupcoes.data_fim, inicio_interrupcoes.cod_interrup, dbo_opr.data_ini HAVING (((dbo_opr.data_ini)>[inicio_interrupcoes].[data_fim])); Passando agora a explicar o que preciso: Na primeira consulta "Inicio_Interrupcoes" pesquiso todas os registos que contenham o campo "cod_interrup" preenchido. Na segunda consulta respeitando os campos "cod_gpt" e "cod_pt", pretendo obter a data de inicio da proxima operação que nesta consulta representa o fim da interrupção. Segue exemplo básico: considerem linha 2 e linha 3 da imagem: Linha 2 representa produção -> Inicio = 10/01/2019 08:21:13 Fim = 10/01/2019 12:54:30 Como o registo tem "Cod_interrup" considero que "10/01/2019 12:54:30" representa o inicio da interrupcão e o proximo inicio neste caso "10/01/2019 14:04:53" será o fim da interrupção e inicio da Produção. Alguem me pode dar uma força neste assunto? Obrigado, ficarei muito grato.
  14. Tenho um form onde insiro os dados na base de dados e outro form onde visualizo. Nesse que visualizo os dados, gostava de poder carregar em um dos dados e que depois abrisse um novo form. Exemplo: | Referências | |-------------------------| |PRVT DO 20 0750| |-------------------------| |PRVT DO 20 0350| Ao Carregar em "PRVT DO 20 0750" na tabela este abriria outro form com os componentes dessa mesma referencia. Se alguém souber de alguma forma de o fazer agradecia a ajuda. Obrigado. Afonso Mira😄
  15. marlonwg

    Compactar banco de dados SQL

    Boas galera ja resolvi
  16. soares chirrute

    PHC: Corporate V22

    Bom dia! Alguém pode me ajudar com seguinte questão: Não deixar gravar um registro de cliente se o número de caracteres do campo NUIT ( número de contribuinte) for inferior a 9 caracteres.
  17. AAndr3

    ajuda sobre como fazer um select

    Boa tarde, Estou a criar para a minha pap um site de venda de carros, do género do stand virtual. https://imgur.com/iA9Zf4Z E queria saber como é que faço a condição para fazer com que ele va buscar ao servidor só o que foi introduzido pelo utilizador. Por exemplo o utilizador só quer pesquisar marca e o preco, entao como é que eu faço isso? obg
  18. marlonwg

    SQL Server com .NET rede

    ja resolvi
  19. stou com um banco de dados Access. Depois que instalo o programa que fiz, quando vou executá-lo, recebo a mensagem de que o banco de dados é apenas leitura. Para evitar este problema, tentei tornar o banco de dados editável via código (coloquei no load do form principal). Tentei duas sintaxes sql, mas em ambas recebo o erro do título do tópico. Quando criei o meu banco de dados não coloquei nenhuma senha. Quando fui estabelecer a conexão com o banco de dados pelo Visual Studio, não coloquei nenhuma senha e consegui me conectar ao banco de dados normalmente. Alguma sugestão? Seguem as duas sintaxes que tentei utilizar sql = "ALTER DATABASE [TesteBCAccess] SET READ_WRITE WITH NO_WAIT" sql = "ALTER DATABASE TesteBCAccess SET CHANGE_TRACKING = ON (CHANGE_RETENTION = 2 DAYS, AUTO_CLEANUP = ON)"sql
  20. jorgehvieriasilva

    Redireccionar para link inserido na DB

    Bom dia, Estou a realizar um projeto em ASP.NET e tenho ligado ao mesmo uma DB em SQL. Na DB tenho uma tabela com dois campos, Nome e Link. (ex: Exemplo 1 / https://www.google.pt/) Tenho uma dropdown list que recebe os nomes inseridos na coluna Nome, e tenho um botão ao lado, que quando clicar no mesmo têm que me redirecionar para o Link em questão, neste caso https://www.google.pt/. Alguém me consegue ajudar, já estou há dias em volto disto e não consigo arranjar solução 😆
  21. nat

    Problema de query: table alias?

    Boas pessoal, Estou a fazer um exercício utilizando a seguinte base de dados: https://github.com/datacharmer/test_db CREATE TABLE dept_emp ( emp_no INT NOT NULL, dept_no CHAR(4) NOT NULL, from_date DATE NOT NULL, to_date DATE NOT NULL, FOREIGN KEY (emp_no) REFERENCES employees (emp_no) ON DELETE CASCADE, FOREIGN KEY (dept_no) REFERENCES departments (dept_no) ON DELETE CASCADE, PRIMARY KEY (emp_no,dept_no) ); CREATE TABLE salaries ( emp_no INT NOT NULL, salary INT NOT NULL, from_date DATE NOT NULL, to_date DATE NOT NULL, FOREIGN KEY (emp_no) REFERENCES employees (emp_no) ON DELETE CASCADE, PRIMARY KEY (emp_no, from_date) ); O exercício é o seguinte: Cada empregado do departamento de Sales vende 500 produtos por mês. Cada venda conduz a um lucro de 300 euros para empresa. Qual é o lucro/prejuízo da empresa por mês (assumindo que o único lucro é proveniente das vendas e os custos os salários de todos os trabalhadores)? Atualmente a query está assim:8 SELECT MONTH(from_date) AS 'Month', COUNT(emp_no)*500*300 AS 'Sales', SUM(Salary) AS 'Salary per Month', (COUNT(emp_no)*500*300-SUM(Salary)) AS 'Diff' FROM dept_emp JOIN salaries using (from_date,emp_no) GROUP BY MONTH(from_date) ORDER BY Diff DESC; O problema é que atualmente a coluna relativa às vendas ('Sales') não está a ser filtrada para que as vendas sejam apenas feitas pelo departamento das vendas (esse departamento é o dept_no = 'd007'). A query está a considerar que as vendas são feitas por todos os trabalhadores. Já tentei colocar uma WHERE clause entre o FROM e o GROUP BY, mas depois tudo fica filtrado para um só departamento. Como é que faço para que essa situação deixe de ocorrer?
  22. Boa noite, Tenho de fazer uma aplicação para uma oficina com o objectivo de registar o cliente e o carro que vai reparar Comecei por criar a base de dados local dentro do visual studio 2017 .mdf Fiz a conexão e os testes as querys para testar tudo e funciona mas para exportar tenho de fazer a ligação/criação de outra maneira pois da maneira como fiz tenho o programa a ir buscar a uma pasta. O meu objetivo e publicar o programa para instalar num pc de um cliente Como tenho de fazer a criação/ligação da BD Exemplo codigo que tenho (carrega os dados na datagrid ao abrir a form ): using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Data.Common; using System.Configuration; using System.Data.SqlClient; private void Registos_Load(object sender, EventArgs e) { using (SqlConnection conn = new SqlConnection()) { // conn.ConnectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\Ricardo\Desktop\aj\sss\AJ\AJ\clientes_carros.mdf;Integrated Security=True"; conn.ConnectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\clientes_carros.mdf;Initial Catalog=BD;Integrated Security=True"; conn.Open(); SqlDataAdapter da = new SqlDataAdapter(); string sql = "select * from dados"; da = new SqlDataAdapter(sql, conn); DataTable dt = new DataTable(); da.Fill(dt); dataGridView1.DataSource = dt; } } Obrigado
  23. Boas! Ajudem a completar este tópico, sff A ver se ficamos com um tópico cheio de ferramentas. Vou apenas iniciar com uma ferramenta, o resto vai sendo adicionado por mim ou pelo Hipnoted a este post. Ferramentas em Browser Gliffy Ferramentas Aplicacionais Dia DDS-Lite PL/SQL Developer Oracle SQL Developer DBDesigner Sybase Power Design Toad da Quest (Oracle) - Toad da Quest (MySQL) - Toad da Quest (SQL Server) Formatter Plus (da Quest Software) SQuirreL EMS PostgreSQL Manager pgAdmin III Micro OLAP - Database Designer DeZign for Databases V4 SQL Maestro HecKel
  24. Estou com problemas ao criar o select para posteriormente usar numa tabela. As tabelas SQL obrigatórias são as seguintes: “Aluno” (**PK:** id, numero, nome), “Area” (**PK:** id, nome), “UC” (**PK:** id, nome, **FK:** id_area) “Classificacao” ( **PK:** id, **FK:** id_uc, **FK:** id_aluno, nota ) Objectivo é criar uma tabela em php (mvc) da seguinte forma: Coluna - Nº aluno Coluna - Nome do aluno Coluna - Nº disciplinas do aluno na área 1 Coluna - Nº disciplinas do aluno na área 2 Coluna - Se soma disciplinas for maior ou igual que 6 "Sim" (Admitido) Com as entidades e relações que existem entre as tabelas, que select tenho de fazer ao SQLpara preencher a tabela? Actualmente tenho o esqueleto MVC e select da tabela classificação function getClassificacao() { $classificacao = array(); $db=new db(); $con=$db->connect(); $sql_query = "SELECT * FROM classificacao"; $result = $con->query($sql_query); $i = 0; while($row = mysqli_fetch_array($result)) { $classificacao[$i]["id"] = $row["id"]; $classificacao[$i]["id_uc"] = $row["id_uc"]; $classificacao[$i]["id_aluno"] = $row["id_aluno"]; $classificacao[$i]["nota"] = $row["nota"]; $i++; } return $classificacao; }
  25. Esta 'tá difícil... Alguém sabe como posso dar a volta à seguinte situação. Numa tabela de base de dados (meses_quotas_condominos) pretendo que a matriz inicial dum ano seja: a) Todos os meses com EstadoPagamento = "-" b) CondominoID = 1 to @variavel (23 por exemplo) c) Cada mes tem nomenclatura obrigatória na seguinte sequência: "NrMes:NomeMes", exemplos: 01:JANEIRO; 02:FEVEREIRO;...12:DEZEMBRO Tentei: BEGIN DECLARE CondominoID INT SET CondominoID = 1 DECLARE NrMes INT SET NrMes = 01 DECLARE NomeMes = Monthname() WHILE CondominoID < 23 DO While NrMes < 12 DO INSERT INTO meses_quotas_condominos (MesesID,CondominoID, MES, Valor, EstadoPagamento) VALUES (DEFAULT,CondominoID,'@NrMes:@NomeMes(@NrMes)','0','-'); Set NrMes =+ 1 END while set CondominoID =+ 1 End while Estou bloqueado no Statment DECLARE. Antecipadamente grato, Jose
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.