How to send form data to mysql?

1

I'mtryingtosendformdatatomysqlbutgiveerrorNotice:

  

ArraytostringconversioninC:\xampp\htdocs\Projects\orders.phpon  line16

Line16isthis

  

$sql="INSERT INTO spedido (table_name, order, quantity)   VALUES ('$ number', '$ order', '$ quantity') ";

And when you send it, it just takes the table and one of the select, the amount does not catch. What would be giving this error?

 <?php
error_reporting(-1);
ini_set('display_errors', 'On');

//Criar a conexao
$link = new mysqli ("localhost", "root", "", "peixaria");
if($link->connect_errno){
     echo"Nossas falhas local experiência ..";
     exit();
}

if($_SERVER['REQUEST_METHOD'] == 'POST') {
    $numero_mesa = $_POST['numero_mesa'];
    $pedido_refeicao = $_POST['pedido_refeicao'];
    $num_refeicao = $_POST['num_refeicao'];
    $pedido_bebida = $_POST['edido_bebida'];
    $num_bebida = $_POST['num_bebida'];
        $sql="INSERT INTO npedido(numero_mesa,pedido_refeicao,num_refeicao,pedido_bebida,num_bebida) VALUES('$numero_mesa','$pedido_refeicao','$num_refeicao','$pedido_bebida','$num_bebida')";
        $resultado_pedido = mysqli_query($link,$sql);
}
?>
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"/>
    <title>Peixaria</title>
    <style>
        .add {
            text - decoration: none;
        }
    </style>
</head>
<body>
<style>
.add,add2{ text-decoration:none;}
#selecionados input,#selecionados2 input{ margin:10px;}
</style>
    <h1>Peixaria</h1>
    <ul class="menu cf">
        <li><a href="secao.php">Início</a></li>
        <li><a href="pedidos.php">Pedidos</a></li>
        <li><a href="reserva.php">Reserva</a></li>
        <li><a href="relatorio.php">Relatório</a></li>
    </ul>
    <main>
        <form method="post" action="pedidos.php">
            <header>
                <h2>Fazer Pedido</h2>
            </header>
            <fieldset>
                <label>
                    <span>Mesa</span>
                    <input type="text"id="numero_mesa" name="numero_mesa">
                </label>
                <label>
                    <span>Comanda:</span>

                </label>
                <span>Refeições/Bebidas/Sobremesas:</span>
                <div class="pedidos">

                    <select name="pedido,quantidade" id="pedido,quantidade"class="selecionar">
                        <option selected disabled>Selecione</option>
                        <option >Costela de Tambaqui sem Espinha</option> 
                        <option  >Lombo de Tambaqui Frito sem Espinha</option>
                        <option >Caldeirada de Tambaqui sem Espinha</option>
                        <option >Caldeirada de Tucunaré</option> 
                        <option >Peixe no Tucupi com Camarão</option>
                        <option >Escabeche de Pirarucu</option>
                        <option >Escabeche de Tambaqui</option>
                        <option >Escabeche de Tucunaré</option>
                        <option >Tucunaré Frito</option> 
                        <option >Sardinha Frita</option>
                        <option >Jaraqui Frito</option>
                        <option >Pacu Frito</option> 
                        <option >Filé de Pirarucu Frito</option>
                        <option >Filé de Pirarucu a Milanesa</option>
                        <option >Guisado de Pirarucu</option>
                    </select>
                    <a class="add" href="#">+</a>
                    <hr>
                    Selecionados
                    <hr>
                    <div class="selecionados">

                    </div>
                </div>
               <br>
                <div  class="pedidos">

                    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><selectname="pedido" id="pedido"class="selecionar">
                        <option selected disabled>Selecione</option> 
                        <option >Fanta Laranja 1l</option> 
                        <option >Fanta Laranja 2l</option> 
                        <option >Cola Cola 1l</option>
                        <option >Cola Cola 2l</option>
                        <option >Bare 2l</option> 
                        <option >Fanta Uva</option>
                        <option >Fanta Laranja</option>
                        <option >Sprit</option> 
                        <option >Cola Cola </option>
                        <option >Cola Cola zero </option>
                        <option >Guaraná Antarctica</option> 
                        <option >Guaraná Baré</option>
                        <option >Suco Goiaba</option> 
                        <option >Suco Manga</option>
                        <option >Suco Pessego</option>
                        <option >Suco Uva</option> 
                        <option >Suco Maracujá</option>
                        <option >Suco Laranja</option>
                        <option >Suco Caju</option> 
                        <option >Agua Mineral </option>
                        <option >Agua com Gas </option>
                        <option >Cerveja em Lata</option> 
                        <option >Limonada Natural</option>
                    </select>
                    <a class="add" href="#">+</a>
                    <hr>
                    Selecionados
                    <hr>
                    <div class="selecionados">

                    </div>

                </div>
