Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

seleccionar todos en uno

Estas en el tema de seleccionar todos en uno en el foro de Mysql en Foros del Web. que tal amigos tengo una tabla id | nom_id | link | numero | 1 | 13 | http://web.com | 1 2 | 13 | ...
  #1 (permalink)  
Antiguo 27/02/2011, 13:25
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 9 meses
Puntos: 641
seleccionar todos en uno

que tal amigos tengo una tabla

id | nom_id | link | numero |

1 | 13 | http://web.com | 1
2 | 13 | http://web2.com | 1


mi objetivo es conseguir una tabla asi

numero | links
1 | web, web2
2 | web3, web1, web

etc.

o sea el chiste es que me muestre todos los links relacionados con el numero 1, todos los links relacionados con el numero 2. etc. no se si se pueda hecer ¿como ven?

¿se podrá?
  #2 (permalink)  
Antiguo 27/02/2011, 21:04
Avatar de camilo1012  
Fecha de Ingreso: febrero-2011
Mensajes: 46
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: seleccionar todos en uno

No se si te sirva de mucho pero lo puedes leer por id o si no puedes hacer un buscador en PHP, de todas formas te dejo los dos códigos, el de la lectura y el buscador.

Lectura:
Código:
Código HTML:
[PHP]<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>lectura.php</title>
</head>

<body>
<h1><div align="center">Lectura de la tabla</div></h1>
<br>
<br>
<?
mysql_connect("127.0.0.1","root","pass");
$result=mysql_db_query("//base","select * from //tabla");
?>
<table align="center">
<tr>
<th>id</th>
<th>link</th>
</tr>
<?
while ($row=mysql_fetch_array($result))
{
	echo '<tr><td>'.$row["id"].'</td>';
	echo '<td>'.$row["link"].'</td></tr>';
}
mysql_free_result($result)
?>
</table>
</body>
</html>[/PHP]

Buscador:
Código:
Código HTML:
[PHP]<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Documento sin título</title>
</head>

<body>
<h1><a href="<?php echo $_SERVER['PHP_SELF']; ?>">Buscador</a></h1>
<form name="buscar" action="<?php $_SERVER['PHP_SELF'] ?>" method="get">
Buscar: <input type="text" size="50″ value="<?php echo $_GET['frase']; ?>" name="frase" />
<input type="submit" name="buscar" value="Buscar" />
</form>

<?php
// conectar al servidor
$server_link = mysql_connect("127.0.0.1", "root", "pass");
if(!$server_link){
    die("Fall&oacute; la Conexi&oacute;n ". mysql_error());
}
// seleccionamos la base de datos
$db_selected = mysql_select_db("//base", $server_link);
if(!$db_selected){
    die("No se pudo seleccionar la Base de Datos ". mysql_error());
}
// varificamos que el formulario halla sido enviado
if(isset($_GET['buscar']) && $_GET['buscar'] == 'Buscar'){
    $frase = addslashes($_GET['frase']);
    // hacemos la consulta de busqueda
    $sqlBuscar = mysql_query("SELECT noticiaTitulo, noticiaNoticia,
                              MATCH (noticiaTitulo, noticiaNoticia)
                              AGAINST ('$frase' IN BOOLEAN MODE) AS coincidencias
                              FROM noticias
                              WHERE MATCH (noticiaTitulo, noticiaNoticia)
                              AGAINST ('$frase' IN BOOLEAN MODE)
                              ORDER BY coincidencias DESC", $server_link)
                              or die(mysql_error());                              
    $totalRows = mysql_num_rows($sqlBuscar);
    // Enviamos un mensaje
    // indicando la cantidad de resultados ($totalRows)
    // para la frase busada ($frase)
    if(!empty($totalRows)){
        echo stripslashes("<p>Su b&uacute;squeda arroj&oacute; <strong>$totalRows</strong> resultados para <strong>$frase</strong></p>");        
        // mostramos los resultados
        while($row = mysql_fetch_array($sqlBuscar)){
            echo "<strong><a href='#'>$row[noticiaTitulo]</a>:</strong> <em>Coincidencias: ". round($row['coincidencias']) ."</em><br />";
            echo "<p>".substr(strip_tags($row['noticiaNoticia']), 0, 255)."...</p>";
        }
    }
    // si se ha enviado vacio el formulario
    // mostramos un mensaje del tipo Oops...!
    elseif(empty($_GET['frase'])){
        echo "Debe introducir una palabra o frase.";
    }
    // si no hay resultados
    // otro mensaje del tipo Oops...!
    elseif($totalRows == 0){
        echo stripslashes("Su busqueda no arrojo resultados para <strong>$frase</strong>");
    }
}
?>

</body>
</html>[/PHP]
  #3 (permalink)  
Antiguo 28/02/2011, 09:36
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: seleccionar todos en uno

Hola memoadian, no estoy seguro si entendí bien qué es lo que necesitas, pero creo que la función GROUP_CONCAT te debería servir para lo que quieres hacer:

Código MySQL:
Ver original
  1. mysql> create table TuTabla (id int, nom_id int, link varchar(50), numero int);
  2. Query OK, 0 rows affected (0.06 sec)
  3.  
  4. mysql> insert into TuTabla values (1,13,'http://web.com', 1), (2,13,'http://web2
  5. .com',1),(3,13,'http://loquesea.com', 2), (4,13,'http://otrolink.com',2);
  6. Query OK, 4 rows affected (0.03 sec)
  7. Records: 4  Duplicates: 0  Warnings: 0
  8.  
  9.  
  10. mysql> select * from TuTabla;
  11. +------+--------+---------------------+--------+
  12. | id   | nom_id | link                | numero |
  13. +------+--------+---------------------+--------+
  14. |    1 |     13 | http://web.com      |      1 |
  15. |    2 |     13 | http://web2.com     |      1 |
  16. |    3 |     13 | http://loquesea.com |      2 |
  17. |    4 |     13 | http://otrolink.com |      2 |
  18. +------+--------+---------------------+--------+
  19. 4 rows in set (0.00 sec)
  20.  
  21. mysql> select numero, group_concat(link) from TuTabla group by numero;
  22. +--------+-----------------------------------------+
  23. | numero | group_concat(link)                      |
  24. +--------+-----------------------------------------+
  25. |      1 | http://web.com,http://web2.com          |
  26. |      2 | http://loquesea.com,http://otrolink.com |
  27. +--------+-----------------------------------------+
  28. 2 rows in set (0.00 sec)


Dale un vistazo y nos comentas.

Saludos
Leo.
  #4 (permalink)  
Antiguo 28/02/2011, 12:14
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 9 meses
Puntos: 641
Respuesta: seleccionar todos en uno

ujule, super más karma brother, esta perfecto como funciona.

Etiquetas: seleccionar
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 18:41.