Он хотел знать, есть ли какая-то альтернатива для функции mysqli_insert_id
, так как я хочу, что я результаты делания одного update
. Мой код php - следующий:
<?php
//declaramos las variable introducida en el formulario
$estado = $_POST['estado'];
$fecha = $_POST['fecha'];
$codigo = $_POST['codigo'];
$iva = $_POST['iva'];
$subtotal = $_POST['subtotal'];
$total = $_POST['total'];
$usuario = $_POST['usuario'];
$idcliente = $_POST['idcliente'];
//abrimos la conexión al servidor mysql
$conexion = mysqli_connect("localhost", "ras", "ras")
or die("No es posible conectarse a la BD");
//seleccionamos la base de datos
mysqli_select_db ($conexion, "ZAPATOS")
or die ("no se puede seleccionar la BD" );
//Declaramos las condiciones de actualización:
echo "<h3>El formato de la fecha es AAAA/MM/DD </h3></br>";
if (isset($estado) && isset($fecha) && isset($codigo) && isset($iva) && isset($subtotal) && isset($total) && isset($usuario) && isset($idcliente)){
//definimos las consultas
$consultaprod = "UPDATE `PEDIDO` SET `fecha`='$fecha',`subtotal`='$subtotal',`iva`='$iva',`total`= '$total',`estado`='$estado',`usuario`='$usuario' WHERE idpedido ='$codigo'";
$introdu2 = mysqli_query($conexion, $consultaprod) or die("No se ha podido ejecutar esta consulta");
$id_pedido = mysqli_update_id($conexion);
// PEDIMOS LOS DATOS GUARDADOS:
$consulta_datos = mysqli_query($conexion,"SELECT * FROM PEDIDO WHERE idpedido='$id_pedido'");
//$resultado = mysqli_result(result, row);
$numfilas = mysqli_num_rows ($consulta_datos);
if ($numfilas > 0){
print ("<TABLE border>\n");
print ("<TR>\n");
print ("<td>Idpedido</td>\n");
print ("<td>Idcliente</td>\n");
print ("<td>Fecha</td>\n");
print ("<td>Subtotal</td>\n");
print ("<td>Iva</td>\n");
print ("<td>Total</td>\n");
print ("<td>Estado</td>\n");
print ("<td>Usuario</td>\n");
print ("</TR>\n");
for ($i=0; $i<$numfilas; $i++){
$resultado = mysqli_fetch_array ($consulta_datos);
print ("<TR>\n");
print ("<TD>" . $resultado['idpedido'] . "</TD>\n");
print ("<TD>" . $resultado['idcliente'] . "</TD>\n");
print ("<TD>" . $resultado['fecha'] . "</TD>\n");
print ("<TD>" . $resultado['subtotal'] . "</TD>\n");
print ("<TD>" . $resultado['iva'] . "</TD>\n");
print ("<TD>" . $resultado['total'] . "</TD>\n");
print ("<TD>" . $resultado['estado'] . "</TD>\n");
print ("<TD>" . $resultado['usuario'] . "</TD>\n");
print ("</TR>\n");
print ("</TABLE>\n");
}
}
}
else{
echo "Debes introducir los valores correctamente";
}
mysqli_close($conexion);
?>
cГіdigo правильным является следующий:
$consultaprod = "UPDATE `PEDIDO` SET `fecha`='$fecha',`subtotal`='$subtotal',`iva`='$iva',`total`= '$total',`estado`='$estado',`usuario`='$usuario' WHERE idpedido ='$codigo'";
$update = mysqli_query($conexion, $consultaprod) or die("No se ha podido ejecutar esta consulta");
$comprobacion = "SELECT * FROM `PEDIDO` WHERE idpedido='$codigo' ";
$select = mysqli_query($conexion, $comprobacion) or die("No se ha podido ejecutar esta consulta");
// PEDIMOS LOS DATOS GUARDADOS:
if ($comprobacion) {
}
$numfilas = mysqli_num_rows ($select);
У тебя есть ошибка, где ты создаешь изменчивая $ id_pedido, ты переместил плохо она funciГіn mysqli_update_id
его должно быть mysqli_insert_id
.
funciГіn mysqli_insert_id () возвращает идентификацию, произведенную консультацией в таблице с колонной, у которой был бы признак AUTO_INCREMENT. Если Гєltima консультируется, это не было решение INSERT или UPDATE, или если у измененной таблицы нет колонны с признаком AUTO_INCREMENT, estГЎ funciГіn devolverГЎ нуль.
Учебник PHP mysqli_insert_id:
- https://secure.php.net / учебник / быть / mysqli.insert-id.php
Ты cГіdigo: Обновленные
$consultaprod = "UPDATE `PEDIDO` SET `fecha`='$fecha',`subtotal`='$subtotal',`iva`='$iva',`total`= '$total',`estado`='$estado',`usuario`='$usuario' WHERE idpedido ='$codigo'";
$introdu2 = mysqli_query($conexion, $consultaprod) or die("No se ha podido ejecutar esta consulta");
//Fallo.
$id_pedido = mysqli_update_id($conexion);
^^^^^^^^^^^^^^^
CГіdigo:
$id_pedido = mysqli_insert_id($conexion);
//printf ("Nuevo registro con el id %d.\n", mysqli_insert_id($conexion));
альтернативный Пример:
$consultaprod = "UPDATE `PEDIDO` SET `fecha`='$fecha',`subtotal`='$subtotal',`iva`='$iva',`total`= '$total',`estado`='$estado',`usuario`='$usuario' WHERE idpedido ='$codigo'";
$introdu2 = mysqli_query($conexion, $consultaprod);
//Comprobación si hubo error en la ejucutación de nuestra sentencia.
if ($introdu2) {
//La sentencia se actualizo correctamente.
//Sentencia select (La comparación idpedido=?, escogemos el mismo valor que tu 'update' $codigo), para asi muestrar los valores.
$consulta_datos = mysqli_query($conexion,"SELECT * FROM PEDIDO WHERE idpedido='$codigo' LIMIT 1");
//Obtenemos registros.
$numfilas = mysqli_num_rows ($consulta_datos);
if ($numfilas > 0){
// Sigues con tu código ^^
}
} else { //Fallo sentencia.
echo "Hubo un error, tu datos no se actualizaron.";
}
update
. Потом этот id
ты это сравниваешь где WHERE в твоем решении SELECT
, чтобы называть вышеупомянутые результаты.
– D.Bulten
28.11.2016, 22:43
$codigo
, так как simplemnte мы подтверждаем, что он стал отвечающим совремнным требованиям, и ты делаешь select с $codigo
.
– D.Bulten
28.11.2016, 23:18
Не entendГ - хорошо то, в чем ты нуждаешься, но если то, что ты хочешь, состоит в том, чтобы получать Гєltimo вошедшая идентификация, ты можешь делать это asГ-:
$sql_consulta = "SELECT * FROM PEDIDO WHERE IDPEDIDO IN(SELECT MAX(IDPEDIDO) FROM PEDIDO)";
эта тот aportaciГіn cГіdigo я завершаю:
<?php
$consultaprod = "INSERT INTO `PEDIDO`
(`idpedido`, `idcliente`, `fecha`, `subtotal`, `iva`, `total`, `estado`, `usuario`)
VALUES ('$codigo','$idcliente','$fecha','$subtotal','$iva','$total','$estado','$usuario')";
$introdu2 = mysqli_query($conexion, $consultaprod) or die("No se ha podido ejecutar esta consulta");
$output = "";
$sql_consulta = "SELECT * FROM PEDIDO WHERE IDPEDIDO IN(SELECT MAX(IDPEDIDO) FROM PEDIDO)";
$result = mysqli_query($conexion,$sql_consulta);
if (mysqli_num_rows($result)>0)
{
$output.='
<table>
<thead>
<tr>
<th>Id_pedido</th>
<th>Id_cliente</th>
<th>Fecha</th>
<th>Subtotal</th>
<th>Iva</th>
<th>Total</th>
<th>Estado</th>
<th>usuario</th>
</tr>
</thead>
<tbody>';
while ($row = mysqli_fetch_array($result))
{
$output.='
<tr>
<td>'.$row["idpedido"].'</td>
<td>'.$row["idcliente"].'</td>
<td>'.$row["fecha"].'</td>
<td>'.$row["subtotal"].'</td>
<td>'.$row["iva"].'</td>
<td>'.$row["total"].'</td>
<td>'.$row["estado"].'</td>
<td>'.$row["usuario"].'</td>
</tr>';
}
$output.='
</tbody>
</table>';
}
else
{
$output.= "No se pudo recuperar el ID ingresado";
}
echo $output;
mysqli_free_result($result);
mysqli_close($conexion);
?>
mysqli_insert_id
, а именно вид " mysql_update_id'
"
– ras212
28.11.2016, 21:45