![]() |
mysql_affected_rows me devuelve -1 como resultado de una consulta
Hola, en esta ocasion los molesto por lo siguiente:
Código PHP:
Tengo una tabla llamada "dmo_buscador" en la que almaceno los nombres de las tablas en las que se pueden realizar las busquedas, esta tabla tiene cuatro campos, los caules son: Cita:
El problema es que mysql_affected_rows() me regresa un valor -1 en la segunda consulta por lo que me indica que la consulta no se pudo realizar. Llevo ya algun rato tratando con esto y la verdad ya no hayo que hacer. Se los dejo aca por si a lo mejor alguien me puede ayudar. Saludos. |
Es mysql_num_rows y no mysql_affected rows la función que debes usar.
// Saludos |
ok
ok roman gracias. Lo voy a intentar.
Saludos. PD: Me impresiona tu velocidad:eek: |
Hola,
Lo que me extraña es que ya el primer uso que haces de la función no te devuelva -1, por lo que puede leerse en la descripción de la función a que haces referencia: Cita:
Cita:
|
me muestra esto
Cita:
|
Cita:
y siempre habia usado mysql_affected_rows para estas operaciones. Saludos. |
Hola,
Hay que saber cómo estás tratando de usar la función. Este es el ejemplo que acompaña a la descripción de la función "mysql_num_rows": Código PHP:
|
Hola,
Cita:
Cita:
Cita:
|
Hola,
D-MO, te pido disculpas, pues creo que he metido la pata. Resulta que duplicaste tu mensaje anterior, y yo borré uno de los duplicados (el que tenía "peor formato", a mi entender) pero, mientras, tú borraste el otro... Así que yo he tratado de recuperar este otro, pero,... no he sabido hacerlo y he hecho con él otra cosa que no entiendo del todo bien: lo he mandado a la "cola de moderadores"... En fin, me disculpo contigo por este pequeño lío. En todo caso, referías la ayuda de la función que nos ocupa en español, copiada del archivo de ayuda que tienes en tu disco duro. Bueno. Creo que aquí la cuestión puede devenir en algún problema, si haces uso de la función "mysql_affected_rows" para "contar" los resultados de una consulta "SELECT". Según dice la ayuda esa función no se usa para consultas SELECT, y, el resultado que puedes obtener (creyendo que se trata del resultado de tu consulta SELECT) es el número de filas afectadas por anteriores consultas INSERT, UPDATE, DELETE. Y, por otro lado, cierta lógica (siempre quise decir algo así) dice que una consulta SELECT no afectará a las filas, como sí lo haría una consulta DELETE, UPDATE, INSERT. Por ello lo que quieres obtener se encuentra en la función que refirió Román al principio y que también "recomienda" la ayuda de la función "mysql_affected_rows", y es que has de usar la función "mysql_num_rows", para obtener las filas conque cuentas luego de una consulta SELECT. Siento lo del mensaje que he borrado sin querer. Me disculpo de nuevo D-MO. Eso para por jugar con fuego... ¿no se dice así? ;) |
Con respecto al mensaje no hay problema.;)
Te comento lo que acabo de hacer: Quite de la consulta la sentencia WHERE creyendo qye talves era este el problema y use de nuevo mysql_affected_rows, y para sorpresa mia me muestra el numero exacto de registros en esta tabla. Hice lo mismo con mysql_num_rows y el resultado fue el mismo error descrito anteriormente. Creo que en lugar de avanzar voy para atras porque cada vez me enredo un poco mas. |
Perdon. Si me funciono con mysql_num_rows.
PD:No edito el anterior para evitar "problemas":D:D |
Cita:
Si consultas la ayuda de PHP acerca de mysql_num_rows te darás cuenta inmediatamente de porqué marca ese error y cual es el argumento que debes pasar. // Saludos |
Cita:
Pero cuando tenia WHERE dentro de la consulta lo tenia como era pero siempre me mostraba este error. La verdad es que necesito WHERE dentro de la consulta. |
Hola,
Cita:
|
Cita:
Pues fijate que no he podido hacer lo que necesito, porque me funciona el mysql_affected_rows y mysql_num_rows pero cuando WHERE no esta en la consulta, y como podras darte cuenta necesito usar el where para que me muestre los valores que coinciden con la busqueda. Gracias por la ayuda de ambos. Seguire investigando y luego les aviso PD: A los Moderadores: El editor de vB al menos en este mensaje no es wysiwyg Le di mas o menos formato aeste mensaje pero con codigo html. No se si soy yo o el editor. Saludos. |
Un gran avance.
Gracias a la explicacion de Roman en este hilo, se me o currio hacerlo utilizando mysql_fetch_object en logar de mysql_fetch_assoc para hacerlo mas facil dentro de la consulta. con lo que me ha quedado esto:
Código PHP:
Ahora me muestra 0 (ya subio de nivel:D de -1 a 0:D). Ahora no se porque me muestra 0 si deberia haber encontrado al menos algun dato. Nota: LIKE lo uso por primera vez y no se si es lo adecuado para esto. |
Hola,
A ver, yo creo que no tiene nada que ver el "WHERE" para lo que nos ocupa. No tiene lógica, y podría añadirse que en la ayuda no se dice nada al respecto. Yo he hecho una prueba tal que así: Código PHP:
|
Hola dec gracias de nuevo por contestar.
Claro que el usar WHERE dentro de la consulta no tendria que afectar, el problema era (segun mi logica) que no se podia hacer de la forma en que lo estaba haciendo: Código PHP:
Código PHP:
me funciona a la perfeccion. El problema ahora, como explicaca en el post anterior, es que al utilizar el LIKE me muestra resultados unicamente si son introducidos tal cual esta en la tabla. lo que me interesa es buscar si al menos una palabra de las buscadas aparece en la tabla. Ya se me ocurrio el uso de PRCE como se hablaba anteriormente en el hilo de las etiquetas vB, pero para ello tendria que cargar todos los datos de la base de datos a un array dentro de la pagina, lo cual creo que consumiria un recurso muy preciado Llamado "TIEMPO". Por el momento me tomo un descanso, cierro el editor y seguire buscando en internet algo que me ayude. De nuevo gracias por tus comentarios. Saludos. |
Hola,
Empiezo a perderme en estos temas, pero, algo como esto me funciona si en el campo buscado existe la palabra requerida:
Es decir, se trata de usar el comodín "%" en este caso, aunque, tengo entendido que hay otros comodines y que incluso el mencionado dá no poco juego... convieme revisar esto a ver. Yo no sabría decir ahora mismo más. ;) |
de hecho lo intente asi:
Código PHP:
SAludos. |
La franja horaria es GMT +2. Ahora son las 02:20:41. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi