Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Drakaris en 19 Diciembre 2016, 17:17 pm



Título: No me inserta los datos a la base de datos.
Publicado por: Drakaris en 19 Diciembre 2016, 17:17 pm
Hola hice este codigo:

Código
  1. <!DOCTYPE html>
  2. <?php
  3. $servername = "sql201.260mb.net";
  4. $username = "censurado";
  5. $password = "censurado";
  6.  
  7. // Create connection
  8. $conn = new mysqli($servername, $username, $password);
  9.  
  10. // Check connection
  11. if ($conn->connect_error) {
  12.    die("Conecxion fallida: " . $conn->connect_error);
  13. }
  14. echo "Conectado";
  15.  
  16. //Insert data
  17. if(isset($_POST['data']) && !empty($_POST['data']) &&
  18. isset($_POST['materia']) && !empty($_POST['materia']) &&
  19. isset($_POST['tarea']) && !empty($_POST['tarea']))
  20. {
  21. mysql_query("INSERT INTO 1eso_A (data,materia,tarea) VALUES ('$_POST[data]','$_POST[materia]','$_POST[tarea]')",$formulario);
  22. echo "datos insertados correctamente";
  23.  
  24. }else{
  25. echo "problema al insertar los datos";
  26. }
  27.  
  28. ?>
  29. <script type="text/javascript">
  30. function mensaje(){
  31. alert("solo acepta números, puedes escribir hasta 10 caracteres");
  32. }
  33. </script>
  34. <script type="text/javascript">
  35. function solonumeros(e){
  36. key=e.keyCode || e.which;
  37.  
  38. teclado=String.fromCharCode(key);
  39.  
  40. numeros="0123456789";
  41.  
  42. especiales="8-37-38-46-92-32-47";//array
  43.  
  44. caracteres_especiales="160-47-46-59-58";
  45.  
  46. teclado_especial=false;
  47.  
  48. for(var i in especiales){
  49.  
  50. if(key==especiales[i]){
  51.  
  52. teclado_especial=true;
  53. }
  54. }
  55.  
  56. if(numeros.indexOf(teclado)==-1 && !teclado_especial){
  57. return false;
  58. }
  59. }
  60. </script>
  61.     <head>
  62.  
  63.     <title>Materia</title>
  64. </head>
  65.  
  66. <body>
  67. <center><font color="#333333" face="Segoe script" size="+6">Insertar deberes</font></center>
  68. <br>
  69. <br>
  70. <center>
  71. <form action="procesar.php" method="post" name="form">
  72. <font size="+1" color="#333333" face="Segoe script">Data:</font>&nbsp;<input type="text" name="data" onKeyPress="return solonumeros(event)" onpaste="return false" maxlength="10" style="background-color: lightblue; color: gray; border: inset; border-color: orange" value="-/-/-" id="data">&nbsp&nbsp<input type="button" onclick="mensaje()" style=" cursor:help; background-color:lightgreen; border-bottom-color:#66FF00;" value="i">
  73. <br>
  74. <br>
  75. <font size="+1" face="Segoe script">Materia:</font>&nbsp;<input type="text" name="materia" style="background-color: lightblue; color: gray; border: inset; border-color: orange" id="materia">
  76. <br>
  77. <br>
  78. <font size="+1" face="Segoe script">Tarea:</font>
  79. <br>
  80. <br>
  81. <textarea cols="50" rows="10" name="tarea" style="background-color: lightblue; color: gray; border: inset; border-color: orange" id="tarea"></textarea>
  82. <br>
  83. <br>
  84. <a href="conectar.php">
  85. <input type="submit" value="Enviar"  onclick="guardardatos()" style="background-color: orange; border: inset; border-color: orange; cursor: pointer;">&nbsp;<input type="reset" value="Limpiar formulario" style="background-color: orange; border: inset; border-color: orange; cursor: pointer;" name="ok" id="ok">
  86. </a>
  87. </form>
  88. </center>
  89. </body>
  90. </html>

