Foros del Web » Programando para Internet » PHP »

Una Pequeña Ayuda Por favor

Estas en el tema de Una Pequeña Ayuda Por favor en el foro de PHP en Foros del Web. Lo que pasa es que tengo que hacer una consultas de select dinamico y todo hasta y esta bien el problema es cuando envio el ...
  #1 (permalink)  
Antiguo 12/08/2004, 10:00
 
Fecha de Ingreso: marzo-2002
Mensajes: 60
Antigüedad: 22 años, 1 mes
Puntos: 0
Una Pequeña Ayuda Por favor

Lo que pasa es que tengo que hacer una consultas de select dinamico y todo hasta y esta bien el problema es cuando envio el resultado me presenta este error

Cita:
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in C:\ServidorLocal\www\test\TN\TN1.php on line 456

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in C:\ServidorLocal\www\test\TN\TN1.php on line 457

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in C:\ServidorLocal\www\test\TN\TN1.php on line 458
Aqui les pongo el codigo para que ayuden y me tigan donde esta el error

Cita:

Código PHP:
session_start();
?>
<? 
/// aqui traigo los campos del seletc
if (isset($_POST['Enviar'])){ 
    
$sem=$_POST['select']; 
}else{ 
?> 

<? // variables 
$_SESSION['MM_Username'];
$matriexplode("-",$_SESSION['MM_Username']);
$_SESSION['Ano']=$matri[0];
$_SESSION['Mat']=$matri[1];
?>
 
<?  
// Sentencias Sql de las busquedas 
mysql_select_db($database_Estudiantes$Estudiantes);
$query_Notas "SELECT * FROM notas WHERE Ano ='".$_SESSION['Ano']."' And Mat ='".$_SESSION['Mat']."' and semestre = '".$sem."'";
$Notas mysql_query($query_Notas$Estudiantes) or die(mysql_error());
$row_Notas mysql_fetch_assoc($Notas);
$totalRows_Notas mysql_num_rows($Notas);
mysql_select_db($database_Estudiantes$Estudiantes);
$query_Nombres "SELECT * FROM nombre WHERE Ano ='".$_SESSION['Ano']."' And Mat ='".$_SESSION['Mat']."'";
$Nombres mysql_query($query_Nombres$Estudiantes) or die(mysql_error());
$row_Nombres mysql_fetch_assoc($Nombres);
$totalRows_Nombres mysql_num_rows($Nombres);

mysql_select_db($database_Estudiantes$Estudiantes);
$query_Semestre "SELECT distinct semestre FROM notas WHERE Ano ='".$_SESSION['Ano']."' And Mat ='".$_SESSION['Mat']."'";
$Semestre mysql_query($query_Semestre$Estudiantes) or die(mysql_error());
$row_Semestre mysql_fetch_assoc($Semestre);
$totalRows_Semestre mysql_num_rows($Semestre);
///  Termino de consultas SQL para las Busqueda // 
?>
luego algo de codigo para las tablas Html

aqui esta el codigo del select dinamico

Cita:
Código PHP:
 
<form action="<?=$_SERVER['PHP_SELF']?> " method="post">
              <input type="submit" name="Enviar" value="Enviar">
              <select name="select" id="select">
                <option value="2-2003">Selecione Semestre</option>
                <?php
do {  
?>
                <option value="<?php echo $row_Semestre['semestre']?>">
              <?php echo $row_Semestre['semestre']?>
              </option>
              <?php
} while ($row_Semestre mysql_fetch_assoc($Semestre));
  
$rows mysql_num_rows($Semestre);
  if(
$rows 0) {
      
mysql_data_seek($Semestre0);
   
$row_Semestre mysql_fetch_assoc($Semestre);
  }
?>
mas html

y luego

Cita:
Código PHP:
 
<?php ?>
<?php
mysql_free_result
($Notas);
mysql_free_result($Nombres);
mysql_free_result($Semestre);
?>
__________________
Viva la Republica Dominicana
  #2 (permalink)  
Antiguo 12/08/2004, 10:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Revisa que valor toma:

Código PHP:
$query_Notas "SELECT * FROM notas WHERE Ano ='".$_SESSION['Ano']."' And Mat ='".$_SESSION['Mat']."' and semestre = '".$sem."'"
O en general todas las sentencias SQL que usas.

fijate en el orden de llamar a tu mysql_fetch .... y el mysql_num_rows() .. Primero se ha de "contar" los posibles registros que arrojó la consulta para que .. si hay más de 1 aplicas tu mysql_fetch .. sino . no haces nada y muestras tu mensaje de aviso en consecuencia:

Código PHP:
$Notas mysql_query($query_Notas$Estudiantes) or die(mysql_error());
$totalRows_Notas mysql_num_rows($Notas);

if (
$totalRows_Notas >0){
  
$row_Notas mysql_fetch_assoc($Notas);
  
// etc ....
} else {
   echo 
"No hay resultados";

Revisa y usa esta estructura en todas tus consultas SQL que ejecutes. (de hecho en otra parte del código lo usas .. ya!).

Por lo demás .. no hace falta que uses várias veces (cada vez que haces una consulta):

mysql_select_db($database_Estudiantes, $Estudiantes);

si ya estás trabajando (y no vas a cambiar) de BD durante esa ejecución de ese script. Usalo una vez sólo al principio.

Un saludo,

PD: por favor .. se más explicito en tu título del mensaje para próximas veces.
  #3 (permalink)  
Antiguo 12/08/2004, 16:09
 
Fecha de Ingreso: marzo-2002
Mensajes: 60
Antigüedad: 22 años, 1 mes
Puntos: 0
Igual

Revise la variable que estoy enviado por post y no me esta recibiendo ya que para probar la enviar a otra pagina y me la esta recibiendo.

Cita:
Clueter las variables que tengo que recibir te la tabla que estan en el select son algo asi 1-2002
2-2000
enviando por ger recibo algo asi

http://localhost/test/TN/TN1.php?Env...&select=2-2003

ya no me el error de
Código PHP:
 mysql_free_result 
pero al parecer no me esta recogiendo las variables

cambiar la recepcion de la variable por $_GET en ves de $_POST que era lo que habia

__________________
Viva la Republica Dominicana

Última edición por Wascar; 12/08/2004 a las 16:23
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:48.