No encuentro el error en una consulta

  • Autor Autor Lopezito
  • Fecha de inicio Fecha de inicio
Lopezito

Lopezito

Zeta
Diseñador
Verificación en dos pasos activada
Verificado por Whatsapp
Hola a todos.
Les explico lo que busco:

Yo quiero comprobar que al enviar datos, estos no existan en la base de datos, la base de datos es simple se llama notas y tiene 7 columnas: ID, alumcode, materia, bimestre, nota, grado, profesor

PHP:
<?php
if ($_GET['regnota'] == true) {

$alumncode = htmlentities($_POST['codealumn']);
$materia = htmlentities($_POST['materia']);
$bimestre = htmlentities($_POST['bimestre']);
$nota = htmlentities($_POST['nota']);
$grado = htmlentities($_POST['grado']);
$profesor = $_SESSION['usuario'];

$link11 = mysql_connect("localhost","elusuario","lapass") or die(mysql_error());
mysql_select_db("labase",$link11) or die(mysql_error()); 

$sql = "SELECT * FROM notas WHERE alumcode='$alumncode'";
$resultado = mysql_query($sql, $link11) or die(mysql_error());

if ($row = mysql_fetch_array($resultado)){

$columnmateria = $row['materia'];
$columnbimestre = $row['bimestre'];
$columngrado = $row['grado'];

if ($columnmateria == $materia){
if ($columnbimestre == $bimestre){
if ($columngrado == $grado){

echo "error";

} else {
$link12 = mysql_connect("localhost","elusuario","lapass") or die(mysql_error());
mysql_select_db("labase",$link12) or die(mysql_error()); 

$sql2 = "INSERT INTO notas (alumcode,materia,bimestre,nota,profesor) VALUES('$alumncode','$materia','$bimestre','$nota','$profesor')";

mysql_query($sql2, $link12) or die(mysql_error());

}
}
}
} else {
$link13 = mysql_connect("localhost","elusuario","lapass") or die(mysql_error());
mysql_select_db("labase",$link13) or die(mysql_error()); 

$sql3 = "INSERT INTO notas (alumcode,materia,bimestre,nota,profesor) VALUES('$alumncode','$materia','$bimestre','$nota','$profesor')";

mysql_query($sql3, $link13) or die(mysql_error());
}

mysql_close($link11);
}
?>

Espero alguna ayuda, y si no me explique bien, díganme que tratare de hacerlo mejor :encouragement:
 
Hola a todos.
Les explico lo que busco:

Yo quiero comprobar que al enviar datos, estos no existan en la base de datos, la base de datos es simple se llama notas y tiene 7 columnas: ID, alumcode, materia, bimestre, nota, grado, profesor

PHP:
<?php
if ($_GET['regnota'] == true) {

$alumncode = htmlentities($_POST['codealumn']);
$materia = htmlentities($_POST['materia']);
$bimestre = htmlentities($_POST['bimestre']);
$nota = htmlentities($_POST['nota']);
$grado = htmlentities($_POST['grado']);
$profesor = $_SESSION['usuario'];

$link11 = mysql_connect("localhost","elusuario","lapass") or die(mysql_error());
mysql_select_db("labase",$link11) or die(mysql_error()); 

$sql = "SELECT * FROM notas WHERE alumcode='$alumncode'";
$resultado = mysql_query($sql, $link11) or die(mysql_error());

if ($row = mysql_fetch_array($resultado)){

$columnmateria = $row['materia'];
$columnbimestre = $row['bimestre'];
$columngrado = $row['grado'];

if ($columnmateria == $materia){
if ($columnbimestre == $bimestre){
if ($columngrado == $grado){

echo "error";

} else {
$link12 = mysql_connect("localhost","elusuario","lapass") or die(mysql_error());
mysql_select_db("labase",$link12) or die(mysql_error()); 

$sql2 = "INSERT INTO notas (alumcode,materia,bimestre,nota,profesor) VALUES('$alumncode','$materia','$bimestre','$nota','$profesor')";

mysql_query($sql2, $link12) or die(mysql_error());

}
}
}
} else {
$link13 = mysql_connect("localhost","elusuario","lapass") or die(mysql_error());
mysql_select_db("labase",$link13) or die(mysql_error()); 

$sql3 = "INSERT INTO notas (alumcode,materia,bimestre,nota,profesor) VALUES('$alumncode','$materia','$bimestre','$nota','$profesor')";

mysql_query($sql3, $link13) or die(mysql_error());
}

mysql_close($link11);
}
?>

Espero alguna ayuda, y si no me explique bien, díganme que tratare de hacerlo mejor :encouragement:

Te escribi unas 120 lineas de como hacerlo pero justo al enviar se me fué el internet y ahora me da ladilla 🙁

Es con mysql_num_rows(), si te da más de 1 entonces existe
 
Te escribi unas 120 lineas de como hacerlo pero justo al enviar se me fué el internet y ahora me da ladilla 🙁

Es con mysql_num_rows(), si te da más de 1 entonces existe

Algo así?

PHP:
<?php
if ($_GET['regnota'] == true) {

$alumncode = htmlentities($_POST['codealumn']);
$materia = htmlentities($_POST['materia']);
$bimestre = htmlentities($_POST['bimestre']);
$nota = htmlentities($_POST['nota']);
$grado = htmlentities($_POST['grado']);
$profesor = $_SESSION['usuario'];

$link11 = mysql_connect("localhost","elusuario","lapass") or die(mysql_error());
mysql_select_db("labase",$link11) or die(mysql_error()); 

$sql = "SELECT * FROM notas WHERE alumcode='$alumncode' bimestre='$bimestre' materia='$materia' grado='$grado'";
$resultado = mysql_query($sql, $link11) or die(mysql_error());

if (mysql_num_rows($resultado) == 1){ echo "ERROR"; } else {
$link12 = mysql_connect("localhost","elusuario","lapass") or die(mysql_error());
mysql_select_db("labase",$link12) or die(mysql_error()); 

$sql2 = "INSERT INTO notas (alumcode,materia,bimestre,nota,profesor) VALUES('$alumncode','$materia','$bimestre','$nota','$profesor')";

mysql_query($sql2, $link12) or die(mysql_error());
}
} 

mysql_close($link11);
}
?>
 
Algo así?

PHP:
<?php
if ($_GET['regnota'] == true) {

$alumncode = htmlentities($_POST['codealumn']);
$materia = htmlentities($_POST['materia']);
$bimestre = htmlentities($_POST['bimestre']);
$nota = htmlentities($_POST['nota']);
$grado = htmlentities($_POST['grado']);
$profesor = $_SESSION['usuario'];

$link11 = mysql_connect("localhost","elusuario","lapass") or die(mysql_error());
mysql_select_db("labase",$link11) or die(mysql_error()); 

$sql = "SELECT * FROM notas WHERE alumcode='$alumncode' bimestre='$bimestre' materia='$materia' grado='$grado'";
$resultado = mysql_query($sql, $link11) or die(mysql_error());

if (mysql_num_rows($resultado) == 1){ echo "ERROR"; } else {
$link12 = mysql_connect("localhost","elusuario","lapass") or die(mysql_error());
mysql_select_db("labase",$link12) or die(mysql_error()); 

$sql2 = "INSERT INTO notas (alumcode,materia,bimestre,nota,profesor) VALUES('$alumncode','$materia','$bimestre','$nota','$profesor')";

mysql_query($sql2, $link12) or die(mysql_error());
}
} 

mysql_close($link11);
}
?>

Si, dentro de las 120 lineas que escribí te explicaba algo... y es lo que te voy a mencionar...

Si alguna vez cambias la password de mysql, o el usuario o el nombre de la base de datos, deberás ir archivo por archivo cambiando los datos.... acostumbrate en hacer algo así.

Creas un archivo llamado conexion.php y le metes este código
Insertar CODE, HTML o PHP:
function conectar()
	{
		$servidor="";
		$usuario="";
		$password="";
		$database="";
		$conexion=mysql_connect($servidor,$usuario,$password) or die ('<strong>Ha fallado la conexi&oacute;n: </strong>'.mysql_error());
		mysql_select_db($database)or die ('Error al seleccionar la Base de Datos: '.mysql_error());
	}
function desconectar()
	{
	mysql_close();
	}

Rellenas los datos...

Luego en todos los archivos que usen php le pones

Insertar CODE, HTML o PHP:
include('conexion.php');

Cada vez que quieras hacer una consulta... (este va con ejemplo)

Insertar CODE, HTML o PHP:
conectar(); //conectamos con la base de datos
$consulta=mysql_query("SELECT * FROM tabla"); //hacemos una consulta simple
$datos=mysql_fetch_array($consulta); //almancenamiento en array
$existe=mysql_num_rows($consulta); //cantidad de resultados
mysql_free_result($consulta); //liberamos memorias
desconectar(); //desconectamos de la base de datos

La idea, es simplificar la conexión... si te fijas en tu código te conectas cada 5 lineas xD solo usa la funcion conectar(); y ya 🙂. Saludos
 
Si, dentro de las 120 lineas que escribí te explicaba algo... y es lo que te voy a mencionar...

Si alguna vez cambias la password de mysql, o el usuario o el nombre de la base de datos, deberás ir archivo por archivo cambiando los datos.... acostumbrate en hacer algo así.

Creas un archivo llamado conexion.php y le metes este código
Insertar CODE, HTML o PHP:
function conectar()
	{
		$servidor="";
		$usuario="";
		$password="";
		$database="";
		$conexion=mysql_connect($servidor,$usuario,$password) or die ('<strong>Ha fallado la conexión: </strong>'.mysql_error());
		mysql_select_db($database)or die ('Error al seleccionar la Base de Datos: '.mysql_error());
	}
function desconectar()
	{
	mysql_close();
	}

Rellenas los datos...

Luego en todos los archivos que usen php le pones

Insertar CODE, HTML o PHP:
include('conexion.php');

Cada vez que quieras hacer una consulta... (este va con ejemplo)

Insertar CODE, HTML o PHP:
conectar(); //conectamos con la base de datos
$consulta=mysql_query("SELECT * FROM tabla"); //hacemos una consulta simple
$datos=mysql_fetch_array($consulta); //almancenamiento en array
$existe=mysql_num_rows($consulta); //cantidad de resultados
mysql_free_result($consulta); //liberamos memorias
desconectar(); //desconectamos de la base de datos

La idea, es simplificar la conexión... si te fijas en tu código te conectas cada 5 lineas xD solo usa la funcion conectar(); y ya 🙂. Saludos

Eso lo se, pero lo dejo para lo último :drunk:
El tema, es que yo quiero que no se cree una tabla con los mismos datos de materia, bimestre y grado :drunk:
Y el código que hice, no funca xD

- - - Actualizado - - -

Trate de acomodar, pero sigue enviandome la consulta, y crea más tablas..

PHP:
<?php
if ($_GET['regnota'] == true) {

$alumncode = htmlentities($_POST['codealumn']);
$materia = htmlentities($_POST['materia']);
$bimestre = htmlentities($_POST['bimestre']);
$nota = htmlentities($_POST['nota']);
$grado = htmlentities($_POST['grado']);
$profesor = $_SESSION['usuario'];

$link11 = mysql_connect("localhost","elusuario","lapass") or die(mysql_error());
mysql_select_db("labase",$link11) or die(mysql_error()); 

$sql = "SELECT * FROM notas WHERE alumcode='$alumncode' and bimestre='$bimestre' and materia='$materia' and grado='$grado'";
$resultado = mysql_query($sql, $link11) or die(mysql_error());

if (mysql_num_rows($sql) == 1){ 
echo "ERROR"; 
} else {
$link12 = mysql_connect("localhost","elusuario","lapass") or die(mysql_error());
mysql_select_db("labase",$link12) or die(mysql_error()); 

$sql2 = "INSERT INTO notas (alumcode,materia,bimestre,nota,profesor) VALUES('$alumncode','$materia','$bimestre','$nota','$profesor')";

mysql_query($sql2, $link12) or die(mysql_error());
}

mysql_close($link11);
}
?>

- - - Actualizado - - -

Solucionado

PHP:
<?php
if ($_GET['regnota'] == true) {

$alumncode = htmlentities($_POST['codealumn']);
$materia = htmlentities($_POST['materia']);
$bimestre = htmlentities($_POST['bimestre']);
$nota = htmlentities($_POST['nota']);
$grado = htmlentities($_POST['grado']);
$profesor = $_SESSION['usuario'];

$link11 = mysql_connect("localhost","elusuario","lapass") or die(mysql_error());
mysql_select_db("labase",$link11) or die(mysql_error()); 

$sql = "SELECT * FROM notas WHERE alumcode='$alumncode' and bimestre='$bimestre' and materia='$materia' and grado='$grado' IS NOT NULL";
$resultado = mysql_query($sql, $link11) or die(mysql_error());
$numero = mysql_num_rows($resultado);
if ($numero == 1){ 
echo "ERROR"; 
} else {

$sql2 = "INSERT INTO notas (alumcode,materia,bimestre,nota,profesor) VALUES('$alumncode','$materia','$bimestre','$nota','$profesor')";

mysql_query($sql2, $link11) or die(mysql_error());
}

mysql_close($link11);
}
?>
 
Atrás
Arriba