Foros del Web » Programando para Internet » PHP »

Problema con sistema de favoritos php y mysql

Estas en el tema de Problema con sistema de favoritos php y mysql en el foro de PHP en Foros del Web. Hola, bueno tengo un problema con un sistema de favoritos que hice en php y mysql, despues de intentar buscar y buscar el error no ...
  #1 (permalink)  
Antiguo 01/07/2012, 11:11
 
Fecha de Ingreso: julio-2012
Mensajes: 5
Antigüedad: 11 años, 9 meses
Puntos: 0
Pregunta Problema con sistema de favoritos php y mysql

Hola, bueno tengo un problema con un sistema de favoritos que hice en php y mysql, despues de intentar buscar y buscar el error no lo encontre, y tambien es un problema medio extraño, se los paso a explicar:

Yo tengo una pagina que se llama articulos,php , y tengo una base de datos y una de sus tablas llamada favoritos, que tiene 2 columnas llamadas id usuario e idarticulo.
Lo que yo hago es que el usuario en la pagina articulos.php le figuren los ultimos articulos creados, de alli entra a un articulo y en articulos.php se muestra el articulo, ahi aparece para añadirlo a favoritos, cuando se añade a favoritos se añade y aparece para sacar de favoritos y se almacena en la base de datos, es decir, hasta ahi va todo bien, pero cuando selecciono otro articulo y presiono en añadir a favoritos, se almacena en la base de datos la id del usuario y la del articulo peroen la pagina sigue mostrandose "Añadir a favoritos", lo que quiero decir es que solo me permite añadir 1 solo articulo a favoritos por usuario, por mas que se almacenen en la base de datos solo me muestra como favorito el primer articulo seleccionado por cada usuario, los demas siguen con la opcion de "Añadir a favoritos" y uno solo, el primero que selecciono con cada usuario aparece con "Quitar de favoritos". Lo puedo quitar y se quita, pero si selecciono otro articulo me pasa lo mismo, y siempre tengo el mismo problema. Bastante raro lo que me pasa y no puedo encontrar la solucion.

PD: Dejo el articulos.php en un comentario por los caracteres..
  #2 (permalink)  
Antiguo 01/07/2012, 11:13
 
Fecha de Ingreso: julio-2012
Mensajes: 5
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Problema con sistema de favoritos php y mysql

articulos.php:

Código PHP:
Ver original
  1. <?php
  2. include("conexion.php");
  3. if($_SESSION['logeado'] == true){
  4.     if($_SESSION['admin'] == 1){
  5. ?><!--Pagina de Adriana-->
  6. <!DOCTYPE html>
  7. <html>
  8. <head>
  9.     <link rel="stylesheet" type="text/css" href="estilos/styles.css" />
  10.     <link rel="stylesheet" type="text/css" href="estilos/estilos.css" />
  11.     <link rel="stylesheet" type="text/css" href="estilos/jqueryslidemenu.css" />
  12.     <link rel="stylesheet" href="estilos/validationEngine.jquery.css" type="text/css"/>
  13.     <link rel="stylesheet" href="estilos/template.css" type="text/css"/>
  14. <script type="text/javascript" src="estilos/js/jquery.min.js"></script>
  15. <script type="text/javascript" src="estilos/js/jqueryslidemenu.js"></script>
  16. <script src="estilos/js/jquery-1.6.min.js" type="text/javascript"></script>
  17. <script src="estilos/js/script.js"></script>
  18.     <title>Articulos</title>
  19. </head>
  20. <body>
  21.     <div id="contenedorglobal">
  22.         <div id="contenedor">
  23. <?php
  24. include("incluir/cabecera.php");
  25. include("incluir/menuadmin.php");
  26. ?>
  27.             <div id="cuerpo">
  28.                 <?php
  29.                 if(!$_GET['idarticulo']){
  30.                 ?>
  31.                 <div id="registro">
  32.                     <span>Los articulos publicados son:</span>
  33.                 </div>
  34.                 <?php
  35.                 }
  36.                 if($_GET['idarticulo']){
  37.                     $idarticulo = $_GET['idarticulo'];
  38.                     $resultado = mysql_query("SELECT idarticulo,categoria,nombre,precio,descripcion,cantidad FROM articulos WHERE (idarticulo = '$idarticulo')");
  39.                     $imagenes = mysql_query("SELECT imagen FROM imagenes WHERE (idarticulo = '$idarticulo')");
  40.                     $fila = mysql_fetch_array($resultado);
  41.                     $img = mysql_fetch_array($imagenes);
  42.                     ?>
  43.                     <div id="artadminart">
  44.                         <div id="artcabeceraadminart">
  45.                             <div id="artimagenadminart">
  46.                                 <img src="imagenes/articulos/<?php echo $img['imagen']; ?>" width="450px" height="450px">
  47.                             </div>
  48.                             <div id="artnombreadminart">
  49.                                 <span id="nomartadminart"><?php echo $fila['nombre']; ?></span><br><br>
  50.                                 <span id="preartadminart">$ <?php echo $fila['precio']; ?></span><br><br>
  51.                                 <span id="cantartadminart">En stock: <?php echo $fila['cantidad']; ?></span><br><br>
  52.                                 <?php
  53.                                 if($_GET['idarticulo'] && $_GET['favorito'] == 1){
  54.                                     $idarticulo = $_GET['idarticulo'];
  55.                                     $idusuario = $_SESSION['id'];
  56.                                     mysql_query("INSERT INTO favoritos (idarticulo, idusuario) VALUES ('$idarticulo', '$idusuario')");
  57.                                 }
  58.                                 elseif($_GET['idarticulo'] && $_GET['favorito'] == 2){
  59.                                     $idarticulo = $_GET['idarticulo'];
  60.                                     $idusuario = $_SESSION['id'];
  61.                                     mysql_query("DELETE FROM favoritos WHERE (idarticulo = '$idarticulo') AND (idusuario = '$idusuario')");
  62.                                 }
  63.                                 $idusuario = $_SESSION['id'];
  64.                                 $resultado = mysql_query("SELECT idarticulo,idusuario FROM favoritos WHERE (idusuario = '$idusuario')");
  65.                                 $filas = mysql_fetch_array($resultado);
  66.                                 if($_GET['idarticulo'] == $filas['idarticulo']){
  67.                                 ?>
  68.                                 <a href="articulos.php?idarticulo=<?php  echo $_GET['idarticulo'];?>&favorito=2"><img src="imagenes/iconos/favoritosi.png"></a> <span id="favorito">Quitar de favoritos</span>
  69.                                 <?php
  70.                                 }
  71.                                 else{
  72.                                 ?>
  73.                                 <a href="articulos.php?idarticulo=<?php  echo $_GET['idarticulo'];?>&favorito=1"><img src="imagenes/iconos/favoritono.png"></a> <span id="favorito">Añadir a favoritos</span>
  74.                                 <?php
  75.                                 }
  76.                                 ?>
  77.                             </div>
  78.                         </div>
  79.                     </div>
  80.                    
  81.                     <div id="titulodescartart">
  82.                         <span>Descripcion</span>
  83.                     </div>
  84.                     <div id="descartart">
  85.                         <span><?php echo $fila['descripcion']; ?></span>
  86.                     </div>
  87.                     <?php
  88.                 }
  89.                 else{
  90.                 $cantidad = 15;
  91.                 $inicio = $_GET['inicio'];
  92.                 $resultado = mysql_query("SELECT idarticulo,categoria,nombre,precio,descripcion,cantidad FROM articulos WHERE (estado = 0) ORDER BY idarticulo DESC LIMIT $inicio, $cantidad");
  93.                 if(mysql_num_rows($resultado)){
  94.                 while($fila = mysql_fetch_array($resultado)){//-->Lista de articulos<--
  95.                     ?>
  96.                     <div id="articuloart">
  97.                         <div id="imagenart">
  98.                             <?php
  99.                                 $id = $fila['idarticulo'];
  100.                                 $imagenes = mysql_query("SELECT imagen FROM imagenes WHERE (idarticulo = '$id')");
  101.                                 $img = mysql_fetch_array($imagenes);
  102.                             ?>
  103.                             <img src="imagenes/articulos/<?php echo $img['imagen']; ?>" width="100px" height="100px" ">
  104.                         </div>
  105.                         <div id="nombresart">  
  106.                             <a href="articulos.php?idarticulo=<?php echo $fila['idarticulo']; ?>"><?php echo $fila['nombre'] ; ?></a>
  107.                         </div>
  108.                         <div id="preciosart">
  109.                             <span>$ <?php echo $fila['precio']; ?></span><br><br>
  110.                             <span>En stock: <?php echo $fila['cantidad']; ?></span><br><br>
  111.                         </div>
  112.                     </div>
  113.                     <?php
  114.                     }
  115.                     }
  116.                     else{

Sigue en otro comentario
  #3 (permalink)  
Antiguo 01/07/2012, 11:14
 
Fecha de Ingreso: julio-2012
Mensajes: 5
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Problema con sistema de favoritos php y mysql

Código PHP:
Ver original
  1. ?>
  2.                         <div id="registrado">
  3.                             <span>No hay articulos publicados por el momento.</span>
  4.                         </div>
  5.                     <?php
  6.                     }
  7.                     }
  8.                     ?>
  9.             </div>
  10. <?php
  11. include("incluir/pie.php");
  12. ?>
  13.         </div>
  14.     </div>
  15. </body>
  16. </html>
  17. <?php
  18.     }
  19.     else{
  20. ?>
  21. <!DOCTYPE html>
  22. <html>
  23. <head><!-- Pagina de usuario normal-->
  24. <link rel="stylesheet" type="text/css" href="estilos/styles.css" />
  25.     <link rel="stylesheet" type="text/css" href="estilos/estilos.css" />
  26.     <link rel="stylesheet" type="text/css" href="estilos/jqueryslidemenu.css" />
  27.     <link rel="stylesheet" href="estilos/validationEngine.jquery.css" type="text/css"/>
  28.     <link rel="stylesheet" href="estilos/template.css" type="text/css"/>
  29. <script type="text/javascript" src="estilos/js/jquery.min.js"></script>
  30. <script type="text/javascript" src="estilos/js/jqueryslidemenu.js"></script>
  31. <script src="estilos/js/jquery-1.6.min.js" type="text/javascript"></script>
  32. <script src="estilos/js/script.js"></script>
  33.     <title>Articulos</title>
  34. </head>
  35. <body>
  36.     <div id="contenedorglobal">
  37.         <div id="contenedor">
  38. <?php
  39. include("incluir/cabecera.php");
  40. include("incluir/menuuser.php");
  41. ?>
  42.             <div id="cuerpo">
  43.                 <?php
  44.                 if(!$_GET['idarticulo']){
  45.                 ?>
  46.                 <div id="registro">
  47.                     <span>Los articulos publicados son:</span>
  48.                 </div>
  49.                 <?php
  50.                 }
  51.                 if($_GET['idarticulo']){
  52.                     $idarticulo = $_GET['idarticulo'];
  53.                     $resultado = mysql_query("SELECT idarticulo,categoria,nombre,precio,descripcion,cantidad FROM articulos WHERE (idarticulo = '$idarticulo')");
  54.                     $imagenes = mysql_query("SELECT imagen FROM imagenes WHERE (idarticulo = '$idarticulo')");
  55.                     $fila = mysql_fetch_array($resultado);
  56.                     $img = mysql_fetch_array($imagenes);
  57.                     ?>
  58.                     <div id="artadminart">
  59.                         <div id="artcabeceraadminart">
  60.                             <div id="artimagenadminart">
  61.                                 <img src="imagenes/articulos/<?php echo $img['imagen']; ?>" width="450px" height="450px">
  62.                             </div>
  63.                             <div id="artnombreadminart">
  64.                                 <span id="nomartadminart"><?php echo $fila['nombre']; ?></span><br><br>
  65.                                 <span id="preartadminart">$ <?php echo $fila['precio']; ?></span><br><br>
  66.                                 <span id="cantartadminart">En stock: <?php echo $fila['cantidad']; ?></span><br><br>
  67.                                 <?php
  68.                                 if($_GET['idarticulo'] && $_GET['favorito'] == 1){
  69.                                     $idarticulo = $_GET['idarticulo'];
  70.                                     $idusuario = $_SESSION['id'];
  71.                                     mysql_query("INSERT INTO favoritos (idarticulo, idusuario) VALUES ('$idarticulo', '$idusuario')");
  72.                                 }
  73.                                 elseif($_GET['idarticulo'] && $_GET['favorito'] == 2){
  74.                                     $idarticulo = $_GET['idarticulo'];
  75.                                     $idusuario = $_SESSION['id'];
  76.                                     mysql_query("DELETE FROM favoritos WHERE (idarticulo = '$idarticulo') AND (idusuario = '$idusuario')");
  77.                                 }
  78.                                 $idusuario = $_SESSION['id'];
  79.                                 $idarticulo = $_GET['idarticulo'];
  80.                                 $resultado = mysql_query("SELECT idusuario, idarticulo FROM favoritos WHERE (idusuario = '$idusuario') AND (idarticulo = '$idarticulo')");
  81.                                 if(mysql_num_rows($resultado)){
  82.                                 ?>
  83.                                 <a href="articulos.php?idarticulo=<?php  echo $_GET['idarticulo'];?>&favorito=2"><img src="imagenes/iconos/favoritosi.png"></a> <span id="favorito">Quitar de favoritos</span>
  84.                                 <?php
  85.                                 }
  86.                                 else{
  87.                                 ?>
  88.                                 <a href="articulos.php?idarticulo=<?php  echo $_GET['idarticulo'];?>&favorito=1"><img src="imagenes/iconos/favoritono.png"></a> <span id="favorito">Añadir a favoritos</span>
  89.                                 <?php
  90.                                 }
  91.                                 ?>
  92.                             </div>
  93.                         </div>
  94.                     </div>
  95.                    
  96.                     <div id="titulodescartart">
  97.                         <span>Descripcion</span>
  98.                     </div>
  99.                     <div id="descartart">
  100.                         <span><?php echo $fila['descripcion']; ?></span>
  101.                     </div>
  102.                     <?php
  103.                 }
  104.                 else{
  105.                 $cantidad = 15;
  106.                 $inicio = $_GET['inicio'];
  107.                 $resultado = mysql_query("SELECT idarticulo,categoria,nombre,precio,descripcion,cantidad FROM articulos WHERE (estado = 0) ORDER BY idarticulo DESC LIMIT $inicio, $cantidad");
  108.                 if(mysql_num_rows($resultado)){
  109.                 while($fila = mysql_fetch_array($resultado)){//-->Lista de articulos<--
  110.                     ?>
  111.                     <div id="articuloart">
  112.                         <div id="imagenart">
  113.                             <?php
  114.                                 $id = $fila['idarticulo'];
  115.                                 $imagenes = mysql_query("SELECT imagen FROM imagenes WHERE (idarticulo = '$id')");
  116.                                 $img = mysql_fetch_array($imagenes);
  117.                             ?>
  118.                             <img src="imagenes/articulos/<?php echo $img['imagen']; ?>" width="100px" height="100px" ">
  119.                         </div>
  120.                         <div id="nombresart">  
  121.                             <a href="articulos.php?idarticulo=<?php echo $fila['idarticulo']; ?>"><?php echo $fila['nombre'] ; ?></a>
  122.                         </div>
  123.                         <div id="preciosart">
  124.                             <span>$ <?php echo $fila['precio']; ?></span><br><br>
  125.                             <span>En stock: <?php echo $fila['cantidad']; ?></span><br><br>
  126.                         </div>
  127.                     </div>
  128.                     <?php
  129.                     }
  130.                     }
  131.                     else{
  132.                     ?>
  133.                         <div id="registrado">
  134.                             <span>No hay articulos publicados por el momento.</span>
  135.                         </div>
  136.                     <?php
  137.                     }
  138.                     }
  139.                     ?>
  140.             </div>
  141. <?php
  142. include("incluir/pie.php");
  143. ?>
  144.         </div>
  145.     </div>
  146. </body>
  147. </html>
  148. <?php
  149. }
  150. }
  151. else{
  152. ?>
  153. <!DOCTYPE html>
  154. <html>
  155. <head><!--Pagina de visitante-->
  156.     <link rel="stylesheet" type="text/css" href="estilos/estilos.css" />
  157.     <link rel="stylesheet" type="text/css" href="estilos/jqueryslidemenu.css" />
  158. <link rel="stylesheet" type="text/css" href="estilos/styles.css" />
  159. <script type="text/javascript" src="estilos/js/jqueryslidemenu.js"></script>
  160. <script src="estilos/js/jquery.min.js"></script>
  161. <script src="estilos/js/script.js"></script>
  162.     <title>Articulos</title>
  163. </head>
  164. <body>
  165.     <div id="contenedorglobal">
  166.         <div id="contenedor">
  167. <?php
  168. include("incluir/cabecera.php");
  169. include("incluir/menuvisita.php");
  170. ?>
  171.             <div id="cuerpo">
  172.                
  173.             </div>
  174. <?php
  175. include("incluir/pie.php");
  176. ?>
  177.         </div>
  178.     </div>
  179. </body>
  180. </html>
  181. <?php
  182. }
  183. ?>
  #4 (permalink)  
