Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/03/2008, 09:32
Kilofafeure
 
Fecha de Ingreso: noviembre-2006
Mensajes: 117
Antigüedad: 17 años, 5 meses
Puntos: 0
Problema en Xajax al acceder a MySQL

Hola, espero que me puedan ayudar ya que llevo con este problema varios días y no lo consigo solucionar. Estoy haciendo un gestor de estoc de una tienda de música como proyecto fin de carrera y lo que pretendo es que antes de hacer un insert a la BD comprobar que los campos sean correctos y que no tenga coincidencias con los llaves primarias de mi BD, de tal manera que si hay algún error me lo muestre en el div correspondiente. Bien el problema que tengo es que creo que no me accede a la BD, ya que hago 2 count para ver si tengo alguna coincidencia del nombre y la referencia que me introduce el usuario con la BD, sin embargo la variable en la que guardo el resultado del count siempre es 1, por lo que nunca me llega a hacer el insert y me muestra el error correspondiente. De las 4 comprobaciones que hago, las 2 primeras funcionan bien, pero las 2 siguientes no, y casualmente son en las que accedo a la BD. A ver si me pueden ayudar...Muchas grácias de antemano!! un saludo!!

Se que el HTML no es muy bonito pero me interesa más que funcione para luego arreglarlo...XDD. Las funciones javascript me funcionan correctamente y este código es una adaptación de uno que si funciona en html, php y javascript, pero que me da problemas (no consigo redireccionar a web y mostrar el mensaje de error correspondiente)cuando compruebo en el archivo php correspondiente si tengo coincidencias con el Nombre del Sello y la Referencia.

La versión que utilizo de ajax es la 0.5 beta 4

CODIGO XAJAX MAS FORMULARIO HTML

<?php
//incluímos la clase ajax
require_once("Xajax/xajax_core/xajax.inc.php");

//instanciamos el objeto de la clase xajax
$xajax = new xajax();
$xajax->setCharEncoding('ISO-8859-1');
$xajax->configure('decodeUTF8Input',true);

function procesar_formulario($form_entrada){
//creo el xajaxResponse para generar una salida
$respuesta = new xajaxResponse();

include_once("../BBDD/conexDBTMusik.php");

//Pongo en variables los datos del formulario


//A partir de aquí me falla el código

//Paso los valores del formulario a vars

$NomSello=$form_entrada["Nom"];
$NomRef=$form_entrada["Ref"];
$Dueno=$form_entrada["Dueno"];
$Mail1=$form_entrada["Email1"];
$Mail2=$form_entrada["Email2"];
$Web1=$form_entrada["Web1"];
$Web2=$form_entrada["Web2"];
$Telf1=$form_entrada["Telf1"];
$Telf2=$form_entrada["Telf2"];

$consulta1="SELECT COUNT(*) FROM sellos WHERE RefNom='".$NomRef."'";
$ejecuta1=mysql_query($consulta1,$link);
$nr=mysql_num_rows($ejecuta1); //$nr siempre tiene valor 1, es decir es como si encontrase en la BBDD una coincidencia, aunque no haya ninguna

$consulta2="SELECT COUNT(*) as Nom FROM sellos WHERE NombreSello='".$NomSello."'";
$ejecuta2=mysql_query($consulta2,$link);
$ns=mysql_num_rows($ejecuta2); //Si tengo coincidencia NombreSello me pone igualmente $nr=1 por lo que luego nunca me hace el insert, parece que aquí no llega a entrar
//validación
$error_form = "";
if ($form_entrada["Nom"]==""){$error_form="Debes escribir el nombre del Sello";}
elseif ($form_entrada["Ref"]==""){$error_form="Debes escribir una referencia para el Sello";}
elseif($nr!=0){$error_form="numRef: ,$nr";} //tendria que mostrar mensaje pero he puesto esto para ver el valor de las variables, esta siempre es igual a 1
elseif($ns!=0){$error_form="numNom: ,$ns";} //si esta tiene campo coincidente igualmente me muestra numRef: ,1

//compruebo resultado de la validación
if ($error_form != ""){
//Hubo un error en el formulario
//en la capa donde se muestran mensajes, muestro el error

$respuesta->assign("mensaje","innerHTML","<span style='color:red;'>$error_form</span>");
}
else
{
$cadena="INSERT INTO sellos(RefNom,NombreSello,Dueno,Mail1,Mail2,Web1,W eb2,Telf1,Telf2)VALUES('".$NomRef. "','".$NomSello. "','".$Dueno."','".$Mail1."','".$Mail2."','".$Web1 ."','".$Web2."','".$Telf1."','".$Telf2."',$link )";
$ejecuta2=mysql_query($cadena,$link);
//mostramos en capa mensaje el texto que está todo correcto
$respuesta->assign("mensaje","innerHTML","<span style='color:blue;'>Todo correcto...Sello introducido!</span>");
}

//tenemos que devolver la instanciación del objeto xajaxResponse
return $respuesta;
include_once("../BBDD/desconexDBTMusik.php");
}
//registramos la función creada anteriormente al objeto xajax
$xajax->registerFunction("procesar_formulario");

//El objeto xajax tiene que procesar cualquier petición

$xajax->processRequest();
?>

<HTML>
<HEAD>
<TITLE>Introducir/Modificar Sello</TITLE>
<SCRIPT type="text/javascript" SRC="./IntroSello/CompISello.js"></SCRIPT>
<link rel="stylesheet" type="text/css" href="../css/contenedor.css" title="contenedor" />
<link rel="alternate stylesheet" type="text/css" href="../css/menu.css" title="menu" />
<?php
//En el <head> indicamos al objeto xajax se encargue de generar el javascript necesario
$xajax->printJavascript("xajax/");
?>
</HEAD>

<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<BODY onLoad="ponerfoco(0,0);">

<div id="mensaje">
<CENTER>
Rellena los datos de este formulario y pulsa "Guardar"
</CENTER>
</div>

<!-- Conectamos con la BBDD -->
<?php include_once("../BBDD/conexDBTMusik.php"); ?>

<FORM id="formIMSello" NAME="formIMSello">

<TABLE style="HEIGHT:100%;WIDTH:100%;" BORDER=0>
<TR ALIGN="center" BOTTOM="middle"><TD>
<TABLE BORDER=0>
<tr><td>
<TR>
<TD align="left" width="100"><P>Nombre del Sello:</P></TD>
<TD align="left" width="150"><INPUT TYPE="text" NAME="Nom" MAXLENGTH="20" SIZE="10" onChange="javascript:this.value=this.value.toUpper Case();"></P></TD>
</TR>
<TR>
<TD align="left" width="100"><P>Referencia del Sello:</P></TD>
<TD align="left" width="150"><INPUT TYPE="text" NAME="Ref" MAXLENGTH="10" SIZE="10" onChange="javascript:this.value=this.value.toUpper Case();"> </P></TD>
</TR>
<TD align="left" width="100"><P>Fabricante:</P></TD>
<TD align="left" width="150">
<SELECT NAME="Fabricante" SIZE="1">
<?php include_once ("../php/lista/listafabricante.php");?>
</SELECT>
</TD>
</TR>
<TR>
<TD align="left" width="100"><P>Dueño(s):</P></TD>
<TD align="left" width="150"><INPUT TYPE="text" NAME="Dueno" MAXLENGTH="50" SIZE="10" onChange="javascript:this.value=this.value.toUpper Case();"> </P></TD>
</TR>
<TR>
<TD align="left" width="100"><P>Email1:</P></TD>
<TD align="left" width="150"><INPUT TYPE="text" NAME="Email1" MAXLENGTH="20" SIZE="10"> </P></TD>
</TR>
<TR>
<TD align="left" width="100"><P>Email2:</P></TD>
<TD align="left" width="150"><INPUT TYPE="text" NAME="Email2" MAXLENGTH="20" SIZE="10"> </P></TD>
</TR>
<TR>
<TD align="left" width="100"><P>Web1:</P></TD>
<TD align="left" width="150"><INPUT TYPE="text" NAME="Web1" MAXLENGTH="20" SIZE="10" ></P></TD>
</TR>
<TR>
<TD align="left" width="100"><P>Web2:</P></TD>
<TD align="left" width="150"><INPUT TYPE="text" NAME="Web2" MAXLENGTH="20" SIZE="10" ></P></TD>
</TR>
<TR>
<TD align="left" width="100"><P>Telf1:</P></TD>
<TD align="left" width="150"><INPUT TYPE="text" NAME="Telf1" MAXLENGTH="14" SIZE="10" onKeyPress="return validarnums(event);"> </P></TD>
</TR>
<TR>
<TD align="left" width="100"><P>Telf2:</P></TD>
<TD align="left" width="150"><INPUT TYPE="text" NAME="Telf2" MAXLENGTH="14" SIZE="10" onKeyPress="return validarnums(event);"> </P></TD>
</TR>
<TR>
<TD>
<input type="button" value="Guardar" onClick="xajax_procesar_formulario(xajax.getFormVa lues('formIMSello'));"/>
<INPUT type="reset" value="Limpiar" name="Limpiar" onClick="ponerfoco(0,0)">
</TD>
</TR>
</FORM>

<?php include_once("../BBDD/desconexDBTMusik.php"); ?>

</BODY>
</HTML>

Última edición por Kilofafeure; 23/03/2008 a las 09:38