| |||
Puedes analizar esta clase elaborada con la informañcion de varios ejemplos, aun no esta terminada pero ya funciona. Código PHP: |
| |||
Pero .. ese "mensaje" vendrá dado por cierta circustancia (condiciones). .. cuales serían? Y que es "actualizar una columna"? .. será un UPDATE tabla SET campo='valor' ? Un saludo, |
| ||||
Las condiciones del primer mensaje serian que algun campo no exista, vamos que si tengo "ID, Fecha, Nombre". Que "Nombre" no exista, y en este caso me muestre este campo no existe, o si en ID, Fecha, Nombre, alguno de estos tenga valor 2 que diga que ya tiene el valor 2. Por cierto el $cadires_compr = ID=2, Fecha =2, Nombre =2 |
| |||
Según parece (podrías haberlo explicado antes): Tu "columna" (ahora: campo) .. es: $cadires_compr que pertenece a la tabla 'ocupacioestat' Si quieres comprobar si ese campo existe en tal tabla .. puedes usar la función: mysql_list_fields() www.php.net/mysql_list_fields (con esta función obtienes todos los nombres de los campos de esa tabla indicada ..ahí ya te aplicarás tu "if()" ...) ----- Para el tema de: "y cuando los datos de alguna columna sean =2: Error, este lugar ya esta comprado" Tienes que hacer una consulta SQL a tu tabla 'ocupacioestat' de tipo SELECT condicional .. Código PHP: Código PHP: |
| ||||
Muchas gracias. Pero soy un poco patoso con las cosas nuevas hasta que me habituo. Como puedo poner 2 condiciones en where? necesito poner: $cadires_compr ='2' ID=$ID y no he entendido como debo hacer lo de saber si los campos existen.... imaginate que debo saber si los campos C2, C3, C4, C5, C6 existen y los C3 y los C4 no existen. Como puedo hacer eso? no entiendo como se usa ni que respuesta da el mysql_list_fields() |
| |||
Pues usa un "AND" en tu SQL ... SELECT * FROM tabla WHERE campo='tal' AND otro_campo='otracosa' Te hace falta entonces olvidarte por el momento de "PHP" y centrarte en manuales de SQL: www.mysql-hispano.com Ahí puedes encontrar buenos tutoriales. Te los recomiendo no sólo por ver la sintax concreta de "SELECT" (que la puedes ver también en www.mysql.com) sino por el "diseño de tu BD" en sí .. creo que deberías ver un poco el tema de "normalización" (que ahí mismo veras un tutorial) para enfocar mejor como organizar tus datos y estructurarlos mejor. ------ El tema de mysql_list_fields() si te fijastes en el link que dejé del manual oficial de PHP tienes un generoso ejemplo .. pruebalo. Esa función te va a listar los campos de tu TU tabla (la que indiques) con las técnicas (ese bucle) que ahí mismo veras en el ejemplo. Un saludo, |
| ||||
No veo ningun manual en esa web de mysql-hispano, y please me podrias decir alguna pàgina donde esten todos los parametros para php, y mysql que se pueden usar? por ejemplo el count(), mysqlresult()... muchisimas gracias por esta atención |
| |||
Con respecto a las funciones de PHP para Mysql: www.php.net/mysql Y sobre el lenguaje SQL particular de Mysql: http://dev.mysql.com/ En la web de mysql-hispano (poco tiempo le dedicastes .. parece ser): http://www.mysql-hispano.org/articles.php Ahí tienes todo lo que te he mencionado (y en castellano). Un saludo, |
| ||||
Sigo = ahora estoy haciendo lo de cuando haya algun campo k no se modifique con el if i el where = 2 pero me da error, he puesto lo siguiente: Código PHP: |
| |||
¿Como quieres que te contesten rápido si dices "me dá un error" y no pones que error te dá? Si quieres rapidez y sobre todo "acierto" en las respuestas tendrás que -siempre- aportar más datos sobre tu problema, como por ejemplo ese "error que te dá". Un saludo, |
| |||
Vamos a ver si nos aclaramos todos: ¿Comprendes que el objetivo de "dar o no un error" se trata de hacer una consulta SQL bajo el critério (condición) que tu definas? ¿Comprendes que para averigüar si tu consulta SQL puedes obtener el nº de registros que arroja tu consulta "condicional" y en función de ese resultado (con COUNT(*) de del SQL de Mysql ? También puedes obtener el nº de registros que arroja una consulta con mysql_num_rows() pero es más optimo usar COUNT() si realmente sólo quieres obtener ese dato y no vas a usar sus posibles resultados. Bien . .si eso está claro .. ¿que es lo que quieres hacer ahora? .. Explicate mejor . .pon ejemplos .. en fin .. que lo pongas fácil para quien pretenda ayudarte. Un saludo, |
| ||||
Si, todo eso esta claro, la duda que tengo es como lo puedo hacer para definir el resultado del count(*) en una variable para poder hacer el if() corresponiente. Mi principal problema es que no se como usar el dato de count(*) después de hacer la consulta |
| |||
por todas las variables que usas no entiendo tu query de SQL asi que generalice uno, haber si te funciona. si cuando quieres hacer el |update este campo ya ya tiene 2 te va a mandar un error de MySQL el cual puedes configurar a tus necesidades. aunque te dire que tu problema no no me queda claro, es basicamente lo que entendi. Código PHP:
__________________ Shanti Castillo G. |
| ||||
Tengo el siguiente codigo: Código PHP: y lo que quiero es que si algun campo (C2, C3, C4....) ya tenga el valor 2 me de error. |
| ||||
La verdad es que te haces entender muy poco. Cluster ya te ha explicado casi todo. Te propongo que hagas una secuencia de lo que quieres que pase. Tu secuencia sería algo como: Averiguar si alguno de los campos ya tiene valor = 2. Si lo tiene, dar un mensaje de error. Si no, recién hacer el UPDATE.... simple verdad?. Código PHP: Saludos ![]() |
| ||||
Código PHP: En realidad el ejemplo lo puse para salir del paso. Podrías utilizar alguna función como mysql_num_rows() que te devuelve el número de registros encontrados en la consulta. Si es diferente de cero , mensaje de error. Si es cero, es porque no se encontró ninguno, entonces haces el update. Código PHP: ![]() |
| ||||
Ahora, la función COUNT() de mysql ya te devuelve directamente el número de registros encontrado y eso es más eficiente aún que dejarle la tarea al php (mysql_num_rows()). Saludos ![]() |
| |||
La función mysql_fetch_array() devuelve un "false" si no pudo ejecutar la consulta y un "true" si la ejecutó .. a su vez como se usa el "=" (no ==) se está asignando el posible resultado a $row (para que lo uses $row['campo']) si quieres ... El "secreto" de tu problema más bien era de SQL y ese montón de (C1=2 OR C2=2 OR C3=2 OR C4=2)"; (que por mi parte nunca entendí por qué nunca pusistes la estructura de tus tablas .. para otra vez si la pones todo quedaría más claro). Ahora si quieres podrías probar el COUNT(*) como más arriba comenté y puse su código de uso pero con la sentencia SQL que dió jpinedo. Un saludo, |