colocar nuestros datos de una matriz a una base de datos

Marca :

Tengo dos tablas en mi base de datos, uno grupos que contienen usuarios y uno que contienen. Los usuarios pueden ser miembros de esos grupos incluso varias veces.

Así, los usuarios contiene "id", "Nombre", "Apellido", "grupo", y algunos otros que no son atm importante. Los grupos de tablas sólo contienen un identificador y un nombre de grupo. Esos grupos son dinámicos, a veces se agrega un grupo, y en ocasiones un grupo se elimina.

En la parte delantera, la gente puede sumarse a un grupo mediante un formulario con una selección múltiple

Pero no consigo más allá de esto. Estoy frente a dos cuestiones. los datos recogidos de un son en una matriz, por lo que ponerlos en una consulta SQL no es simple y sencilla. (Yo estaba pensando en poner al la información de la matriz en una sola variable separados por ""), por otro lado, puede que este formato de tabla no es la mejor manera de hacerlo.

Así que lo que estoy preguntando yo de ustedes. ¿Es mejor para cambiar la estructura de la tabla y en qué? ¿Cómo combino una matriz en una variable para que pueda ponerlos en la base de datos (separados por "") <\ s>

EDITAR !: Como recomendado por Andy Hall, v I' crea una nueva tabla. werkgroep_user con id, werkgroep_id y user_id.

esto es lo que se ve como mis seleccione

<select id="testwerkgroep" name="testwerkgroep[]" multiple>
 <option value="">geen werkgroep</option>
 <option value="1">werkgroep 1</option>
 <option value="2">werkgroep 2</option>
</select>

Ahora estoy frente al problema de la obtención de datos de la BD. Quiero, por ejemplo, todos los usuarios (nombre) y sus grupos (nombre)

Andy Hall:

Parece que tu Usuarios y Grupos tablas tienen una relación de muchos a muchos. "Muchos usuarios pueden ser parte de muchos grupos".

Sin resolver la relación de muchos a muchos con una mesa de intermediario, que sin duda puede utilizar una cadena de valores separados por comas en el users.groupcampo. Tiene que lograr esto mediante el uso de la implode()función en su matriz de ID de grupo:

$commaSeparatedGroupIdString = implode($groupIdArray);

Y cuando se recuperan de la base de datos, se puede explotar ellos de vuelta a una matriz:

$groupIdArray = explode($commaSeparatedGroupIdString, ",");

El segundo (y, yo diría mejor ) método es resolver la relación de muchos a muchos con una mesa de intermediario. Esta tabla podría ser nombrado algo así group_assignments. Uno userpuede tener muchos group_assignments, y uno grouppuede tener muchas group_assignments.

La estructura de la group_assignmenttabla sería:

id Clave primaria

user_idclave externa a la users.idmateria

group_idclave externa a la groups.idmateria

Cada vez que un usuario desea asignarse a un grupo, que harían una presentación, y su aplicación sería crear un nuevo registro en la group_assignmentstabla con el ID del usuario y el ID del grupo se sometieron a asignarse a sí mismos a. Recuperación de información de asignación de grupo para un usuario requeriría entonces el uso de una JOINen su SQL para agarrar todos los asociados group_assignmentregistros a su usuario. La eliminación de una asignación es tan simple como eliminar el registro correspondiente en la group_assignmentstabla.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=347659&siteId=1
Recomendado
Clasificación