[英]How to save data coming from a different MYSQL table?
美好的一天,我有一個表格可以將新寄存器添加到名為“viajes”的表中,下面是兩個表:
我的桌子的圖片https://i.stack.imgur.com/nUHgJ.png
agregar-viaje.php
<!doctype html>
<?php
include('libreria/motor.php');
require ('connection.php');
require ('libreria/verificar-usuario.php');
$est=viajes::mostrar();
$viajes=new viajes();
if($_POST){
$viajes->NROVIAJE=$_POST['NROVIAJE'];
$viajes->IMO=$_POST['IMO'];
$querybuqueimo="select NOMBRE from buques as elbuque where IMO='".$_POST['IMO']."'";
$relabuqueimo=mysql_query($querybuqueimo);
$buquedeimox=mysql_fetch_assoc($relabuqueimo);
$buquedeimo=$buquedeimox["elbuque"];
$viajes->BUQUE=$buquedeimo;
$viajes->PTOPROCEDENCIA=$_POST['PTOPROCEDENCIA'];
$viajes->PAISPROCEDENCIA=$_POST['PAISPROCEDENCIA'];
$viajes->PTODESTINO=$_POST['PTODESTINO'];
$viajes->PAISDESTINO=$_POST['PAISDESTINO'];
$viajes->OPERACION=$_POST['OPERACION'];
$viajes->CARGA=$_POST['CARGA'];
$viajes->CANTIDAD=$_POST['CANTIDAD'];
$viajes->CHARTER=$_POST['CHARTER'];
$viajes->guardar();
}
$result = mysql_query("SELECT NOMBRE, IMO FROM buques ORDER BY NOMBRE ASC");
$opcion=' ';
while($row=mysql_fetch_assoc($result)){
$opcion .= '<option value = "'.$row['IMO'].'">'.$row['NOMBRE'].' - IMO: '.$row['IMO'].'</option>';
}
$resultch = mysql_query("SELECT NOMBRECOMPANIA FROM clientes ORDER BY NOMBRECOMPANIA ASC");
$opcionch=' ';
while($row=mysql_fetch_assoc($resultch)){
$opcionch .= '<option value = "'.$row['NOMBRECOMPANIA'].'">'.$row['NOMBRECOMPANIA'].'</option>';
}
$maxnroviaje=mysql_query("SELECT MAX(NROVIAJE) as maximo from viajes");
$nroviajenew=mysql_fetch_assoc($maxnroviaje);
$nroviajex=$nroviajenew["maximo"];
$nroviajex++;
?>
<html>
<head>
<meta charset="utf-8">
<title>Agregar Viaje</title>
<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" type="text/css" media="screen">
</head>
<body>
<div class="form-group">
<form id="form1" name="form1" method="post">
<p>
<label for="NROVIAJE">Número de Viaje:</label>
<input name="NROVIAJE" type="number" id="NROVIAJE" autocomplete="off" class="form-control" readonly value="<?php echo $nroviajex; ?>">
</p>
<p>
<label for="IMO">Buque:</label>
<select name="IMO" required id="IMO" class="form-control">
<option value=" "> Seleccione el buque </option>
<?php echo $opcion; ?>
</select>
</p>
<p>
<label for="PTOPROCEDENCIA">Puerto de Procedencia:</label>
<select name="PTOPROCEDENCIA" id="PTOPROCEDENCIA" class="form-control">
<option value=" "> Seleccione un puerto de procedencia </option>
<option value=" Aachen "> Aachen </option>
<option value=" Aalesund "> Aalesund </option>
<option value=" Aarhus "> Aarhus </option>
bla bla bla
</select>
</p>
<p>
<label for="PAISPROCEDENCIA">País de Procedencia:</label>
<select required name="PAISPROCEDENCIA" class="form-control">
<option value=" ">Seleccione un país de procedencia </option>
<option value=" Afganistán "> Afganistán </option>
<option value=" Akrotiri "> Akrotiri </option>
<option value=" Albania "> Albania </option>
bla bla bla
</select>
</p>
<p>
<label for="PTODESTINO">Puerto de Destino:</label>
<select name="PTODESTINO" required class="form-control" id="PTODESTINO">
<option value=" "> Seleccione un puerto de destino </option>
<option value=" Aachen "> Aachen </option>
<option value=" Aalesund "> Aalesund </option>
<option value=" Aarhus "> Aarhus </option>
bla bla bla
</select>
</p>
<p>
<label for="PAISDESTINO">País de Destino:</label>
<select required name="PAISDESTINO" class="form-control">
<option value=" ">Seleccione un país de destino</option>
<option value=" Afganistán "> Afganistán </option>
<option value=" Akrotiri "> Akrotiri </option>
<option value=" Albania "> Albania </option>
bla bla bla
</select>
</p>
<p>
<label>Tipo de Operación:</label>
<br>
<label class="radio-inline">
<input type="radio" name="OPERACION" value="CARGA" id="OPERACION_0" required>
Carga</label>
<label class="radio-inline">
<input type="radio" name="OPERACION" value="DESCARGA" id="OPERACION_1">
Descarga</label>
</p>
<p>
<label for="CARGA">Cargamento:</label>
<select name="CARGA" required id="CARGA" class="form-control">
<option value=" "> Seleccione el cargamento </option>
<option value=" 150N "> 150N </option>
<option value=" 150N/CHEVRONTEXACO "> 150N/CHEVRONTEXACO </option>
<option value=" 150N/SHELL "> 150N/SHELL </option>
bla bla bla
</select>
</p>
<p>
<label for="CANTIDAD">Cantidad (BBLS):</label>
<input name="CANTIDAD" type="number" required id="CANTIDAD" min="1" class="form-control">
</p>
<p>
<label for="CHARTER">Charter (Cliente):</label>
<select name="CHARTER" required id="CHARTER" class="form-control">
<option value=" "> Seleccione el charter (cliente) </option>
<?php echo $opcionch; ?>
</select>
</p>
<p>
<input name="Enviar" id="Enviar" value="Enviar" type="submit" class="btn btn-default">
</p>
</form>
</div>
</body>
</html>
這是我的表格代碼,我設法在“選擇 IMO”中列出了每艘船和她的 IMO,但是,我試圖找到一種方法,在按下提交按鈕時,IMO 及其相關buque 保存在 viajes 表中,而無需在表單中以任何方式添加“buque”。
我做事的方式是,在“viajes”表中創建了一個新的寄存器,其中包含其余數據,但“buque”字段保持空白,我收到以下 PHP 錯誤:注意:未定義索引:C 中的 elbuque :\\xampp\\htdocs\\agente-nav-online\\agregar-viaje.php 第 16 行
非常感謝四位朋友的幫助。
基於以下error_log
行:
PHP 注意:未定義索引:elbuque in C:\\xampp\\htdocs\\agente-nav-online\\agregar-viaje.php 第 16 行
而這部分代碼:
/* 13 */ $querybuqueimo = "select NOMBRE from buques as elbuque where IMO='".$_POST['IMO']."'";
/* 14 */ $relabuqueimo = mysql_query($querybuqueimo);
/* 15 */ $buquedeimox = mysql_fetch_assoc($relabuqueimo);
/* 16 */ $buquedeimo = $buquedeimox["elbuque"];
通知出現在第 16 行,表明$buquedeimox
數組中不存在索引elbuque
。
正如我們在第 13 行看到的,SQL 語法是錯誤的,其中如下:
select NOMBRE from buques as elbuque where IMO='".$_POST['IMO']."'
實際上應該是:
select `NOMBRE` as `elbuque` from `buques` where `IMO`='".$_POST['IMO']."'
不要使用
mysqli_*
因為這些過時和不安全的功能。 改用帶有參數化語句的 MySQLi 或 PDO。 這也將防止 SQL 注入。
堅持面向對象風格或過程風格,但除非完全必要,否則不要混合使用。 我個人推薦面向對象的風格,這種范式提高了你代碼的可讀性、效率、功效、模塊化,最終讓你的應用程序更易於維護。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.