Vous n'êtes pas identifié(e).
Merci pour ta réponse je devrais arrivé à faire ce que je souhaite.
Merci pour la réponse mais le soucis, c'est que je souhaite avoir comme résultat un tableau html comme cela :
Nom | Jeux possédés
Donc, une ligne par membre, mais dans la colonne jeux, je voudrai avoir tous les jeux séparer par une virgule.
Bonjour à tous,
je vous expose mon soucis.
J'ai 3 tables :
t_membres : id_membre, nom, pseudo.....
t_listejeux : id_jeux, jeux
t_jeuxmembres : idmembre, id_jeux
Vous l'aurez compris, le but c'est d'enregistrer les jeux des membres depuis une liste.
Cependant pour l'affichage je me heurte à un problème, je souhaite afficher tous les utilisateurs avec leur jeux respectifs.
En fait je fait une boucle sur la table membres, et dans la boucle while, je refais une requete jointe pour sélectionner les jeux du membre en question.
Je ne trouve pas d'autre solution, javais pensé au jointure, mais le soucis c'est qu'il y a plusieurs jeux pour 1 meme membre.
auriez vous une idée?
Cordialement,
Morgan
Savez vous comment je pourrais organiser l'affichage par membres les plus disponible vers les moins disponible?
Merci pour votre aide à tous les 2.
Ca me donne un truc comme ca qui m'a l'air de fonctionner :
$sql = "SELECT id_membre,
GROUP_CONCAT(DATE_FORMAT(date_d,GET_FORMAT(DATE,'ISO')) ORDER BY date_d) AS dispos
FROM dispo
WHERE date_d BETWEEN '$date_d' AND '$date_f'
GROUP BY id_membre
ORDER BY id_membre";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
while ($result = mysql_fetch_array ($req))
{
$id_membre = $result['id_membre'];
$str_date = $result['dispos'];
$tab_d[$id_membre] = explode(",", $str_date);
}
function NbJours($debut, $fin) {
$tDeb = explode("-", $debut);
$tFin = explode("-", $fin);
$diff = mktime(0, 0, 0, $tFin[1], $tFin[2], $tFin[0]) -
mktime(0, 0, 0, $tDeb[1], $tDeb[2], $tDeb[0]);
return(($diff / 86400)+1);
}
$Nombres_jours = NbJours($date_d, $date_f);
echo '<table border="1">';
echo '<tr>';
for($i=0;$i < $Nombres_jours;$i++)
{
$tab_date = explode("-", $date_d);
$date = date('d/m',mktime(0, 0, 0, $tab_date[1], $tab_date[2] + $i, $tab_date[0]));
echo '<td width="50">'.$date.'</td>';
}
echo '</tr>';
for($j=1;$j < 5;$j++)
{
echo '<tr>';
for($i=0;$i < $Nombres_jours;$i++)
{
$tab_date = explode("-", $date_d);
$date = date('Y-m-d',mktime(0, 0, 0, $tab_date[1], $tab_date[2] + $i, $tab_date[0]));
if(in_array($date,$tab_d[$j]))
{
echo '<td width="50" bgcolor="#33FF00"> </td>';
}
else
{
echo '<td width="50" bgcolor="#FF0000"> </td>';
}
}
echo '</tr>';
}
echo '</table>';
Qu'en pensez vous?
Il s'agit de celle du membre.
Il donne ses disponibilités, en jours.
Et la page que je souhaite faire afficher un calendrier sur 2 mois de tous les membres avec leur dispo.
Bonjour,
J'en reviens à mon souci de planning pour la réserve GD
J'ai une table dispo avec cette structure :
id_membre (int)
date_d (date)
Les membres rentrent chaque jour de disponibilité.
J'aimerais afficher dans la partie administration un calendrier en tableau multi-utilisateurs de cette forme :
Octobre 1 2 3 4 5 6 7 8 9 10 ...
Membre1 1 0 0 0 0 0 1 1 0 1
Membre2 0 0 0 0 0 0 1 1 0 0
Les 1 représente une disponibilité à la journée et les 0 non.
je ne sais pas comment faire les requêtes pour réaliser ce tableau.
j'avais pensé faire une requête sur la table membre avec pour chaque membre une requête sur la table dispo sur chaque jour du mois.
Mais cela au final va engendrer avec les boucles environ 7500 ou 15000 requêtes à chaque affichage de la page. 250 membres et affichage sur 1 ou 2 mois.
Auriez vous une idée?
Je vous remercie beaucoup
Qu'est ce que tu entend par Union? des jointures?
je ne comprend pas pour ton histoire de différence, si les date d'embauche chevauche sur 2 mois?
Bonjour,
je m'explique vite fait. je vasi réaliser un site pour un bureau Réserve.
Le site sera simple, le bureau enregistrera les date d'embauche du personnel.
et les reserviste donnerons leur disponibilité.
J'aurais donc 2 tables en simplifié ca donne.
Une table embauche : idembauche |datedeb | datefin | nbrposte
Une table disponibilité : idres | datedebut | datefin
Esemple d'embauche : 10/12 au 20/12 - 2 postes
J'enregistre dans la table disponibilité toutes les disponibilité du personnel, ca peu être des des weeks, et semaine ou plus.
PAr exemple, on peu avoir:
1 - 01/12 au 31/12
2 - 03/12 au 18/12
3 - 18/12 au 20/12
4- 13/12 au 15/12
.....
Avec cette exemple, on voit qu'il y a un reserviste dipo sur toute la pèriode, et qu'aprés on pourrai embauché le reserviste 2 et 3 à la suite, le premier fait du 10 au 17 et le second du 18 au 20 ou bien embauché le 2 puis le 4 puis le 3 en alternance.
Je ne sais pas du tout comment mettre cela en requète de façon à affiché par exemple :
Renfort du 10/12 au 20/12 :
- 1 réserviste dispo sur toutes la pèriode
- 3 reservistes dispo en alternance
Et le second problème, lorsque l'on clique sur les détails de l'ambauche avec la liste des reserviste dispo, est ce qu'il serait possible de connaitre le nombre de jours de dispo en rapport avec l'embauche.
Dans l'exemple :
1 - 10 jours/10
2 - 8jours/10
3 - 3jours/10
4 - 3jours/10
j'ai peu être mal conçu ma table, c'est pour cela que je vous demande conseil.
Merci beaucoup de votre aide.
peu etre mettre en copie caché:
mailto:p.dupond@example.com?bcc=jacques@example.org
Une dernière petite chose
Lors de l'affichage des données, il n'y à pas une fonction inverse de mysql_real_escape_string pour bien afficher les données?
Comme addslash et stripslash?
Merci
J'ai réussi à faire ce que je voulais en m'aidant de ton code.
J'ai utilisé array_rand pour sélectionner un index aléatoirement.
Merci beaucoup
tu transmets l'id en POST donc tu ne peux pas l'utilisé en GET dans ta requète
Pour cette raison, je ne pense pas que son utilisation avant insertion en bdd soit une bonne chose, on doit l'utiliser avant affichage.
Pour insertion bdd il faut utiliser mysql_real_escape_string c'est fait pour ça.
Pourquoi ne pas le faire avant si il faut le faire aprés cela revient au même non?
Pour l'insertion, juste mysql_real_escape_string suffit? pas de addslashe ou autre?
Bonjour,
j'ai pose des messages sur ce forum
Je suis en train de revoir toutes mes bases, ca me fait pas de mal ^^.
Voila actuellement ce que je fais avant d'insérer un enregistrement dans une table :
Cette ligne me transforme tous les caractères spéciaux en entité html, donc plus de ' ou ".
D'ou ma première question, est ce que si j'utilise cela, il est nécéssaire d'utiliser addslash en plus?
Ma seconde question, est ce que mysql_real_escape_string est utilie avec htmlentities? ( je sais que la réponse est oui sinon ca existerai pas. mais pourquoi?)
Et dernière question, comment faut t'il réèlement traiter une chaine avant de l'insérer?
Merci beaucoup
J'ai réussi en faisant sur l a page d'insertion/récupération des données :
Ce que je veux dire par Ajax et utf-8
C'est que :
les variables sont encodé en utf-8 lors de l'envoi.
Car lorsque je passe par un formulaire normal, l'enregistrement dans la table se fait correctement.
Soit tu utilises les sessions pour le transmettre de page en page soit tu utilises des champs hidden dans ton formulaire.
Merci pour ta réponse. j'ai réussi à le faire
Par contre j'ai un autre soucis avec ajax.
lorsque j'insère des caractères spéciaux des "éà..." ca m'affiche des caractère bizarre dans ma base.
J'ai trouvé sur internet que c'était ajax qui par défaut encode en utf-8, mais je n'arrive pas a forcé ajax à travailler en iso.
Il y a une solution?
Pour l'instant, je fait un utf8_decode avant l'insertion.
Voila ce que j'ai fait :
function ajout_marques ($marque)
{
$sql = "INSERT INTO liste_marques (marque) VALUES ('$marque')";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
}
function getXhr(){
var xhr = null;
if(window.XMLHttpRequest) // Firefox et autres
xhr = new XMLHttpRequest();
else if(window.ActiveXObject){ // Internet Explorer
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
return xhr
}
function request1(page,variable,idmodif) {
var xhr = getXhr()
xhr.open("POST", page, true);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
//xhr.send(null);
xhr.send(variable);
xhr.onreadystatechange = function(){
// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
if(xhr.readyState == 4 && xhr.status == 200){
//alert(xhr.responseText);
document.getElementById(idmodif).innerHTML = xhr.responseText;
}
}
}
if (isset($_POST['marque'])){
$marque = $_POST['marque'];
connect_sql ();
ajout_marques ($marque);
liste_marques ();
}
?>
tout fonctionne bien.
Mais maintenant j'aimerai que la nouvelle ligne qui a été ajouté soit sélectionné.
Je pourrai le faire en php, lors de la génération de la liste, mais est ce que c'est possible en php?
Merci encore
Oui je vois le fonctionnement.
pour les clé étrangère, je ne susi pas sour le moteur innodb, je ferrai des jointures.
Merci pour tes renseignements.
Montre nous ta requête de connexion.
je ne fait référence à aucune technologie justement, je cherche.
C'est pour le site de voiture que je créé,
j'ai la liste des marques, mais si l'on veut ajouter une voiture dont la marque n'est pas dans la liste, je voudrai pouvoir écrire dans la liste comme dans un texbox, pour ajouter la marque lors de la validation du formulaire.
D'accord, donc si je comprend bien.
Si je veux rajouter des options à la voiture, par exemple clim, vitre électrique...
Il faut que je créé une table options et que j'enregistre toutes les options de la voiture avec l'id de la voiture.
chui con j'ai même pas vu le update ^^ je croyai que c'était un insert