Este código esta conectado es decir que la conexión me va bien pero quiero que al insertar los datos en el formulario envie los datos en mi base de datos que esta conectado puse este código:
Código
  1. //Insert data
  2. if(isset($_POST['data']) && !empty($_POST['data']) &&
  3. isset($_POST['materia']) && !empty($_POST['materia']) &&
  4. isset($_POST['tarea']) && !empty($_POST['tarea']))
  5. {
  6. mysql_query("INSERT INTO 1eso_A (data,materia,tarea) VALUES ('$_POST[data]','$_POST[materia]','$_POST[tarea]')",$formulario);
  7. echo "datos insertados correctamente";
  8.  
  9. }else{
  10. echo "problema al insertar los datos";
  11. }
  12.  
No se si esta bien

Lo puse y al guardarlo y subirlo en 260mb.net y lo visualuzo me pone conectado que esta bien pero despues me pone "problema al insertar los datos" cuyo frase puse yo al programar el c�digo eso creo que significa que el c�digo:

Código
  1. //Insert data
  2. if(isset($_POST['data']) && !empty($_POST['data']) &&
  3. isset($_POST['materia']) && !empty($_POST['materia']) &&
  4. isset($_POST['tarea']) && !empty($_POST['tarea']))
  5. {
  6. mysql_query("INSERT INTO 1eso_A (data,materia,tarea) VALUES ('$_POST[data]','$_POST[materia]','$_POST[tarea]')",$formulario);
  7. echo "datos insertados correctamente";
  8.  
  9. }

hay algo mal y no se que es.

Gracias




Título: Re: No me inserta los datos a la base de datos.
Publicado por: [u]nsigned en 19 Diciembre 2016, 17:22 pm
Proba reemplazando las comillas simples por dobles donde concatenas los valores de $_POST. Porque sino PHP no leera el valor de estas variables, sino que toma el texto literalmente como $_POST[data]


Título: Re: No me inserta los datos a la base de datos.
Publicado por: Shell Root en 19 Diciembre 2016, 18:42 pm
 En otras palabras, no es lo mismo decir,
Código
  1. '$_POST[data]' # Toma el valor como una cadena normal
qué,
Código
  1. "'".$_POST[data]."'" # Toma el valor enviado por POST


Título: Re: No me inserta los datos a la base de datos.
Publicado por: Drakaris en 20 Diciembre 2016, 17:18 pm
Se puede hacer con jQuery o javascript es que no me funcionó.

Gracias


Título: Re: No me inserta los datos a la base de datos.
Publicado por: Ocelot1994 en 20 Diciembre 2016, 19:46 pm
Intenta depurar un poco, tal que así:

Código
  1. $query = "INSERT INTO 1eso_A (data,materia,tarea) VALUES ('$_POST[data]','$_POST[materia]','$_POST[tarea]')";
  2. $resultado = mysqli_query($query) or die(mysqli_error());
  3.  
Y dos cosas:
1.- mysql_query esta "deprecated" por lo que deberias acostumbrarte a utilizar a partir de ahora msyqli_query()
2.- ¿Porque al final del insert le metes una variable $formulario, que se supone que le pasas ahí?

Saludos


Título: Re: No me inserta los datos a la base de datos.
Publicado por: Drakaris en 22 Diciembre 2016, 19:30 pm
Hola puse este código
Código:
<!DOCTYPE html>
<?php
$servername = "censurado";
$username = "censurado";
$password = "censurado";
$base = "1eso_A";
// Create connection
$conn = new mysqli($servername, $username, $password);

// Check connection
if ($conn->connect_error) {
    die("Conecxion fallida: " . $conn->connect_error);
}
echo "Conectado";

//Insert data
$sql = "INSERT INTO $base (data,materia,tarea) VALUES ('$data', '$materia', '$tarea')";

if (mysqli_query($conn, $sql)) {
    echo " a la base de datos";
} else {
    echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}

