Tengo un problema con un código de programación en PHP

Bien tengo un problemilla que no eh podido resolver...
Tengo la siguiente consulta...
$sql= "SELECT * FROM tabla1 WHERE (campo6 != 'Cobrado') ORDER BY campo1";
Mi problema es que no me acepta ese "!=", ya lo hice con "<>" y tampoco... Mmmm no se como funcione, alguien podría auxiliarme porfavoooor

1 respuesta

Respuesta
1
No puede ser, me parece que hay error en otro lado, porque el <> y el ! = funcionan perfectamente en mysql:
http://dev.mysql.com/doc/mysql/en/comparison-operators.html
¿Podrías pasarnos el código del error?
Bueno el problema es que no me marca error, pero tampoco me da ningún valor, el campo6 lo tengo como null, ¿eso tiene algo que ver? Y no es ni campo6 ni campo1 mi llave principal... ¿eso tiene algo que ver?
Saludos!
Bueno me sirvió bastante la dirección que pusiste, Gracias. Ahora bien ya lo hice de otra manera, igualando mis valores de ese campo, pero si me gustaría saber porque no me funciono así, tengo el mismo código y solo cambie la condición... aun así crees que sea el manejo de los campos por lo cual no me salio con ! = o <>?
No, no tiene que ver que sea null, null es distinto de "Cobrado", y las llaves principales no tienen nada que ver en este caso.
Te pido otro dato mas, me puedes dar bien el "fuente" de lo que haces despues del $sql="..."?
Porque puede ser que todo se ejecute bien, y te este devolviendo los registros y no los estés manejando bien.
Hasta aqui no habria ningun problema.
NO CREO EN HARRY POTTER: jajajaja...
La magia no existe, tiene que haber algo en lo que nos estemos perdiendo sin querer...
Te doy un ejemplo personal que me ocurrió:
Yo tenia un campo enum en mysql, y sus valores eran 1 o 0, y la definición decía:
CREATE TABLE `prueba` (
`id` int(10) unsigned NOT NULL auto_increment,
`opcion` enum('1','0') default NULL,
PRIMARY KEY (`id`)
) TYPE=MyISAM COMMENT='test de enum' ;
INSERT INTO `prueba` VALUES (1, '0');
INSERT INTO `prueba` VALUES (2, '0');
INSERT INTO `prueba` VALUES (3, '1');
INSERT INTO `prueba` VALUES (4, NULL);
Y ahora... MAGIA:
select * from prueba where opcion!=0
y me traia los registros 1,2 y 3....
Antes de tomar 2 litros de cianuro me puse a leer bien los manuales...
Y me di cuenta de que mysql no guarda mi '1' ni mi '0', sino un PUNTERO a la lista enum, es decir, el primer valor es el '1' y el segundo es el '0', por lo tanto:
select * from tabla where opcion=2
Me va a devolver los campos en los que opción sea '0'...
¿Me explico?
Quiere decir (no estoy seguro de si tu campo6 es un enum) que muchas veces "no es oro todo lo que brilla", lo que necesitamos es mucho debug para aprender, y mantener ese NO EXISTE MAGIA.
Saludos.
Pablo.
P.d. Para sacarnos la duda, ¿me podrías pasar el create table y un par de inserts para probar?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas