Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] mensajes duplicados con php

Estas en el tema de mensajes duplicados con php en el foro de PHP en Foros del Web. buen día. les comento que tengo mi código el cual quiero que cuando tenga una imagen repetida me de un mensaje el sistema que diga ...
  #1 (permalink)  
Antiguo 23/12/2015, 10:39
 
Fecha de Ingreso: marzo-2015
Mensajes: 184
Antigüedad: 9 años, 1 mes
Puntos: 3
Pregunta mensajes duplicados con php

buen día.

les comento que tengo mi código el cual quiero que cuando tenga una imagen repetida me de un mensaje el sistema que diga que ya esta en la bd y tengo este código pero no me ha funcionado.
Me pueden indicar por favor que tengo mal.

aquí el código.
Código PHP:
Ver original
  1. $consulta= mysqli_num_rows(mysqli_query($conexion, "SELECT * FROM banner WHERE imagen='$destino'"));
  2. $resultado = $conexion->query($consulta);
  3.  
  4.  
  5. if(mysqli_num_rows($consulta) == 1) {
  6.    echo  ("la imagen ya esta subida o tiene el mismo nombre, !dale atras¡");
  7.  
  8. }elseif($opcion == "1"){
  9.     mysqli_query($conexion, "INSERT INTO banner (id_img,titulo, texto, imagen) VALUES ('1','$_POST[titulo]','$_POST[texto]','$destino')");
  10. } elseif($opcion == "2"){
  11.     mysqli_query($conexion, "INSERT INTO banner (id_img,titulo, texto, imagen) VALUES ('2','$_POST[titulo]','$_POST[texto]','$destino')");
  12. }elseif($opcion == "3"){
  13.     mysqli_query($conexion, "INSERT INTO banner (id_img,titulo, texto, imagen) VALUES ('3','$_POST[titulo]','$_POST[texto]','$destino')");
  14. }elseif($opcion == "4"){
  15.      mysqli_query($conexion, "INSERT INTO banner (id_img,titulo, texto, imagen) VALUES ('4','$_POST[titulo]','$_POST[texto]','$destino')");
  16.  
  17.  
  18.  
  19. /*or die ("la imagen ya esta subida o tiene el mismo nombre, !dale atras¡");*/
  20.   }
  21.  
  22. {
  23. $conexion = mysqli_connect("localhost","root","","confecoop");
  24.       mysqli_select_db($conexion,"banner");
  25.   }
  26.  
  27.  
  28.     $ruta = $_FILES['archivo']['tmp_name'];
  29.     $archivo= "../img/img.jpg";
  30.    
  31.     if(isset($_POST['submit'])){
  32.  
  33.         if(!$_FILES['archivo']['error'] > 0) {
  34.  
  35.             if(getimagesize($_FILES['archivo']['tmp_name'])) {
  36.  
  37.                 if($_FILES['archivo']['type'] == 'image/jpeg') {
  38.  
  39.                     if($_FILES['archivo']['size'] < 9000000) {   /* iamgen no superior a 9mb*/
  40.  
  41.                        
  42.  if(move_uploaded_file($_FILES['archivo']['tmp_name'], '../img/' . $_FILES['archivo']['name'])){
  43. {
  44. echo("datos Enviados");
  45. /*echo"<script type=\"text/javascript\">alert('Datos Enviados.'); window.location='../banner/admin.php';</script>";   */
  46.  
  47.  
  48.  
  49.  
  50.           }}}}}}}
  51.  
  52. ?>
  53. aqui me arroja este error Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, integer given in C:\xampp\htdocs\WEB\confecoop\ubusina\banner\banner_conn.php on line 13
  54. datos Enviados
  55. no ingresa a la bd por que tengo la fila "imagen" de mi base de datos como única, pero al ingresarla no manda mensaje.
  56.  
  57. agradezco sus amables comentarios y muchas gracias
  #2 (permalink)  
Antiguo 23/12/2015, 10:53
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: mensajes duplicados con php

¿La función mysql_num_rows() no deberías aplicarla sobre $resultado en lugar de la $consulta o por qué haces eso?

