[ Foro de PHP ]

problema con tarea de php

23-Apr-2022 04:53
Martin Joel Benitez
2 Respuestas

Hola que tal comunidad  hoy vengo con una pregunta sobre un curso que estoy realizando tengo el problema con actualizar productos con una base de datos en PHP el error
ocurre cuando intento actualizar un producto y no logro dar con el error ya que el programa me lleva a un error en la consulta SQL aqui les dejo el codigo son tres archivos
php hasta donde se el problema ocurre con uno de ellos si me podrian orientar se los agredeceria  un monton ya que no puedo avanzar con el curso que estoy realizando yo estoy utilizando
DreamweaverCS6 como editor y Wampserver 3.2.3 de 64 bits para mi sistema operativo no se si es una informacion relevante tatare de pasarle los codigos para que puedan localizar el error
el primero sera el formulario de busqueda del producto el segundo nos dirige a una pagina de resultados de busqueda y el tercero es la pagina de actualizar que nos deberia dar como resultado
registro guardado pero me tira el error en la consulta que es en el tercer archivo donde salta directamente al if y me dice error en la consulta  paso a dar los codigos:
Formulario actualizar:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Formulario de actúalizar</title>
</head>

<body>
<form action="pagina_resultados_actualizar.php" method="get">
  <label>Buscar:<input type="text" name="buscar"></label>
   <input type="submit" name="enviando" value="!Dale">
</form>
</body>
</html>

segundo pagina resultados actualizar:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>pagina_resultados_actualizar.php</title>
</head>

<body>
<?php
  $busqueda=$_GET["buscar"];
  require("Datos_conexion.php");
 
  $conexion=mysqli_connect($db_host,$db_usuario,$db_contra,$db_nombrebd);
  if(mysqli_connect_errno()){
     echo "Error al conectar con la BBDD";
     exit();
     }
 
  mysqli_set_charset($conexion,"utf8");
 
  mysqli_select_db($conexion,$db_nombrebd) or die ("No se encuentra BBDD");
 
  $consulta="SELECT * FROM productos WHERE NOMBREARTÍCULO LIKE'%$busqueda%'";
  $resultados=mysqli_query($conexion,$consulta);
     
  while($fila=mysqli_fetch_array($resultados,MYSQLI_ASSOC)){
  //echo "<table><tr><td>";
  echo "<form action='Actualizar.php' method='get'>";
  echo "<input type='text' name='c_art' value='" . $fila['CÓDIGOARTÍCULO'] . "'>
";
  echo "<input type='text' name='n_art' value='" . $fila['NOMBREARTÍCULO'] . "'>
";
  echo "<input type='text' name='sección' value='" . $fila['SECCIÓN'] . "'>
";
  echo "<input type='text' name='importado' value='" . $fila['IMPORTADO'] . "'>
";
  echo "<input type='text' name='precio' value='" . $fila['PRECIO'] . "'>
";
  echo "<input type='text' name='fecha' value='" . $fila['FECHA'] . "'>
";
  echo "<input type='text' name='p_orig' value='" . $fila['PAÍSDEORIGEN'] . "'>
";
  echo "<input type='submit' name='enviando' value='Actualizar'>";
  echo "</form>";
  }
  mysqli_close($conexion);
?>
</body>
</html>

y tercero la pagina actualizar donde creo radica el problema en la consulta SQL ;
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Actualizar</title>
</head>

<body>
<?php
 
  //$busqueda=$_GET["buscar"];
  $cod=$_GET["c_art"];
  $sec=$_GET["sección"];
  $nom=$_GET["n_art"];
  $pre=$_GET["precio"];
  $fec=$_GET["fecha"];
  $imp=$_GET["importado"];
  $por=$_GET["p_orig"];
  require("Datos_conexion.php");
 
  $conexion=mysqli_connect($db_host,$db_usuario,$db_contra,$db_nombrebd);
  if(mysqli_connect_errno()){
     echo "Error al conectar con la BBDD";
     exit();
     }
 
  mysqli_set_charset($conexion,"utf8");
 
  mysqli_select_db($conexion,$db_nombrebd) or die ("No se encuentra BBDD");
 
  $consulta="UPDATE productos SET CÓDIGOARTÍCULO='$cod' , SECCIÓN='$sec' , NOMBREARTÍCULO='$nom' , PRECIO='$pre' , FECHA='$fec' , IMPORTADO='$imp' , PAÍSORIGEN='$por' WHERE CÓDIGOARTÍCULO='$cod'";
  $resultados=mysqli_query($conexion,$consulta);
  if($resultados==false){// ¡¡¡AQUI OCURRE EL PROBLEMA ME ARROJA ESTE  MENSAJE!!!
     echo"Error en la consulta";
     }else{
        echo "Registro Guardado

";
        echo "<table><tr><td>$cod</td></tr>";
        echo "<tr><td>$sec</td></tr>";
        echo "<tr><td>$nom</td></tr>";
        echo "<tr><td>$pre</td></tr>";
        echo "<tr><td>$fec</td></tr>";
        echo "<tr><td>$imp</td></tr>";
        echo "<tr><td>$por</td></tr></table>";
        }
     
  mysqli_close($conexion);
?>
</body>
</html>
los datos de conexion son estos por si acaso sea de necesidad:
<?php
$db_host ="localhost";
  $db_nombrebd="pruebas";
  $db_usuario="root";
  $db_contra="";
?>
este se encuentra en un archivo diferente aunque eso ya es obio soy novato por las dudas aclaro que la tabla de productos la tengo registrada en minuscula no se si eso influya en el codigo
desde ya gracias por su atencion este curso lo estoy tomando en youtube en un canal llamado pildorasinformaticas.


25-Apr-2022 14:17
Nacho Cabanes (+84)

Antes de lanzar la consulta, añade un "echo $consulta;", para comprobar que es correcta.

Puedes incluso copiar y pegar esa consulta en PhpMyAdmin, porque así obtendrás un mensaje de error mucho más claro, que te guiará más sobre lo que está ocurriendo.


04-May-2022 05:59
Martin Joel Benitez

desde ya muchas gracias tu informacion me fue de muchisima ayuda e hizo que resolviera mi problema eso no es todo gracias a esto pude ver con mas claridad como resolver futuros problemas increible lo que se puede aprender en tan pocas palabras de ayuda estoy muy agradecido con usted y esta comunidad.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)