No me inserta los datos a la base de datos.

Iniciado por Drakaris, 19 Diciembre 2016, 17:17 PM

0 Miembros y 1 Visitante están viendo este tema.

Drakaris

Hola hice este codigo:

Código (php) [Seleccionar]
<!DOCTYPE html>
<?php
$servername 
"sql201.260mb.net";
$username "censurado";
$password "censurado";

// Create connection
$conn = new mysqli($servername$username$password);

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

echo 
"Conectado";

//Insert data
if(isset($_POST['data']) && !empty($_POST['data']) &&
isset($_POST['materia']) && !empty($_POST['materia']) &&
isset($_POST['tarea']) && !empty($_POST['tarea']))
{
mysql_query("INSERT INTO 1eso_A (data,materia,tarea) VALUES ('$_POST[data]','$_POST[materia]','$_POST[tarea]')",$formulario);
echo 
"datos insertados correctamente";

}else{
echo "problema al insertar los datos";
}

?>

<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>


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 (php) [Seleccionar]
//Insert data
if(isset($_POST['data']) && !empty($_POST['data']) &&
isset($_POST['materia']) && !empty($_POST['materia']) &&
isset($_POST['tarea']) && !empty($_POST['tarea']))
{
mysql_query("INSERT INTO 1eso_A (data,materia,tarea) VALUES ('$_POST[data]','$_POST[materia]','$_POST[tarea]')",$formulario);
echo "datos insertados correctamente";

}else{
echo "problema al insertar los datos";
}

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 (php) [Seleccionar]
//Insert data
if(isset($_POST['data']) && !empty($_POST['data']) &&
isset($_POST['materia']) && !empty($_POST['materia']) &&
isset($_POST['tarea']) && !empty($_POST['tarea']))
{
mysql_query("INSERT INTO 1eso_A (data,materia,tarea) VALUES ('$_POST[data]','$_POST[materia]','$_POST[tarea]')",$formulario);
echo "datos insertados correctamente";

}


hay algo mal y no se que es.

Gracias


Lo increible, no es lo que ves, sino como es

[u]nsigned

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]

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!

Shell Root

#2
 En otras palabras, no es lo mismo decir,
Código (php) [Seleccionar]
'$_POST[data]' # Toma el valor como una cadena normal
qué,
Código (php) [Seleccionar]
"'".$_POST[data]."'" # Toma el valor enviado por POST
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Drakaris

Se puede hacer con jQuery o javascript es que no me funcionó.

Gracias
Lo increible, no es lo que ves, sino como es

Ocelot1994

Intenta depurar un poco, tal que así:

Código (php) [Seleccionar]

$query = "INSERT INTO 1eso_A (data,materia,tarea) VALUES ('$_POST[data]','$_POST[materia]','$_POST[tarea]')";
$resultado = mysqli_query($query) or die(mysqli_error());

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

Drakaris

#5
Hola puse este 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>

<?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
Lo increible, no es lo que ves, sino como es

engel lex

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Drakaris

Puse este codigo:
<!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:

$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 $mysqli_query = "INSERT INTO $base (data,materia,tarea) VALUES ('$data1', '$materia1', '$tarea1')"; esta nombrado como $mysqli_query y el 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 $mysqli_query = "INSERT INTO $base (data,materia,tarea) VALUES ('$_POST['data1'], '$_POST['materia1']', '$_POST['tarea1']')"; poque no me funcionaba y lo reemplace por '$data1','$materia1','$tarea1' que me fue bien.

Gracias  :)
Lo increible, no es lo que ves, sino como es