Antiguo 01/07/2012, 12:16
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: Problema con sistema de favoritos php y mysql

Código PHP:
Ver original
  1. $imagenes = mysql_query("SELECT imagen FROM imagenes WHERE (idarticulo = '$idarticulo')");

No mire casi nada del código, pero no entiendo porque le pones ese paréntesis despues del WHERE, sacalo.

Código PHP:
Ver original
  1. $imagenes = mysql_query("SELECT imagen FROM imagenes WHERE idarticulo = '$idarticulo' ");

A demas, idarticulo se supone que es un numerico, no va entre comillas, y te conviene primero hacer la consulta en 1 variable y luego usarla en mysql_query
Código PHP:
Ver original
  1. $consulta = "SELECT imagen FROM imagenes WHERE idarticulo = $idarticulo";
  2. $imagenes = mysql_query($consulta,$variableconexion);

Te falta poner en cada mysql_query también la variable conexion, mysql_connect.... bla bla bla esa.

Última edición por rodrigo791; 01/07/2012 a las 13:24
  #5 (permalink)  
Antiguo 01/07/2012, 14:14
 
Fecha de Ingreso: julio-2012
Mensajes: 5
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Problema con sistema de favoritos php y mysql

Las lines que tu me marcaste, alli no esta el problema, estan en estas lineas:

