Как показывать данные, которые изменились в таблице MYSQL с PHP?

Он хотел знать, есть ли какая-то альтернатива для функции 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);
    ?>
0
задан 28.11.2016, 21:53
3 ответа

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);
0
ответ дан 24.11.2019, 12:21

У тебя есть ошибка, где ты создаешь изменчивая $ 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.";
}
1
ответ дан 24.11.2019, 12:21
  • 1
    Но с instrucció n insert_id я mostrará insert? – ras212 28.11.2016, 22:37
  • 2
    Покажи update и insert, каждый раз, когда у него была колонна, которую он содержал бы AUTO_INCREMENT. В твоем случае идет, это один update. Потом этот id ты это сравниваешь где WHERE в твоем решении SELECT, чтобы называть вышеупомянутые результаты. – D.Bulten 28.11.2016, 22:43
  • 3
    Нет, он не имеет autoincrement, это проблема – ras212 28.11.2016, 23:13
  • 4
    Так как я оставляю тебе в моем примере секунду opció n, сейчас я обновляю ее, как это update, идентификации $codigo, так как simplemnte мы подтверждаем, что он стал отвечающим совремнным требованиям, и ты делаешь select с $codigo. – D.Bulten 28.11.2016, 23:18
  • 5
    Он я не идет, остается, не делая ничего – ras212 29.11.2016, 00:46

Не 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);

?>
-1
ответ дан 24.11.2019, 12:21
  • 1
    ¿ Но из-за qué ты изменяешь консультацию?, что я хочу сделать, состоит в том, чтобы находить альтернативу в funció n mysqli_insert_id, а именно вид " mysql_update_id' " – ras212 28.11.2016, 21:45
  • 2
    АХ, я ошибся scrpt, дай мне секунду и я это меняю – ras212 28.11.2016, 21:46