PHP - Error para modificar datos con PDO

 
Vista:
sin imagen de perfil
Val: 14
Ha aumentado su posición en 14 puestos en PHP (en relación al último mes)
Gráfica de PHP

Error para modificar datos con PDO

Publicado por Paola (8 intervenciones) el 21/02/2020 02:56:17
Hola, el problema es que he estado trabajando mucho con este pequeño codigo para editar unas tablas que tengo y no puedo solucionar este error: Warning: PDO::query() expects parameter 1 to be string, dice que el problema es en la linea 35
Les comparto mi codigo, aun estoy comenzando con php y hay cosas que todavia no manejo del todo. Desde ya gracias!!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
$pdo = new PDO("mysql:host=localhost;dbname=proyecto1","root","");
$resolucion = $_GET["resolucion"];
$sql=$pdo->prepare("SELECT resolucion, facultad, sede, carrera, asignatura, curso, regimen, fechainicio, fechafin FROM concursos WHERE resolucion= '$resolucion' ");
$sql->execute();
$registros=$sql->fetchAll(PDO::FETCH_OBJ);
if($sql -> rowCount() > 0) {
foreach($registros as $registro)
 
if(isset($_POST['btnactualizar'])){
$resolucion=($_POST['resolucion']);
$facultad=($_POST['facultad']);
$sede=($_POST['sede']);
$carrera =($_POST['carrera']);
$asignatura=($_POST['asignatura']);
$curso=($_POST['curso']);
$regimen=($_POST['regimen']);
$fechainicio=($_POST['fechainicio']);
$fechafin=($_POST['fechafin']);
 
$sentencia = $pdo->prepare("UPDATE concursos SET facultad = '$facultad', sede = '$sede', carrera = '$carrera', asignatura = '$asignatura', curso = '$asignatura', regimen = '$regimen', fechainicio = '$fechainicio', fechafin = '$fechafin', WHERE resolucion = '$resolucion'");
 
if ($pdo->query($registro)) {
 
echo "<script> alert ('Registro actualizado'); </script>";
} else {
echo "<script> alert ('Error al editar el registro'); </script>";
}
}?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Fran
Val: 20
Ha aumentado su posición en 4 puestos en PHP (en relación al último mes)
Gráfica de PHP

Error para modificar datos con PDO

Publicado por Fran (8 intervenciones) el 21/02/2020 03:14:28
Y cual es la linea 35? usa las etiquetas de código para que se pueda leer..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 14
Ha aumentado su posición en 14 puestos en PHP (en relación al último mes)
Gráfica de PHP

Error para modificar datos con PDO

Publicado por Paola (8 intervenciones) el 21/02/2020 03:24:34
Dosculpa.
El problema era que habia escrito otra consulta, ahora el error es que al guardar muestra los dos mensajes de alerta de forma seguida, pero al final no ocurre ninguna modificacion.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
          $pdo = new PDO("mysql:host=localhost;dbname=proyecto1","root","");
          $resolucion = $_GET["resolucion"];
          $sql=$pdo->prepare("SELECT resolucion, facultad, sede, carrera, asignatura, curso, regimen, fechainicio, fechafin  FROM concursos WHERE resolucion= '$resolucion' ");
          $sql->execute();
          $registros=$sql->fetchAll(PDO::FETCH_OBJ);
            if($sql -> rowCount() > 0)   {
            foreach($registros as $registro)
 
  if(isset($_POST['btnactualizar'])){
  $resolucion=($_POST['resolucion']);
  $facultad=($_POST['facultad']);
  $sede=($_POST['sede']);
  $carrera =($_POST['carrera']);
  $asignatura=($_POST['asignatura']);
  $curso=($_POST['curso']);
  $regimen=($_POST['regimen']);
  $fechainicio=($_POST['fechainicio']);
  $fechafin=($_POST['fechafin']);
 
$sentencia = $pdo->prepare("UPDATE concursos SET facultad = '$facultad', sede = '$sede', carrera = '$carrera', asignatura = '$asignatura', curso = '$asignatura', regimen = '$regimen', fechainicio = '$fechainicio', fechafin = '$fechafin', WHERE resolucion = '$resolucion'");
 
 if ($sentencia) {
 
    echo "<script> alert ('Registro actualizado'); </script>";
  } else {
    echo "<script> alert ('Error al editar el registro'); </script>";
  }
}?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Fran
Val: 20
Ha aumentado su posición en 4 puestos en PHP (en relación al último mes)
Gráfica de PHP

Error para modificar datos con PDO

Publicado por Fran (8 intervenciones) el 21/02/2020 03:40:36
En el if no le dices nada.. pregunta, que si vienen datos haga tal cosa.

1
2
3
4
5
if (isset($sentencia)){
 echo "<script> alert ('Registro actualizado'); </script>";
}else{
echo "<script> alert ('Error al editar el registro'); </script>";
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 14
Ha aumentado su posición en 14 puestos en PHP (en relación al último mes)
Gráfica de PHP

Error para modificar datos con PDO

Publicado por Paola (8 intervenciones) el 21/02/2020 03:59:14
gracias, pero sigue el mismo error, es probable que tenga que ver con las etiquetas php que vuelvo a abrir en los input value ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Error para modificar datos con PDO

Publicado por Julio (830 intervenciones) el 21/02/2020 05:35:18
Hola.

¿Puedes poner la frase del error al completo y el código completo donde te da el error?

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 14
Ha aumentado su posición en 14 puestos en PHP (en relación al último mes)
Gráfica de PHP

Error para modificar datos con PDO

Publicado por Paola (8 intervenciones) el 21/02/2020 15:12:34
El problema es que, se ejecuta el codigo pero al oprimir el boton guardar muestra el mensaje de Registro actualizado, pero al final no se modifica nada. Aqui mi codigo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
<?php include ('modulos/global/sesiones.php'); ?>
<?php include ("modulos/global/coneccion.php"); ?>
<?php include ("cabeceraadmin.php"); ?>
  <div class="content-wrapper">
    <!-- Content Header (Page header) -->
    <section class="content-header">
      <h1>
        Universidad Nacional de Pilar
        <small>Facultad de Ciencias Aplicadas</small>
      </h1>
    </section>
    <!-- Main content -->
    <section class="content">
          <?php
          $pdo = new PDO("mysql:host=localhost;dbname=proyecto1","root","");
          $resolucion = $_GET["resolucion"];
          $sql=$pdo->prepare("SELECT resolucion, facultad, sede, carrera, asignatura, curso, regimen, fechainicio, fechafin  FROM concursos WHERE resolucion= '$resolucion' ");
          $sql->execute();
          $registros=$sql->fetchAll(PDO::FETCH_OBJ);
            if($sql -> rowCount() > 0)   {
            foreach($registros as $registro)
 
  if(isset($_POST['btnactualizar'])){
  $resolucion=($_POST['resolucion']);
  $facultad=($_POST['facultad']);
  $sede=($_POST['sede']);
  $carrera =($_POST['carrera']);
  $asignatura=($_POST['asignatura']);
  $curso=($_POST['curso']);
  $regimen=($_POST['regimen']);
  $fechainicio=($_POST['fechainicio']);
  $fechafin=($_POST['fechafin']);
 
$sentencia = $pdo->prepare("UPDATE concursos SET facultad = '$facultad', sede = '$sede', carrera = '$carrera', asignatura = '$asignatura', curso = '$asignatura', regimen = '$regimen', fechainicio = '$fechainicio', fechafin = '$fechafin', WHERE resolucion = '$resolucion'");
$sentencia-> execute();
   if (isset($sentencia)){
 
    echo "<script> alert ('Registro actualizado'); </script>";
  } else {
    echo "<script> alert ('Error al editar el registro'); </script>";
  }
}?>
      <div class="row">
        <div class="col-md-12">
          <div class="box box-info">
            <div class="box-header with-border">
              <h3 class="box-title">Concursos</h3>
 
            </div>
            <!-- form start -->
            <form method="post" action=""  enctype="multipart/form-data"  >
              <div class="box-body">
                <div class="form-group col-md-6">
                  <label for="exampleInputdoc">Resolucion</label>
                  <input value="<?php { echo $registro->resolucion; ?>" type="text" class="form-control" id="exampleInputres" name="resolucion" placeholder="Resolucion" required>
                </div>
                <div class="form-group col-md-6">
                  <label for="exampleInputdep">Facultad</label>
                  <input value="<?php echo $registro->facultad; ?>" type="text" class="form-control" id="exampleInputfac" name="facultad" placeholder="Facultad" required>
                </div>
                <div class="form-group col-md-6">
                  <label for="exampleInputname">Sede</label>
                 <input value="<?php echo $registro->sede ?>" type="text" class="form-control" id="exampleInputsede" name="sede" placeholder="Sede" required>
                </div>
                <div class="form-group col-md-6">
                  <label for="exampleInputcdad">Carrera</label>
                  <input value="<?php echo $registro->carrera; ?>" type="text" class="form-control" id="exampleInputcarr" name="carrera" placeholder="Carrera" required>
                </div>
                <div class="form-group col-md-6">
                  <label for="exampleInputap">Asignatura</label>
                  <input value="<?php echo $registro->asignatura; ?>" type= "text" class="form-control" id="exampleInputas" name="asignatura" placeholder="Asignatura" required>
                </div>
               <div class="form-group col-md-6">
                  <label for="exampleInputest">Curso</label>
                  <input value="<?php echo $registro->curso; ?>" type="text" class="form-control" id="exampleInputcur" name="curso" placeholder="Curso" required>
                </div>
                <div class="form-group col-md-6">
                  <label for="exampleInputnac">Fecha de Inicio</label>
                  <input value="<?php echo $registro->fechainicio; ?>" type="text" class="form-control" id="exampleInputfi" name="fechainicio" placeholder="" required>
                </div>
                <div class="form-group col-md-6">
                  <label for="exampleInputnac">Regimen</label>
                  <input value="<?php echo $registro->regimen; ?>" type="text" class="form-control" id="exampleInputreg" name="regimen" placeholder="Regimen" required>
                </div>
                <div class="form-group col-md-6">
                  <label for="exampleInputnac">Fecha de Fin</label>
                  <input value="<?php echo $registro->fechafin; ?>" type=" text" class="form-control" id="exampleInputff" name="fechafin" placeholder="" required>
                </div>
             </div>
             <div class="box-footer">
               <button type="submit" name="btnactualizar" class="btn btn-primary ">Guardar</button>
            </div>
           </form>
          </div>
        </div>
      </div>
    <?php }}?>
    </section>
    <!-- /.content -->
  </div>
 <?php include ("pie.php"); ?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Fran
Val: 20
Ha aumentado su posición en 4 puestos en PHP (en relación al último mes)
Gráfica de PHP

Error para modificar datos con PDO

Publicado por Fran (8 intervenciones) el 22/02/2020 08:24:47
Yo veo un problema en

1
'$fechafin', WHERE resolucion

Jamás se usa una coma antes del WHERE. Y sobre el

1
if (isset($sentencia)){

me refiero ha que debes compararlo con algo... no lo puse completo, pero la idea seria algo como:

1
2
3
4
if (isset($sentencia) === "ok"){
echo "<script> alert ('Registro actualizado'); </script>";
}else{
echo "<script> alert ('Error al editar el registro'); </script>";
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 14
Ha aumentado su posición en 14 puestos en PHP (en relación al último mes)
Gráfica de PHP

Error para modificar datos con PDO

Publicado por Paola (8 intervenciones) el 22/02/2020 15:31:01
Asi es!! Era un problema de sintaxis! Gracias por tu ayuda!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Fran
Val: 20
Ha aumentado su posición en 4 puestos en PHP (en relación al último mes)
Gráfica de PHP

Error para modificar datos con PDO

Publicado por Fran (8 intervenciones) el 22/02/2020 18:18:22
Genial.!!!!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Error para modificar datos con PDO

Publicado por joel (1269 intervenciones) el 21/02/2020 10:34:42
Hola Paola, el problema es que query() espera un string con una consulta sql, y tu le estas enviando un array!!!

Puede ser que en vez de:
1
if ($pdo->query($registro)) {

tenga que ir algo así:
1
2
$sentencia->execute();
if ($sentencia->rowCount()) {
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 14
Ha aumentado su posición en 14 puestos en PHP (en relación al último mes)
Gráfica de PHP

Error para modificar datos con PDO

Publicado por Paola (8 intervenciones) el 21/02/2020 15:12:58
graciias!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar