Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   Insertar Datos Con Php (https://www.clubdelphi.com/foros/showthread.php?t=42706)

Caray 20-04-2007 05:15:30

Insertar Datos Con Php
 
ke ONDA COMPAÑEROS DEL FORO OCUPO DE SU AYUDA.
tENGO UNA PAGINA CON DOS FORMULARIOS: eSTOY HACIENDO UNA PAGINA PARA ENCUESTAR:
eN EL PRIMER FORM ; ESTAN TRES SELECT, EL PIMERO MANDA LLAMAR A LA UNIDAD ACADEMICA, LUEGO EL SEGUNDO LLAMA UN DOCENTE DE ESA UNIDAD SELECCIONADA, Y EL TERCERO LA MATERIA KE IMPARTE EL DOCENTE, EN SI SON TRES SELECT DEPENDIENTES TODO LO JALA DE UNA BD EN MYSQL.
eN EL SEGUNDO FROM ESTAN LAS PREGUNTAS SON 18 LAS CUALES CADA UNA CUENTA CON 5 CHECKBOX PARA SELECCIONAR EL PUNTUAJE DE 1 A 5
td><span class="Estilo19">Al solicitarle dicho apoyo, &iquest;Qu&eacute; tanto consideras que aclara tus dudas? </span></td>
<td><input type='radio' name='pregunta[15]' value='1'></td>
<td><input type='radio' name='pregunta[15]' value='2'></td>
<td><input type='radio' name='pregunta[15]' value='3'></td>
<td><input type='radio' name='pregunta[15]' value='4'></td>
<td><input type='radio' name='pregunta[15]' value='5'></td>
</tr>
TODO ESO VA BIEN, PERO LA PARTE KE NO ME FUNCIONA ES LA SIGUIENTE, NO PUEDO ENVIAR LOS VALORES A LA TABLA "ENCUESTA" (ASI SE LLAMA LA TABLA)
IMPEMENTE ESTE CODIGO PHP POR KE ESTOY TRABAJANDO CON PHP Y dREAMWEAVER
AKI SE LOS PONGO
<?php
$mi_respuesta=$_POST['pregunta'];
$total_respuesta=count($mi_respuesta);
for($i=1;$i<=$total_respuesta;$i++)
{
$sql="INSERT INTO encuesta(c_unidad,c_profesor,c_materia,nopre,resp) VALUES (". $_POST['c_unidad'] .','. $_POST['c_profesor'] .','. $_POST['c_materia'] .','. $i .','. $mi_respuesta[$i]. ")";
mysql_query($sql);
}
?>
NO SE KE ES LO KE PASA, TAL VEZ ESTA MAL EL CODIGO O NO ESTA EN EL LUGAR KE DEBE ESTAR ( LO PUSE UNA LINEA ANTES DE TERMINAR EL SEUNDO FORM)

sE SUPONE KE HACE LO SIGUINTE
1.- aSIGNA EL ARREGLO DE LAS POSIBLES RESPUESTA EN UNA VARIABLE
2.- cUENTA CUANTAS PREGUNTAS CONTESTARON
3.- LUEGO EMPIEZA A HACER LA INSERCION
bUENO LA PAGINA NO MARCA ERROR PERO NO INSERTA NADA NO ME APARECE NADA DE DATOS, NO SE KE SEA NO LO PUEDO IDENTIFICAR POR ESO NECESITO KE ME AYUDES ESPERO SUS RESPUESTAS Y DE ANTEMANO MUCHISIMAS GRACIAS POR MOLESTARDE EN LEER.
SALUDO
Racomiendenme algo

droguerman 20-04-2007 07:38:45

Cita:

Empezado por Caray
MUCHISIMAS GRACIAS POR MOLESTARDE EN LEER.
SALUDO
Racomiendenme algo

si que fue molestia leer, así que la primera recomendación es que practiques tu redacción y ortografía.:confused:

la segunda es que si no inserta nada es posible que tu formulario esté usando como método GET en lugar de POST si esto no es así, entonces configura la opción display_errors en ON dentro de tu archivo php.ini esto te permite mostrar errores, o tambien puedes añadir la siguiente linea, justo despues de la ejecución de mysql_query:

Código PHP:

echo mysql_error(); 


dec 20-04-2007 13:14:28

Hola,

Cita:

Empezado por droguerman
si que fue molestia leer, así que la primera recomendación es que practiques tu redacción y ortografía.

Por favor, no dejes de leer la guía de estilo de estos Foros Caray. Tiene razón el compañero "droguerman". El próximo mensaje de estas características será borrado, directamente. Espero que comprendas los motivos.

lucasarts_18 20-04-2007 19:02:24

Cita:

Empezado por droguerman

Código PHP:

echo mysql_error(); 


Otra forma que yo utilizo para ver si todo anda bien es mostrar la consulta SQL en pantalla, así veo los valores que estoy enviando al servidor...;)

Hasta Luego .-

Caray 23-04-2007 22:03:39

Insertar datos con PHP
 
Hola compañeros de el Foro, primero que nada una disculpa por el anterior mensaje, y a continuacion mi pequeña gran duda.
Yo estoy trabajando con DreamWeaver ahi uso una conexion a la base de datos, la pregunta que les quiero hacer es la siguiente:
¿Para usa el codigo del Insert tengo que conectarme a la base de Datos a través de código escrito por el usuario o con la conexión que se hace en DreamWeaver se puede?.
Esperando su respuesta me despido agradeciendoles sus respuestas.

droguerman 23-04-2007 22:26:52

no he visto la primera forma puedes usar tu código siempre y cuando lo ejecutes en el servidor web

Caray 24-04-2007 05:52:04

Problema con Codigo
 
Hola gente nuevamente, haciendo caso a la recomendación de lucasarts_18 puse la linea que me recomendo (echo mysql_error()) debajo de mysql_query($sql);, y lo que veo es que me muestra más o menos el siguiente error:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ',,1,4)' at line 1

Tengo el siguiente código:
Código PHP:

<?php 
$mi_respuesta
=$_POST['pregunta']; 
$total_respuesta=count($mi_respuesta); 
for(
$i=1;$i<=$total_respuesta;$i++) 

$sql="INSERT INTO encuesta(c_unidad,c_profesor,c_materia,nopre,resp) VALUES ("$_POST['c_unidad'] .','$_POST['c_profesor'] .','$_POST['c_materia'] .','$i .','$mi_respuesta[$i]. ")"
mysql_query($sql); 

?>

Aque se debe ese error, será que mi código esta erroneo?.
Con esto me despido, gracias otra vez por sus respuestas.

lucasarts_18 24-04-2007 06:38:00

Cita:

Empezado por Caray
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ',,1,4)' at line 1
Aque se debe ese error, será que mi código esta erroneo?.
Con esto me despido, gracias otra vez por sus respuestas.

El mismo error de mysql lo está diciendo, tu sintaxis del Insert está mal hecha

Código PHP:

<?php 
$mi_respuesta
=$_POST['pregunta']; 
$total_respuesta=count($mi_respuesta); 
for(
$i=1;$i<=$total_respuesta;$i++) 

$sql="INSERT INTO encuesta(c_unidad,c_profesor,c_materia,nopre,resp) VALUES ("'$_POST['c_unidad']','$_POST['c_profesor']','$_POST['c_materia']',' $i ','$mi_respuesta[$i]'")"
mysql_query($sql); 

?>

modifiqué tu consulta, además creo que te está llegando un parametro vacío del insert.......por ahí creo que van los tiros.:rolleyes:

Nos vemos..

lucasarts_18 24-04-2007 06:43:16

Cita:

Empezado por Caray
Hola gente nuevamente, haciendo caso a la recomendación de lucasarts_18

:eek: eso no lo dije yo, sino nuestro amigo droguerman, lo que dije yo es que sacaras en pantalla la consulta SQL, es decir que en pantalla te arroje algo así:

SELECT * FROM MITABLA

Luego con este string lo copias en un front-End para mysql (puede ser el mysqlYog, muy bueno...:D ) y con esto empiezas a depurar tu aplicación, bueno eso es todo, espero que te sirva, y lo siento, hasta ahora estoy muy verde con este de la depuración en PHP :p

Hasta Luego .-

droguerman 24-04-2007 06:55:53

Cita:

Empezado por Caray
Hola gente nuevamente, haciendo caso a la recomendación de lucasarts_18 puse la linea que me recomendo (echo mysql_error()) debajo de mysql_query($sql);, y lo que veo es que me muestra más o menos el siguiente error:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ',,1,4)' at line 1

Tengo el siguiente código:

es obvio no está leyendo la variable POST, revisa las mayúsculas y minúsculas, si puedes adjunta parte de tu código para revisar

Caray 25-04-2007 05:06:34

Cierto Doguerman
 
Hola Doguerman con gusto te saludo al igual que a la demás gente del foro, fijate que en otro foro me pasaron un poco de código que pondré a continuación:
Código PHP:

foreach ($_POST['pregunta'] as $pregunta) { 
  
$sql="INSERT INTO encuesta (c_unidad, c_profesor, c_materia,nopre, resp) VALUES ("intval ($_POST['c_unidad']) .','intval ($_POST['c_profesor']) .','intval ($_POST['c_materia']) .','intval ($i) .','intval ($respuesta[$i]). ")"
  if (
mysql_query($sql) === false) { 
    echo 
$sql ."<br>\n"mysql_error (); 
  } 


Esto es para lo siguiente: esto lo que hace es convertir las cadenas vacias a 0 porque no existen. Al cargar la pagina e intentar hacer la inserción ya no me arroja error pero al ver si me inserto los datos me muestra puros 0(ceros),lo que a mi entender quiere decir que esas cadenas no existen.
¿Ahora como hacer entonces para que las cadenas contengan algo?
Voy desde el inicio: tengo 2 forms en el primero tengo tres combos dependientes(que obtuve de la pagina http://www.phpcondreamweaver.com.ar/...d-php-y-mysql/), uno de ellos tiene el siguiente código:
Código:

<select name="c_unidad" id="c_unidad" onChange="submit()">
        <option value="" <?php if (!(strcmp("", $_POST['c_unidad']))) {echo "SELECTED";} ?>>Seleccionar</option>
        <?php
do { 
?>
        <option value="<?php echo $row_Unidades['c_unidad']?>"<?php if (!(strcmp($row_Unidades['c_unidad'], $_POST['c_unidad']))) {echo "SELECTED";} ?>><?php echo $row_Unidades['nom_unidad']?></option>
        <?php
} while ($row_Unidades = mysql_fetch_assoc($Unidades));
  $rows = mysql_num_rows($Unidades);
  if($rows > 0) {
      mysql_data_seek($Unidades, 0);
  $row_Unidades = mysql_fetch_assoc($Unidades);
  }
?>
      </select>

Más abajo esta el segundo form, dentro de la misma página, ahí estan las preguntas con sus radiobuttons y más abajo el boton.
Te pongo el codigo de la pregunta:
Código:

<tr>
  <td><div align="center">3</div></td>
  <td><span class="Estilo19"><strong>Contenido del Programa </strong></span></td>
  <td><input type='radio' name='pregunta[3]' value='1'></td>
  <td><input type='radio' name='pregunta[3]' value='2'></td>
  <td><input type='radio' name='pregunta[3]' value='3'></td>
  <td><input type='radio' name='pregunta[3]' value='4'></td>
  <td><input type='radio' name='pregunta[3]' value='5'></td>
</tr>

Y ahora va el código que utilizo para la "inserción":
Código PHP:

$mi_respuesta=$_POST['pregunta']; 
$total_respuesta=count($mi_respuesta); 
   for(
$i=1;$i<=$total_respuesta;$i++) 
         { 
        
$sql="INSERT INTO 
encuesta(c_unidad,c_profesor,c_materia,nopre,resp) 
VALUES ("
$_POST['c_unidad'] .','$_POST['c_profesor'] .','.$_POST['c_materia'] .','$i .','$mi_respuesta[$i]. ")"
                        
mysql_query($sql); 
                 } 

$i es una variable que me va a insertar el número de la pregunta que en total son 18 y $mi_respuesta[$i] la respuesta de esa pregunta.
Como hacer para que me inserte algo?, el código de inserción esta fallando si la respuesta es si, en que falla?.
P.D. El metodo de los dos forms es POST


La franja horaria es GMT +2. Ahora son las 05:38:27.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi