Programación Web y Scripting > PHP
Duda Tecnica con Mysql y php
(1/1)
Tarash_:
Buen dia! antes que nada.
Desearia saber si hay alguna restricción con respecto a realizar operaciones SQL dentro del código PHP?, pero dentro del cuerpo de la página.
[Nota:. Soy totalmente puberto en PHP]
Pues sucede que cuando lo trato de hacer la la operación me arroja un error donde indica que el "MYSQL - LINK no es un recurso valido" o algo así. Probé para ver si tenia conexión a la BD y si la hay, probe si tenia error la instrucción SQL, y no la hay si la coloco al principio de la página antes de cargar el código HTML.
He aqui una idea de el problema.
<?php
--
--(Si coloco aqui las operaciones SQL no hay error y regresa los valores que quiero)
?>
<inicio codigo HTML página
<?php (Aqui si me marca error de MYSQL - LINK) ?>
Fin codigo>
** Ahora la razón por la cual quiero meter el codigo sql ahi es para que me haga una consulta para poder actualizar el valor de unos controles SELECT en base al resultado de la consulta... Pero esa consulta la realizo de un ciclo FOR para poder modificar un control a la vez .
Alguna Idea ? o alguna otra alternativa más razonable? :P
Gracias de antemano.
RadicalEd:
Checa este código; respecto a tú error es muy raro, por favor muestranos lo que estás haciendo.
--- Código: PHP ---<?php //Se liberan todas las sesiones anteriores //session_unset(); session_start(); //Regeneramos la sesión para evitar guardar datos //con sesiones anteriores session_regenerate_id(); include 'include/configuration.php'; //Variable a utilizar //Esta se pasa por metodo GET si hubo error al conectar $msg = $_GET['msg'];?><html><head> <title>Portal B2B</title> <link rel="stylesheet" type="text/css" href="style.css" /> <link rel="icon" href="img/favicon.ico" type="image/x-icon" /></head><body onLoad='document.registro.usulog.focus();'> <form name='registro' action="<? $_SERVER['PHP_SELF']; ?>" method="post" class="formLogin"> <fieldset><legend> Acceso / Login <? if($msg!=''){ echo "<br>".$msg;} ?></legend> <p> <label for="username">Usuario: </label> <input id="username" name="usulog" type="text"> </p> <p> <label for="password">Contraseña:</label> <input id="password" name="usupass" type="password"> </p> <p> <center><input value="Ingresar" name="entrar" id="submit" class="button" tabindex="3" type="submit"></center> </p> </fieldset> </form></body></html><?php if ($_POST['entrar']) { //Se declaran las variables de sesion $_SESSION['username'] = make_safe($_POST['usulog']); $_SESSION['userpass'] = make_safe($_POST['usupass']); $_SESSION['authuser'] = 0; //Si no se ha registrado $_SESSION['tipo_usu']; //Con esto sabemos el tipo de usuario registrado $_SESSION['destino']; //Con esta sabemos a que destino pertenece $lquery = "SELECT login, passwd, id_tipo, id_destinos FROM tbusuarios WHERE login='".$_SESSION['username']."' AND pass='".md5($_SESSION['userpass'])."'"; $query = $sql->query($lquery); if($query[1]==0) //Si no ha devuelto un array de datos { //Se deja el array de sesion en blanco $_SESSION = array(); session_destroy(); echo "<script>document.location.href='index.php?msg=Login o Password incorrecto';</script>"; } else { $_SESSION['authuser'] = 1; $_SESSION['tipo_usu'] = $query[2][2]; $query_ses = $sql->query("UPDATE tbusuarios SET sesion='".session_id()."' WHERE login='".$_SESSION['username']."'", 2);?> <script>document.location.href='index2.php';</script><? } }?>
Tarash_:
Esta codigo referente a la conexion a la BD .. No tengo problemas con el.
--- Código: PHP --- function Conectarse() // Uso este codigo para conectarme a la base{ $pw = "xxx"; if (!($link=mysql_connect("localhost","root", $pw))) { echo "Error conectando a la base de datos."; exit(); } if (!mysql_select_db("doctosnormaiso",$link)) { echo "Error seleccionando la base de datos."; exit(); } else return $link; }
Este codigo en la página
--- Código: PHP --- <?php //inicia el uso de variables de sesion session_start(); include("../libs/conecta.php"); if (!isset($_SESSION["nombre"])) header("Location: ../index.php"); $link=Conectarse(); //llama funcion que conecta a la bd?>
Y está es la porción de código que me da problema dentro del cuerpo de la pagina, en error me lo indica en $result=mysql_query()
--- Código: PHP --- <?php for ($i=1;$i<=$unidad;$i++) { $flag=""; $sql="select campox from tabla where (id=' ".$_POST["textbox"]." ' and uni=' ".$i." ' )"; $result=mysql_query($sql, $link); if ($result) { $Row=mysql_fetch_assoc($result); if ($Row["campox"]==1) $flag=' SELECTED="" ' ; }////////////////////////////////////////// $C="otro".$i; echo '<SELECT NAME="'.$C.'" SIZE=1 > <OPTION VALUE="0">Pendiente</OPTION> <OPTION VALUE="1" '.$flag.'>OK</OPTION> </SELECT>';////////////////////////////////////////////// } ?>
Tarash_:
Pues indagando por varios lugares me he encontrado la opción de probar con variables de sesión. Y me casi me funciona.
Pero aun no tengo resultados ... :(
Tarash_:
Bueno con esto al fin despues de razonar un poco mas. Así quedó a mi gusto.
He aqui la parte de código en la página:
--- Código: PHP --- <?php $vector=$_SESSION["array1"]; for ($i=0;$i<$unidad;$i++) {$flag2=""; if ($vector[$i]==1) $flag2=' SELECTED=""'; $C="otro".$i; echo '<SELECT NAME="'.$C.'" SIZE=1 > <OPTION VALUE="0">Pendiente</OPTION> <OPTION VALUE="1" '.$flag2.'>OK</OPTION> </SELECT>'; } ?>
Y esta parte de codigo de la función que llamo en un script:
--- Código: PHP --- <?phpfunction busqueda_aux($link) { $sql="select unid,edo from ctrl_doctos where (id_curso='".$_POST["cve"]."' and"; $sql.=" doctos='Otro') order by unid"; $result=mysql_query($sql,$link); if ($result) { while ($aux=mysql_fetch_assoc($result)) {$matriz[]=$aux["edo"]; $_SESSION["array1"]=$matriz; } } else {$GLOBALS["msg"]="¡NO SE ENCONTRARON COINCIDENCIAS";} } ?>
La idea que apliqué al final fue crear una matriz dentro de la función que guardara los valores de la consulta de un campo en especifico y de ahi pues asignarlo a la variable de tipo sesion. Y en la página asigno esa variable de sesion a otra para poder recorrer los datos. ;)
Navegación
Ir a la versión completa