1

检查“if”有效,但值未更新到数据库中。怎么了?
我认为代码是正确的,它确认了插入的成功。外键是 emp_id,它从名为 empresa (idempresa) 的表中引用主键。

    // get post from other file
      @$pegar = $_POST['postempresa'];
      $q = " SELECT idempresa FROM empresa WHERE idempresa = $pegar " ;


      if (isset($_POST['submit'])) {
        // Connect to the database
        $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);




        // Grab the medida data from the POST


        $fk_empresa = mysqli_real_escape_string($dbc, trim($_POST['chaveestrangeira']));


        $prato = mysqli_real_escape_string($dbc, trim($_POST['f_prato']));
        $medida = mysqli_real_escape_string($dbc, trim($_POST['f_medida']));
        $preco = mysqli_real_escape_string($dbc, trim($_POST['f_preco']));
        $pessoas = mysqli_real_escape_string($dbc, trim($_POST['f_pessoas']));
        $categoria = mysqli_real_escape_string($dbc, trim($_POST['f_categoria']));
        $obs = mysqli_real_escape_string($dbc, trim($_POST['f_obs']));
        $foto = mysqli_real_escape_string($dbc, trim($_FILES['f_foto']['name']));
        $foto_type = $_FILES['f_foto']['type'];
        $foto_size = $_FILES['f_foto']['size']; 




        if (!empty($prato) && !empty($medida) && !empty($preco) && !empty($pessoas) && !empty($categoria) ) {

          if ((($foto_type == 'image/gif') || ($foto_type == 'image/jpeg') || ($foto_type == 'image/pjpeg') || ($foto_type == 'image/png')) && ($foto_size > 0) && ($foto_size <= GW_MAXSIZECARD)) {
            if ($_FILES['f_foto']['error'] == 0) {
              // Move the file to the target upload folder
              $target = GW_UPCARD . $foto;
              if (move_uploaded_file($_FILES['f_foto']['tmp_name'], $target)) {
                // Write the data to the database


                $query = 

                "INSERT INTO cardapio SET

                 emp_id = '$q',
                 prato = '$prato',
                 medida = '$medida',
                 preco = '$preco',
                 pessoas = '$pessoas',
                 categoria = '$categoria',
                 obs = '$obs',
                 foto = '$foto'


                 ";

                mysqli_query($dbc, $query);

                echo mysql_error();

                // Confirm success with the user
                echo '<p>Cardapio enviado!</p>';
                echo '<p><strong>ID EMPRESA</strong> ' . $fk_empresa . '<br />';
                echo '<p><strong>prato:</strong> ' . $prato . '<br />';
                echo '<strong>Medida:</strong> ' . $medida . '<br />';
                echo '<strong>Preço:</strong> ' . $preco . '<br />';
                echo '<strong>Categoria:</strong> ' . $categoria . '<br />';
                echo '<strong>Obs:</strong> ' . $obs . '<br />';
                echo '<img src="' . GW_UPCARD . $foto . '" alt="Score image" /></p>';
                echo '<p><a href="index.php">Voltar para admin</a></p>';

                // Clear the medida data to clear the form
                $prato = "";
                $medida = ""; 
                $preco = "";
                $pessoas = "";
                $categoria = "";
                $obs = "";
                $foto = "";



                mysqli_close($dbc);

              }
              else {
                echo '<p class="error">Tivemos um erro no upload da imagem.</p>';
              }
            }
          }
          else {
            echo '<p class="error">A imagem precisa ter extensão GIF, JPEG, ou PNG e menor que ' . (GW_MAXSIZECARD / 1024) . ' KB.</p>';
          }

          // Try to delete the temporary screen shot image file
          @unlink($_FILES['foto']['tmp_name']);
        }
        else {
          echo '<p class="error">Por favor, preencha todos os campos.</p>';
        }
      }
    ?>
4

2 回答 2

0

如果不存在则创建表empresaidempresaint(10)无符号非空AUTO_INCREMENT, nomefantasiavarchar(255)非空, razaosocialvarchar(255)非空, cnpjvarchar(12)非空, cepempvarchar(8)非空, estadoempvarchar(2)非空, empcidadevarchar(255) 字符集 utf8 NOT NULL, ruaempvarchar(255) NOT NULL, bairroempvarchar(255) NOT NULL, numeroempvarchar(255) NOT NULL, compempvarchar(20) NOT NULL, categoriaempvarchar(45) NOT NULL, logomarcavarchar(64) NOT NULL, telefoneumvarchar(20) NOT NULL, telefonedoisvarchar(20) NOT NULL, emailumvarchar(255) NOT NULL, emaildoisvarchar(255) NOT NULL, PRIMARY KEY ( idempresa) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;

-- ALTER TABLE cardapio ADD CONSTRAINT cardapio_ibfk_3FOREIGN KEY ( emp_id) 引用empresa( idempresa) ON DELETE CASCADE ON UPDATE CASCADE;

于 2013-04-25T19:29:54.307 回答
0

两件事情。

您没有执行查询。像这样执行

$rec    = " SELECT idempresa FROM empresa WHERE idempresa = $pegar " ;
$result =   mysqli_query($rec);
if($result){
    $row    =   myqsli_fetch_assoc($result);
    $q      =   $row['idempresa'];
}else{
    $q = '';
}

现在另一件事是您的插入查询完全错误。它不使用 set 关键字。像这样使用它

$query = "INSERT INTO cardapio 
            (emp_id ,prato ,medida ,preco , pessoas , categoria , obs ,foto )
            VALUES
            ('$q','$prato','$medida','$preco','$pessoas','$pessoas','$categoria','$obs','$foto')";
mysqli_query($query);
于 2013-04-25T08:58:48.497 回答