Código PHP:
Ver original
  1. <?php
  2.                                 if($_GET['idarticulo'] && $_GET['favorito'] == 1){
  3.                                     $idarticulo = $_GET['idarticulo'];
  4.                                     $idusuario = $_SESSION['id'];
  5.                                     mysql_query("INSERT INTO favoritos (idarticulo, idusuario) VALUES ('$idarticulo', '$idusuario')");
  6.                                 }
  7.                                 elseif($_GET['idarticulo'] && $_GET['favorito'] == 2){
  8.                                     $idarticulo = $_GET['idarticulo'];
  9.                                     $idusuario = $_SESSION['id'];
  10.                                     mysql_query("DELETE FROM favoritos WHERE (idarticulo = '$idarticulo') AND (idusuario = '$idusuario')");
  11.                                 }
  12.                                 $idusuario = $_SESSION['id'];
  13.                                 $resultado = mysql_query("SELECT idarticulo,idusuario FROM favoritos WHERE (idusuario = '$idusuario')");
  14.                                 $filas = mysql_fetch_array($resultado);
  15.                                 if($_GET['idarticulo'] == $filas['idarticulo']){
  16.                                 ?>
  17.                                 <a href="articulos.php?idarticulo=<?php  echo $_GET['idarticulo'];?>&favorito=2"><img src="imagenes/iconos/favoritosi.png"></a> <span id="favorito">Quitar de favoritos</span>
  18.                                 <?php
  19.                                 }
  20.                                 else{
  21.                                 ?>
  22.                                 <a href="articulos.php?idarticulo=<?php  echo $_GET['idarticulo'];?>&favorito=1"><img src="imagenes/iconos/favoritono.png"></a> <span id="favorito">Añadir a favoritos</span>
  23.                                 <?php
  24.                                 }
  25.                                 ?>

y no entiendo porque tengo el problema raro que explique al principio
  #6 (permalink)  
Antiguo 01/07/2012, 14:22
 
Fecha de Ingreso: julio-2012
Mensajes: 5
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Problema con sistema de favoritos php y mysql

Cierren el tema ya lo arregle usando mysql_num_rows en la comparacion. Gracias igualll

Etiquetas: favoritos, mysql, sistema
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 19:16.