mysqli_close($conn);
?>
<script type="text/javascript">
function mensaje(){
alert("solo acepta números, puedes escribir hasta 10 caracteres");
}
</script>
<script type="text/javascript">
function solonumeros(e){
key=e.keyCode || e.which;

teclado=String.fromCharCode(key);

numeros="0123456789";

especiales="8-37-38-46-92-32-47";//array

caracteres_especiales="160-47-46-59-58";

teclado_especial=false;

for(var i in especiales){

if(key==especiales[i]){

teclado_especial=true;
}
}

if(numeros.indexOf(teclado)==-1 && !teclado_especial){
return false;
}
}
</script>
     <head>
   
    <title>Materia</title>
</head>

<body>
<center><font color="#333333" face="Segoe script" size="+6">Insertar deberes</font></center>
<br>
<br>
<center>
<form action="procesar.php" method="post" name="form">
<font size="+1" color="#333333" face="Segoe script">Data:</font>&nbsp;<input type="text" name="data" onKeyPress="return solonumeros(event)" onpaste="return false" maxlength="10" style="background-color: lightblue; color: gray; border: inset; border-color: orange" value="-/-/-" id="data">&nbsp&nbsp<input type="button" onclick="mensaje()" style=" cursor:help; background-color:lightgreen; border-bottom-color:#66FF00;" value="i">
<br>
<br>
<font size="+1" face="Segoe script">Materia:</font>&nbsp;<input type="text" name="materia" style="background-color: lightblue; color: gray; border: inset; border-color: orange" id="materia">
<br>
<br>
<font size="+1" face="Segoe script">Tarea:</font>
<br>
<br>
<textarea cols="50" rows="10" name="tarea" style="background-color: lightblue; color: gray; border: inset; border-color: orange" id="tarea"></textarea>
<br>
<br>
<a href="conectar.php">
<input type="submit" value="Enviar"  onclick="guardardatos()" style="background-color: orange; border: inset; border-color: orange; cursor: pointer;">&nbsp;<input type="reset" value="Limpiar formulario" style="background-color: orange; border: inset; border-color: orange; cursor: pointer;" name="ok" id="ok">
</a>
</form>
</center>
</body>
</html>
Código:
<?php
$servername = "sql201.260mb.net";
$username = "n260m_19293384";
$password = "iescalvia";
$base = "1eso_A";
// Create connection
$conn = new mysqli($servername, $username, $password);

// Check connection
if ($conn->connect_error) {
    die("Conecxion fallida: " . $conn->connect_error);
}
echo "Conectado";

//Insert data
$sql = "INSERT INTO $base (data,materia,tarea) VALUES ('$data', '$materia', '$tarea')";

if (mysqli_query($conn, $sql)) {
    echo " a la base de datos";
} else {
    echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}

mysqli_close($conn);
?>

y al guardarlo me sale esto: Error: INSERT INTO 1eso_A (data,materia,tarea) VALUES ('', '', '')
No database selected


intenté con el código que me dijo Diego5 pero me da error y de esta forma esta que dice que no hay ninguna base de datos seleccionada.

No entiendo que está mal?

P.D: y mysqli_query no pude usarlo.

Gracias


