Nueva pregunta

Pregunta:

Fecha: 27-07-2015 20:37:25 (En Español)

¿Cómo poner Tags con PHP?[Resuelta]

Hola amigos quisiera saber como poner los famosos Tags que relacionan un artículo con otro.
Por ejemplo HTML, PHP, MYSQLI etc
Si yo envió los valores así todos en una sola celda de la DB como podría hacer para que me aparezca así en HTML.
<a href="mipagina.com/Tags/HTML/">HTML</a> <a href="mipagina.com/Tags/PHP/">PHP</a>

Como podría hacerlo para que lo separe de las comas que tendría y hacer las validaciones necesarias para mostrar los artículos relacionados con cualquiera de esos Tags
Espero haberme expresado Bn Salu2.
Ejemplo
Etiquetas: HTML - MySQL - PHP - Pregunta Votos: 1 - Respuestas: 18 - Vistas: 19 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 27-07-2015 21:10:14 hola, bueno yo pensaria en hacer una consulta a la BD con las palabras como html etc, y hacer que los resultados de hagan de forma lineal y sus respectivos enleces   Votos: 1 - Link respuesta
     
  • Fecha: 27-07-2015 21:19:30 Bno amigo eso yo ya lo había pensado pero al mentó de leer los Tags para mostrarlos en sus respectivas páginas de relación. No se como hacerlo es por eso que hago esta pregunta n.n   Votos: 0 - Link respuesta
     
  • Fecha: 27-07-2015 22:52:38 hagas las consultas de la base de datos y con url amigables arreglas tus urls para que se miren mucho mejor.   Votos: 1 - Link respuesta
     
  • Fecha: 28-07-2015 04:07:24 ahhh sin ofender pero te falto especificar, si los tags los quieres poner manualmente o automaticamente depediendo de lo que escribas, si es automatico, asi te aconsegaria un archivo JSON donde tu pongas los tags y es mas si tienes mas ingenuo al momento de escribir algo te de la opcion de escribirlo en el archivo JSON, asi me da una idea, jaime ya te dijo que seria buena idea hacer urls amigables ahora como traer los tags, cierto. simple usar ajax, invocando los datos que estan en archivo JSON, ejemplo urls, tags ect al mometo de escribir tu o lo que sea cualquier tema o discusion al terminarlo abajo y antes de publicarlo automaticamente detectara las tags que tu haigas puesto en el articulo, en caso de que no te guste una la eliminas y repito nuevamente si tienes mas ideas puedes poner algo como agregar automaticamente tambien desde ahi y guardarlo en el JSON, tambien puedes usar un XML, o archivo de texto, sin usar la base de datos, por que simple yo recomiendo y pienso que registrar o guardar o crear tablas que son inecesarias poner, para que hacerlo entonces: una hacen mas grande tu base de datos, con datos que no tienen tanta importancia me falto resaltar, que si son para los usuarios en vez de ti entonces si amigo usar la DB , bueno se que no me di a entender muy bien pero al menos te puse una idea vaya recuerda tener ideas en la programacion vale mucho por que de sirve saberla o dominara si de plano no tienes ideas nuevas o al menos geniales :)   Votos: 1 - Link respuesta
     
  • Fecha: 28-07-2015 10:36:32 Mira los Tags se hacen ps automáticamente que escoges con radio boton y se guarda en una sola celda y quiero que coja ejemplo HTML y lea que si en los Tags entre las comas este HTML. Y lo muestre.   Votos: 0 - Link respuesta
     
  • Fecha: 28-07-2015 13:26:28 cuales comas? ahi no te entendi aunque entiendo tu idea alguna vez haz hecho un buscador en php?

    pues no es muy diferente a lo quieres yo agregos las busquedas se guardan en la DB, luego tras poner ejemplo: PHP me salga el resultado que esta guardada en la base de datos como: urls, y nombre ect ect, pero lo mas importante cual es tu idea para que lo necesitas osea para quieres los tags, para ponerlos en una publicacion de algun articulo o como? y una celda oO, eso es posblie? ahi no sabria decirte ya que yo busco la palabra por LIKE, ejemplo:

    $consulta = $mysqli->query("SELECT * FROM nombredelatabla WHERE titulo LIKE '%" .$busca . "%'");

    en busca pones una array con las etiquetas tal vez algo asi:

    $busca = array(
    0=>"",
    1=>"",
    );

    bueno ahi te di una idea tambien puedes usar foreach para busca en un array n.n

    no se si se pueda cambiar los '' por {} si es asi usarlo ^^
      Votos: 1 - Link respuesta
     
  • Fecha: 28-07-2015 14:43:32 Gracias ya me diste una bna idea.   Votos: 0 - Link respuesta
     
  • Fecha: 28-07-2015 17:25:37 Edinson, podrías guardar tu artículo, pregunta, respuesta, etc. asociada a un tag por medio del agregado de una nueva columan llamada "tags", dentro podrías guardar los trags asociados separados por coma y buscar en esa columna por medio de "FIND_IN_SET()" de MySQL para encontrar, por ejemplo, todos los artículos que tienen el tag "HTML". Esta forma no es de lo má correcta porque estarías guardando los datos "tags" de una forma desnormalizada (a nivel modelado de base de datos) pero es una forma muy práctica y usada.

    Los más correcto sería crear una tabla "tags" y guardar su "id" y "nombre" por cada registro (por ejemplo). Luego crear una tabla intermedia que asocie los tags con alguna otra entidad, supongamos "articulos", entonces tendrías "articulos_tags" con una clave primaria cluster "articulo_id" y "tag_id". Este esquema responde a una relación SQL "Muchos a Muchos".

    Al margen de esto, por favor relean sus preguntas/respuestas, tienen muchos problemas de redacción y estos hacen que sea una tortura leer (no se lo tomen a mal)

    Saludos,
      Votos: 2 - Link respuesta
     
  • Fecha: 29-07-2015 04:00:02 Ok, Fernando no me ofendo n.n y solo que Saludos termina con punto, ahora somos humanos u.u ademas cada quien tiene palabras y un lenguaje diferente, o no? si hablamos español pero no las mismas palabras y vocabulario y de depende de nosotros entender inclusive, la mas tonta idea o la mala mala pregunta o explicación que haiga puesto el usuario :').

    No te ofendas, pero al igual he visto en muchos foros, que exigen una perfecta pregunta, o explicacion, para ayudarte, cuando se les olvida que programacion es solo eso programacion no escritura :/
    sin recordar que la mayoria a la hora de dar tutoriales hablan tan mal el ingles u.U palabras que forman parte de la programación osea. 7.7

    Espero no haber ofendido a nadien, somos libres de dar nuestras opiniones o no?

    Saludos, y que bueno haberte ayudado un poco ElCapa8, aunque Fernando tambien te dio una buena respuesta.
      Votos: 1 - Link respuesta
     
  • Fecha: 29-07-2015 05:47:38 Anji, al momento de escribir algo, todos tenemos el deber moral de volver a leer lo que escribimos (por lo menos una vez), para ver si se entiende y corregir problema de dicción / errores / omisiones. En muchos casos hasta buscar x palabra en Google / diccionario para ver si la estamos escribiendo mal y corregirla de ser necesario (lo que nos mejora también a la hora de volver a escribirla).

    Los puntos, comas, mayusculas solo despues de un punto..... no permitamos que el idioma españo se deforme tanto.....

    Si preferimos algún otro idioma, trambién pueden escribir en español, ingles y portugués. No podemos deformarnos nosotros porque en Internet hay cosas peores (no?).

    Bienvenidos los debates!

    Saludos,
    Fernando
      Votos: 2 - Link respuesta
     
  • Fecha: 31-07-2015 17:50:16 Aportando algo, el CMS wordpress trabaja como lo dijo Fernando, más o menos de la siguiente manera:

    Primero, utiliza una tabla para guardar las etiquetas en donde a cada una se le asigna un id.
    Ejemplo:
    | id | tag |
    | 1 | html |
    | 2 | php |
    | 3 | css |

    Luego utiliza otra tabla para guardar las "relaciones". En esta tabla va: en una columna el id del artículo y en otra el id de la etiqueta. Si se quiere agregar más de una etiqueta a un mismo artículo solo se agrega un registro más a la tabla, de manera que cuando quieres leer las etiquetas de un artículo buscas en la tabla relaciones todas las filas que correspondan.
    Ejemplo:
    | id_articulo | id_tag |
    | 24 | 2 |
    | 24 | 3 |
    | 30 | 1 |

    Así el artículo 24 tendría las etiquetas php, css y el artículo 30 la etiqueta html.

    Wordpress utiliza otros campos más en sus tablas pero básicamente esta es la implementación.

    Por cierto, no olvidar diferenciar 'categorías' de 'etiquetas'. Radio buttons no son la mejor forma de escoger etiquetas.
      Votos: 2 - Link respuesta
     
  • Fecha: 27-10-2015 16:37:23 Hola amigos,

    Agradezco su ayuda en esta pregunta pero retome esto y estoy tratando que al final no me aparezca el "-".
    Pero no encuentro la forma esto es lo que intentado.
    function separartags($link, $url, $tags) {
    	$trozos=explode(",",$tags);
    	$numero=count($trozos); 
    	$i = 0;
    	while($i <= $numero):
    		$codigo = '<a href="'.$url.'/tags/'.$trozos[$i].'">'.$trozos[$i].'</a>';
    		$sql_tag = mysqli_query($link, "SELECT id, tag FROM tags WHERE id='".$trozos[$i]."'") or die(mysqli_error($link));
    		if($row_tag = mysqli_fetch_array($sql_tag)){
    			if($i != $numero){
    				echo '<a href="'.$url.'/tags/'.$row_tag["tag"].'">'.$row_tag["tag"].'</a> - ';
    			}else{
    				echo '<a href="'.$url.'/tags/'.$row_tag["tag"].'">'.$row_tag["tag"].'</a>';
    			}
    		}
    	$i += 1;
    	endwhile;
    }
    

    Aqui llamo la función.
    <?
    	$cadena = "1,2,3,4,5";
    	separartags($link, $url, $cadena);
    ?>
    

    Y no se que hacer Ayuda.
    Y Fernando la función FIND_IN_SET() me sirve es para llamarlo y buscar los post relacionados.
      Votos: 0 - Link respuesta
     
  • Fecha: 02-11-2015 09:12:33 Hola,

    Al final de la línea 10 tienes el "-" y está entrando a escribir esa línea porque en el if anterior a donde escribes la línea, está comprobando que $i sea diferente a $numero.

    $numero es la cantidad de elementos que resulto de separar la cadena $tags, en este caso tienes 5 y la variable $i comienza en 0, por lo que siempre van a ser diferentes más que al final, cuando $i valga 5.

    Es por eso que nunca entra a escribir la línea donde no lleva el "-".

    También podrías comentar o quitar la línea 06 ya que nunca la estas utilizando, defines $codigo pero no lo utilizas en ninguna parte. Y también puedes usar la sintaxis $i++ en la línea 15. Estos últimos puntos son recomendaciones.

    Saludos!
      Votos: 1 - Link respuesta
     
  • Fecha: 02-11-2015 09:34:55 Mis ya lo he intentado y no he podido y la línea $codigo es como ejemplo de cómo sería ya que me decidí por ponerle el "-"   Votos: 0 - Link respuesta
     
  • Fecha: 02-11-2015 10:04:54 Cuál es la finalidad o porque utilizar el "-"? querías algo como:

    "ref1 - ref2 - ref3 - ref4" ?

    Y siempre te escribe

    "ref1 - ref2 - ref3 - ref4 -" ?

    Ese es el problema? o cuál es el problema?
      Votos: 0 - Link respuesta
     
  • Fecha: 02-11-2015 12:06:19 Su amigo ese es el problema que no he podido solucionar   Votos: 0 - Link respuesta
     
  • Fecha: 02-11-2015 12:56:56 Prueba cambiando el while a:
    while($i < $numero):
    


    y en la validación de este if:
    if($i != $numero){ 
    


    podrías ponerlo como
    if($i != ($numero-1)){
    
      Votos: 2 - Link respuesta
     
  • Fecha: 02-11-2015 16:09:17 gracias lo probaré en el día de mañana.   Votos: 0 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com