Foros del Web » Programando para Internet » PHP »

Problema en PHP o Mysql???

Estas en el tema de Problema en PHP o Mysql??? en el foro de PHP en Foros del Web. Buenas tardes amigos del foro, tengo un problema que la verdad ya me tiene loco le doy vueltas y vueltas y vueltas y no se ...
  #1 (permalink)  
Antiguo 22/01/2009, 13:49
Avatar de jfl_freak  
Fecha de Ingreso: enero-2009
Ubicación: Guatemala
Mensajes: 96
Antigüedad: 15 años, 2 meses
Puntos: 1
Buenas tardes amigos del foro, tengo un problema que la verdad ya me tiene loco le doy vueltas y vueltas y vueltas y no se que puedo hacer.

Tengo un archivo php en donde ejecuto un query de mysql y con un fetch saco un valor:

Código PHP:
while ($rowEmp mysql_fetch_assoc($resultado)) {
        
$periodo $rowEmp['periodo'];
        
$_SESSION['fecha1'] = $rowEmp['fecha1'];
        
$_SESSION['fecha2'] = $rowEmp['fecha2'];
        
$_SESSION['hora1'] = $rowEmp['hora1'];
        
$_SESSION['hora2'] = $rowEmp['hora2'];
}

echo 
$periodo
El valor que me retorna periodo es "1"

luego de esto mando a ejecutar un select asi:

Código PHP:
$resultado mysql_query("select * from asignacion where id='$id' and periodo='$periodo'" ) or die(mysql_error());

echo 
'select * from asignacion where id='.$id.' and periodo='.$periodo
Pero al darle un echo a la sentencia completa resulta que periodo es igual a 10!!!!!

pero si doy un echo despues del query solo a $periodo si me sale igual a 1!!!!!

porfavor ayudenme o si miran algun error digamen xq yo ya no se que puede ser

Bueno probando y probando me he dado cuenta de algo y es que no se xq siempre al final de la cadena se le concatena el 0 pero la vd no se xq es, alguna idea??????????????

Última edición por GatorV; 22/01/2009 a las 14:02
  #2 (permalink)  
Antiguo 22/01/2009, 14:01
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Problema en PHP o Mysql???

Mmmm podrias poner el código completo tal cual lo tienes? Es probable que de ahí venga el error ya que en teoria y lo que expones no te debe de dar el problema.

Saludos
  #3 (permalink)  
Antiguo 22/01/2009, 14:18
Avatar de jfl_freak  
Fecha de Ingreso: enero-2009
Ubicación: Guatemala
Mensajes: 96
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: Problema en PHP o Mysql???

Este es mi codigo:

Código PHP:
<?php

include ("connectionDB.php");

$conectar connect();

session_start();

function 
asignacion(){
if (IsSet(
$_SESSION['usuario'])){

$id $_SESSION['id'];

$resultado mysql_query("select * from periodo" );
if (!
$resultado){
close();
return 
'<p></p><h1> Error </h1>';
}

$totEmp mysql_num_rows($resultado);

while (
$rowEmp mysql_fetch_assoc($resultado)) {
        
$periodo $rowEmp['periodo'];
        
$_SESSION['fecha1'] = $rowEmp['fecha1'];
        
$_SESSION['fecha2'] = $rowEmp['fecha2'];
        
$_SESSION['hora1'] = $rowEmp['hora1'];
        
$_SESSION['hora2'] = $rowEmp['hora2'];
}

$query 'select * from asignacion where periodo='.$periodo.' and id='.$id.';';

echo 
$query;

$resultado mysql_query($query) or die(mysql_error());

echo 
'<br>';
echo 
$query;

$tot mysql_num_rows($resultado);

echo 
$tot;

if (
$tot0) {
    while (
$rowEmp mysql_fetch_assoc($mostrar_asignacion)) {
        
$_SESSION['salon1'] = $rowEmp['salon1'];
        
$_SESSION['salon2'] = $rowEmp['salon2'];
    }

return 
1;

}

close();

}
else
    return 
0;

}
?>
Cuando le doy un echo a Query antes de entrar a ejecucion en mysql me enseña sin el 0 al final la cadena, pero cuando doy echo despues de ejecutar el mysql muestra el 0 al final
  #4 (permalink)  
Antiguo 22/01/2009, 14:33
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema en PHP o Mysql???

suena muy raro... por otro lado, intenta hacer el type cast de tu variable, para preservar su valor...

Código PHP:
$id = (int) $id;

$sql "SELECT FROM tabla WHERE id=$id"
y recuerda, si el campo de tu BD es INT no debes colocar el numero entre comillas

por cierto... ¿no te muestra ningún error???
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 22/01/2009, 14:38
Avatar de jfl_freak  
Fecha de Ingreso: enero-2009
Ubicación: Guatemala
Mensajes: 96
Antigüedad: 15 años, 2 meses
Puntos: 1
Voy a probar el cast que me dices, pues fijate que ningun error me despliega, en un principio pense eso pero de ser asi con el die (mysql_error()) me hubiera mostrado algo, voy a ver que pasa, gracias

Pues bueno, volvi a realizar mi codigo y pues ahora si me funciona como deberia de ser

Código PHP:
<?
session_start
();

include (
'librerias/connectionDB.php');


function 
algo(){

if (IsSet(
$_SESSION['usuario'])){

$id $_SESSION['id'];

$conectar connect();


$resultado mysql_query("select * from periodo" );
if (!
$resultado){
close();
return 
'<p></p><h1> Error </h1>';
}


$totEmp mysql_num_rows($resultado);

while (
$rowEmp mysql_fetch_assoc($resultado)) {

        
$periodo $rowEmp['periodo'];
        
$_SESSION['hora1'] = $rowEmp['hora1'];
        
$_SESSION['hora2'] = $rowEmp['hora2'];
        
$_SESSION['fecha1'] = $rowEmp['fecha1'];
        
$_SESSION['fecha2'] = $rowEmp['fecha2'];        
        
}


$mostrar_asignacion mysql_query("select * from asignacion where id = '$id' and periodo = '$periodo'") or die(mysql_error());

$totEmp mysql_num_rows($mostrar_asignacion);

if (
$totEmp0) {
    while (
$rowEmp mysql_fetch_assoc($mostrar_asignacion)) {
        
$_SESSION['salon1'] = $rowEmp['salon1'];
        
$_SESSION['salon2'] = $rowEmp['salon2'];
    }
    return 
1;    
}
else
    return 
0;
}

}
?>
Yo la vd no le veo alguna diferencia con el que habia posteado anteriormente pero bueno, si alguien mira algo diferente diganme para que no me vuelva a pasar lo mismo

gracias

Última edición por GatorV; 22/01/2009 a las 16:01
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 02:13.