Foros del Web » Programando para Internet » PHP »

Duda con php

Estas en el tema de Duda con php en el foro de PHP en Foros del Web. Necesito ayuda con algo que no logro hacer con php. En Mysql tengo la tabla Compras y sus campos son: id_user, id_producto e id_compra. En ...
  #1 (permalink)  
Antiguo 04/03/2014, 08:57
 
Fecha de Ingreso: mayo-2013
Ubicación: Alicante
Mensajes: 35
Antigüedad: 11 años, 5 meses
Puntos: 0
Duda con php

Necesito ayuda con algo que no logro hacer con php.
En Mysql tengo la tabla Compras y sus campos son: id_user, id_producto e id_compra.
En php tengo el siguiente código incompleto:
Código PHP:
$user $_SESSION['User'];
$producto htmlentities($_GET['id']);

// Realizo la consulta
if $verifica $msdb->query("SELECT * FROM Compras WHERE id_user='{$user}' AND id_producto='{$producto}'");
if(
$msdb->num_rows($verifica) == 0){
// Es decir si existe en la tabla ese usuario con ese id_producto, hacer ??? 
Después del if entre los {} quisiera poner que el span con id igual a id_compra, de ese usuario y ese id_producto tenga la class igual "marcado". Teniendo en cuenta que hay varios registros con ese usuario e id_producto pero con diferentes id_compra.

Por favor alguna ayuda para completar el código, llevo más de un mes rompiéndome la cabeza.
  #2 (permalink)  
Antiguo 04/03/2014, 09:50
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años, 7 meses
Puntos: 40
Respuesta: Duda con php

Código PHP:
<?php if($msdb->num_rows($verifica) == 0){ ?>
texto html que solo aparecera si se cumple el if
<?php ?>
Solo tienes que imprimir las variables que te devuelve la consulta e imprimirlas en el if con echo.

Un saludo
  #3 (permalink)  
Antiguo 07/03/2014, 03:34
 
Fecha de Ingreso: mayo-2013
Ubicación: Alicante
Mensajes: 35
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Duda con php

Gracias Heli0s pero eso lo sé hacer, no es así tan sencillo sinó ya lo hubiera resuelto. He preguntado esto de formas diferentes, por si no me entienden la pregunta pero nadie me ha podido ayudar.
Creo que se puede hacer con php y con javascript pero no doy con la solución y no sé ya a donde acudir.
Esto es solo cuestión de un pequeño código pero como no he trabajado haciendo algo parecido no lo sé.
Sé que cualquier programador lo resolvería en 2 minutos, pero a mi me supera un poco.
Lo que quiero hacer con php, jquery o ambos es:
Tengo una página con varios span con id="{$id_compra}", por lo tanto ese valor es diferente para cada span.
Al cargar la página, verificar una tabla y si ese id se encuentra cambiarle el class al span.
Si se encuentra seria así:
<span class="marcado" id="{$id_compra}"></span>
sinó:
<span class="no marcado" id="{$id_compra}"></span>

¿Cómo puedo hacerlo?
  #4 (permalink)  
Antiguo 07/03/2014, 04:29
 
Fecha de Ingreso: marzo-2014
Mensajes: 3
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Duda con php

Con javascript tienes el getElementById("id_compra").className = "marcado"; No se si será eso lo que irás buscando.
  #5 (permalink)  
Antiguo 07/03/2014, 06:56
 
Fecha de Ingreso: mayo-2013
Ubicación: Alicante
Mensajes: 35
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Duda con php

Gracias cara_jito de esa forma obtengo el id_compra, pero como le digo:
Si ese id se encuentra en la tabla Compras entonces el span con id igual a ese id muestre la class marcado, sinó no marcado.
En php he visto alguna vez la variable exist o algo parecido pero creo que verifica la existencia de un archivo y no de un dato dentro de la base de datos.

Pondré un ejemplo solo para hacerme comprender, pero lógicamente no es válido
Código PHP:
Ver original
  1. if id_compra exist into Compras{
  2. span(id_compra).css="marcado";
  3. }else{
  4. span(id_compra).css="no marcado";
  5. }
  #6 (permalink)  
Antiguo 07/03/2014, 10:53
 
Fecha de Ingreso: noviembre-2012
Mensajes: 74
Antigüedad: 12 años
Puntos: 3
Respuesta: Duda con php

Creo que lo recomendable no seria crear los span y luego cambiarles el class, seria mejor antes de crearlos span ver que class se les debe poner entonces los span se crearían de forma dinámica como cadenas y al final se haría un echo de todos los span ya con su class que les corresponde. Si pones el codigo de como creas los span seria mas facil.
  #7 (permalink)  
Antiguo 07/03/2014, 11:31
 
Fecha de Ingreso: mayo-2013
Ubicación: Alicante
Mensajes: 35
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Duda con php

Tengo una tabla con varios productos en una columna, en la columna del lado tengo un span, el span tiene la class no marcado(el estilo de esa clase se recoge en un archivo css, que es una imagen para lo 'marcado' y otra para 'no marcado' )
Código HTML:
Ver original
  1. <td width="50">{if $User->is_member}
  2.            <a href="#" title="Marcar" onClick="marcar({$id_user}, {$id_compra}); return false;"><span id="{$id_compra}" class="no marcado"></span></a>{else}<span class="no marcado"></span>{/if}</td>
Ese evento onclick me envia a un archivo jquery esas dos variables y luego a otro php que evalúa si no están esos datos los introduce, y si están los elimina. Al hacer click el jquery me cambia la class una y otra sin problemas. Pero yo lo que quiero es que la class que tiene cada producto perdure y no desaparezca cuando recargue la página.
Para ello necesito que al cargar la página cargue la class de cada uno.
Espero puedan ayudarme
  #8 (permalink)  
Antiguo 07/03/2014, 11:49
 
Fecha de Ingreso: noviembre-2012
Mensajes: 74
Antigüedad: 12 años
Puntos: 3
Respuesta: Duda con php

La única forma de que se mantenga después de recargar la pagina es almacenarlo en sesión, puedes creas un arreglo en php que te guarde el valor del class de cada id_compra, entonces en archivo php que se ejecuta con jquery harias algo como.

Código:
$valores_class=$_SESSION["valores_class"];
$valores_class[$id_compra]="marcado";
$_SESSION["valores_class"]=$valores_class;
Y en los span los pondrias
Código:
$valor_class=$_SESSION["valores_class"][$id_compra];
<span id="{$id_compra}" class="{$valor_class}"></span>
  #9 (permalink)  
Antiguo 07/03/2014, 12:56
 
Fecha de Ingreso: mayo-2013
Ubicación: Alicante
Mensajes: 35
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Duda con php

Ok gracias, mañana probaré como me dices a ver si me sale. Después te cuento.
  #10 (permalink)  
Antiguo 08/03/2014, 03:24
 
Fecha de Ingreso: mayo-2013
Ubicación: Alicante
Mensajes: 35
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Duda con php

De esa forma en mi página no funciona. Más bien necesitaria que se verificara en la tabla si existe el id, y de existir el span con ese id le de la class marcado. He probado haciendo la consulta y si existe la variable $span sea igual a marcado, pero lo que ocurre es que si ese id existe entonces todos aparecen marcados y no se diferencian.
En jquery me dice cara_jito que con getElementById("id_compra").className = "marcado"; pero no lo he podido implementar bien porque faltan más cosas, estaré probando haber si lo consigo, aunque con jquery he empezado hace poco a trabajar y no conozco muy bien su funcionamiento.

¿Pero cómo hago para cargar una class si esos datos están al cargar la página.?

Última edición por andy82; 25/03/2014 a las 07:46

Etiquetas: php+basedatos, validar-campos
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 14:20.