Código PHP:
Ver original
  1. // MAL
  2. $consulta= mysqli_num_rows(mysqli_query($conexion, "SELECT * FROM banner WHERE imagen='$destino'"));
  3.  
  4. // todo esto que haces es innecesario pues ejecutas el resultado de una consulta como si fuera ¿una consulta?
  5. $resultado = $conexion->query($consulta);
  6.  // tampoco hace falta nada de esto
  7.  if(mysqli_num_rows($consulta) == 1)
  8.  
  9. // BIEN
  10. $resultado = mysqli_num_rows(mysqli_query($conexion, "SELECT * FROM banner WHERE imagen='$destino'"));
  11. if($resultado) {
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 23/12/2015, 14:04
 
Fecha de Ingreso: marzo-2015
Mensajes: 184
Antigüedad: 9 años, 1 mes
Puntos: 3
Respuesta: mensajes duplicados con php

muchas gracias pateketrueke por tu respuesta efectivamente si solo dejo esto
Código PHP:
Ver original
  1. $resultado = mysqli_num_rows(mysqli_query($conexion, "SELECT * FROM banner WHERE imagen='$destino'"));
  2. if($resultado) {
  3.  echo  ("la imagen ya esta subida o tiene el mismo nombre, !dale atras¡");
  4.  
  5. }

si ingresa datos pero no me muestra el mensaje que la imagen esta repetida, solo me muestra el mensaje que se ingresaron los datos pero nada mas.
Discúlpame que sera lo que tengo mal me podrías indicar que tengo mal?


muchas gracias por tu respuesta.

Última edición por devil65; 23/12/2015 a las 14:37
  #4 (permalink)  
Antiguo 23/12/2015, 14:41
 
Fecha de Ingreso: marzo-2015
Mensajes: 184
Antigüedad: 9 años, 1 mes
Puntos: 3
Respuesta: mensajes duplicados con php

bueno ya lo solucione con este codigo

Código PHP:
Ver original
  1. $consulta= mysqli_num_rows(mysqli_query($conexion, "SELECT * FROM banner WHERE imagen='$destino'"));
  2. $resultado = $conexion->query($consulta);
  3.  
  4.  
  5. if($consulta) {
  6.    echo  ("¡la imagen ya esta subida o tiene el mismo nombre!");
  7.  
  8. }
pero no se si se pueda que cuando le de atras se actualice la pagina si no que deje los datos con eso solo sea cambiar la foto?
cualquier cosa muchas gracias por responder.
  #5 (permalink)  
Antiguo 23/12/2015, 21:46
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: mensajes duplicados con php

Me sorprende que "funcione" porque básicamente estás cometiendo un error conceptual ahí:
Código PHP:
Ver original
  1. $consulta= mysqli_num_rows(mysqli_query($conexion, "SELECT * FROM banner WHERE imagen='$destino'"));
  2.  
  3. // la función mysql_num_rows() según el manual devuelve un valor INTEGER o bien FALSE
  4. // ¿cómo es posible que $consulta siendo un número o booleano sea una consulta de SQL al mismo tiempo?
  5. // lo puedes comprobar así:
  6. echo "SQL=$consulta";
  7. // ¿qué muestra?
  8.  
  9. // por lo tanto la linea de abajo sería equivalente a ejecutar una consulta "1" o bien "TRUE" y son expresiones válidas en SQL pero NO SON CONSULTAS DE SQL
  10. $resultado = $conexion->query($consulta);

En fin, ojalá entiendas lo que te traté de explicar.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 28/12/2015, 14:51
 
Fecha de Ingreso: marzo-2015
Mensajes: 184
Antigüedad: 9 años, 1 mes
Puntos: 3
Respuesta: mensajes duplicados con php

muchas gracias por tu respuesta.
En esto de la programación hay mucho por aprender y como soy nuevo comento muchos errores los cuales y gracias a personas como tu nos despejan las dudas y así ser mas perfeccionista en mi trabajo.

voy a tener en cuenta tus comentarios para este proyecto ya que deseo que salga lo mejor posible.
y no se por que funciona pero si funciona a medias ya que me pasa derecho el código a dos mensajes uno que es el que dice "datos ingresados" y el otro que me dice que "La imagen esta repetida" y hay si no se que sera.

muchas gracias por tus amables comentarios

Etiquetas: duplicados, mensajes, mysql, select, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:11.