<br>
<button class="btn" type="submit">Fazer Pedido</button>   
            </fieldset>

        </form>
    </main>

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><script>$(".add").on('click',function(){ 
            var cont=0;
            var holder = $(this).closest('.pedidos');
            holder.find(".selecionados input").each(function(){
                if($(this).val()==holder.find(".selecionar option:selected").html()){
                    cont++;
                }
            });
            if(cont>0) { 
                alert("Este item ja esta adicionado, altere a quantidade se deseja mais..");
            } else{
                holder.find(".selecionados").append(
                    "<input disabled type='text' name='pedidos[]' value='" + 
                    holder.find(".selecionar option:selected").html() + 
                    "' ><input type='text' name='quantidade[]' placeholder='quantidade'><br>"
                );
            }
        });


    </script>
    
asked by anonymous 18.01.2017 / 16:26

4 answers

2

You have to validate the data, do some checks and so on ... a task either:)

this php puts it at the top of the page

<?php

if (isset($_POST["pedido"])) {

$link = new mysqli ("localhost", "USUARIO", "SENHA", "DB");
if($link->connect_errno){
echo"Nossas falhas local experiência ..";
exit();
}

$sql = ("DELETE FROM spedido Where numero_mesa='".$numero_mesa."'");
$resultado_pedido = mysqli_query($link,$sql);

$numero_mesa=$_POST["numero_mesa"];
$optionArray = $_POST["pedido"];

for ($i = 0; $i < count($optionArray); $i++) {
$pedido=$pedido.",".$optionArray[$i];
$pedido=str_replace(",,",",",$pedido);
}
$pedido=substr($pedido, 1,(strlen($pedido)-2));

$aDest = explode(",", $pedido);
$result = count($aDest);

for ($k = 0; $k < $result; $k++) {
$par = $aDest[$k];
if ($k%2==0){
$pedido=$par;
$alerta = $alerta.$par.": ";
}else{
$quantidade=$par;
$sql = "INSERT INTO spedido(numero_mesa,pedido,quantidade) VALUES('$numero_mesa','$pedido','$quantidade')";
$resultado_pedido = mysqli_query($link,$sql);
$alerta = $alerta.$par."<br>";
}
}

echo ("<script type=\"text/javascript\" src=\"https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js\"></script>
<script type=\"text/javascript\" src=\"http://www.jacklmoore.com/colorbox/jquery.colorbox.js\"></script>
<link rel=\"stylesheet\" type=\"text/css\" href=\"http://www.jacklmoore.com/colorbox/example1/colorbox.css\">");

if ($alerta != ""){
$res=$result*15;
if ($res<80){
$res=80;
}
echo ("<style>#ajax{height:".$res."px; width:500px;}</style>
<script type=\"text/javascript\">
$(window).load(function(){
$(document).ready(function(){
$.colorbox({inline:true, href:\".ajax\"});
});
});

function printDiv(divName) {
var printContents = document.getElementById(divName).innerHTML;
var originalContents = document.body.innerHTML;
document.body.innerHTML = printContents;
window.print();
document.body.innerHTML = originalContents;
}
</script>");
echo ("<div style=\"display:none\"><div id=\"ajax\" class=\"ajax\">Pedido mesa: 
".$numero_mesa."<br><ul>".$alerta."</ul><input type=\"button\" onclick=\"printDiv('ajax')\" 
value=\"Imprimir\" /></div></div>"); 

}
}
?>

    
18.01.2017 / 23:51
0

You must use a master-detail data model.

At least two tables.

One is the order master: number, table, time, waiter, etc. and the other with the details, which are the items: product, qtd, price, etc.

The error occurs because you are trying to pass an array (many values) to string (a value).

    
18.01.2017 / 17:02
0

Array to string conversion is an error that occurs when the programmer uses an array when PHP expects a string. Since PHP does not know how to turn this array into a string, it throws the error.

  

$ sql="INSERT INTO spedido (table_name, order, quantity)   VALUES ('$ number', '$ order', '$ quantity') ";

That said, $numero_mesa , $pedido and / or $quantidade are arrays. You should treat this data before using it in queries.

    
18.01.2017 / 17:10
0

A quick solution would be to create in the table

numero_mesa
pedido_refeicao  ** para os pedido da refeição
num_refeicao     ** lista a quantidade de refeição
pedido_bebida    ** lista as bebidas
num_bebida       ** Lista a Quantidade de Bebidas

Then save all the in the table and then only the exbition lists

    
18.01.2017 / 17:31