Título: Re: No me inserta los datos a la base de datos.
Publicado por: engel lex en 23 Diciembre 2016, 16:28 pm
intentaste esto (http://bfy.tw/96NX)? no te dio resultados?


Título: Re: No me inserta los datos a la base de datos.
Publicado por: Drakaris en 24 Diciembre 2016, 16:33 pm
Puse este codigo:
Código:
<!DOCTYPE html>
<?php
$servername = "censurado";
$username = "censurado";
$password = "censurado";
$base = "1esoa";
// Create connection
$conn = new mysqli($servername, $username, $password);

// Check connection
if ($conn->connect_error) {
    die("Conecxion fallida: " . $conn->connect_error);
}
echo "Conectado";
//Insert data
$mysqli_query = "INSERT INTO $base (data,materia,tarea) VALUES ('$data1', '$materia1', '$tarea1')";

if (mysqli_query($conn, $sql)) {
    echo " a la base de datos";
} else {
    echo "Error al insertar los datos " . $sql . "<br>" . mysqli_error($conn);
}

mysqli_close($conn);
?>
<script type="text/javascript">
function mensaje(){
alert("solo acepta números, puedes escribir hasta 10 caracteres");
}
</script>
<script type="text/javascript">
function solonumeros(e){
key=e.keyCode || e.which;

teclado=String.fromCharCode(key);

numeros="0123456789";

especiales="8-37-38-46-92-32-47";//array

caracteres_especiales="160-47-46-59-58";

teclado_especial=false;

for(var i in especiales){

if(key==especiales[i]){

teclado_especial=true;
}
}

if(numeros.indexOf(teclado)==-1 && !teclado_especial){
return false;
}
}
</script>
     <head>
     
     <title>Materia</title>
</head>

<body>
<center><font color="#333333" face="Segoe script" size="+6">Insertar deberes</font></center>
<br>
<br>
<center>
<form action="procesar.php" method="post" name="form">
<font size="+1" color="#333333" face="Segoe script">Data:</font>&nbsp;<input type="text" name="data" onKeyPress="return solonumeros(event)" onpaste="return false" maxlength="10" style="background-color: lightblue; color: gray; border: inset; border-color: orange" value="-/-/-" id="data">&nbsp&nbsp<input type="button" onclick="mensaje()" style=" cursor:help; background-color:lightgreen; border-bottom-color:#66FF00;" value="i">
<br>
<br>
<font size="+1" face="Segoe script">Materia:</font>&nbsp;<input type="text" name="materia" style="background-color: lightblue; color: gray; border: inset; border-color: orange" id="materia">
<br>
<br>
<font size="+1" face="Segoe script">Tarea:</font>
<br>
<br>
<textarea cols="50" rows="10" name="tarea" style="background-color: lightblue; color: gray; border: inset; border-color: orange" id="tarea"></textarea>
<br>
<br>
<a href="conectar.php">
<input type="submit" value="Enviar"  onclick="guardardatos()" style="background-color: orange; border: inset; border-color: orange; cursor: pointer;">&nbsp;<input type="reset" value="Limpiar formulario" style="background-color: orange; border: inset; border-color: orange; cursor: pointer;" name="ok" id="ok">
</a>
</form>
</center>
</body>
</html>

y me va bien pero no inserta los datos en la base de datos pone Error al insertar los datos cuyo frase puse yo. El error está aquí pero no sé muy bien donde:

Código:
$mysqli_query = "INSERT INTO $base (data,materia,tarea) VALUES ('$data1', '$materia1', '$tarea1')";

if (mysqli_query($conn, $sql)) {
    echo " a la base de datos";
} else {
    echo "Error al insertar los datos " . $sql . "<br>" . mysqli_error($conn);
}

mysqli_close($conn);

Creo que el error está en que el código
Código:
$mysqli_query = "INSERT INTO $base (data,materia,tarea) VALUES ('$data1', '$materia1', '$tarea1')";
esta nombrado como $mysqli_query y el código
Código:
if (mysqli_query($conn, $sql)) {
    echo " a la base de datos";
} else {
    echo "Error al insertar los datos " . $sql . "<br>" . mysqli_error($conn);
}
lo llama $sql y no hay ninguno pero no sé si lo que digo es cierto, hice esto, poner $mysqli_query en el código en el lugar de $sql y no me funcionó.

No se lo que está mal.
P.D:

no puse
Código:
$mysqli_query = "INSERT INTO $base (data,materia,tarea) VALUES ('$_POST['data1'], '$_POST['materia1']', '$_POST['tarea1']')";
poque no me funcionaba y lo reemplace por
Código:
'$data1','$materia1','$tarea1'
que me fue bien.

Gracias  :)