Suppprimer une ligne dans un Array ou dans un Fichier - PHP - Programmation
Marsh Posté le 03-02-2009 à 11:47:05
Pour supprimer une ligne dans un array de PHP, utiliser unset().
Pour supprimer un enregistrement dans une table d'une base de données, utiliser une requête SQL, delete ....
Pour supprimer un enregistrement dans un fichier, recréer le fichier sans l'enregistrement à supprimer.
Marsh Posté le 03-02-2009 à 13:28:46
Merci de la réponse, je savais a peu pres la méthode utiliser mais le probleme est comment écrire la condition :
" ne garder que 3 lignes par salle, si il y en a plus supprimer celles qui sont vides "
Marsh Posté le 03-02-2009 à 14:36:09
Moi, j'écrirai simplement la condition "pour une salle donné, s'il y a x enregistrements avec des données alors ne rajouter que 3-x enregistrements vide".
Evidement, c'est à faire à la création du fichier.
Marsh Posté le 03-02-2009 à 14:38:26
Et ta raquête SQL, elle donne quoi ?
Parce que ton problème ressemble plus à du SQL. Tu devrais pouvoir récupérer ce que tu cherches, si tu construit bien ta raquête...
Marsh Posté le 03-02-2009 à 14:50:22
macgawel a écrit : Et ta raquête SQL, |
raquette de tennis ou requête SQL?
Je me permet de te reprendre pour que tu ne fasses plus cette erreur.
Marsh Posté le 03-02-2009 à 14:54:04
omega2 a écrit : Moi, j'écrirai simplement la condition "pour une salle donné, s'il y a x enregistrements avec des données alors ne rajouter que 3-x enregistrements vide". |
Bah oui c'est exactement cette requete qu'il me faut mais je ne sais vraiment pas comment m'y prendre.
Soit dans la table SQL directement,
soit en php : en traitant le fichier texte sous forme de "lignes" ou en array ...
J'ai passé des heures a chercher pour le php mais
Vous pensez qu'en SQL ce serait plus simple ?
je suis vraiment perdu
merci de votre aide
Marsh Posté le 03-02-2009 à 14:59:32
En SQL tu demandes les enregistrements qui sont dans la base et tu ne cherche pas à deviner combien il t'en manque (c'est pas le boulot de la base de donnée).
Et en php quand tu traites la réponse, il te suffit de compter le nombre de ligne retourné pour chaque salle afin de savoir combien tu dois en rajouter dans ton fichier (un simple compteur suffit si tu récupères bien les données trié par salle).
Marsh Posté le 03-02-2009 à 15:05:59
okay si je comprend bien je dois faire une commande pour chaque salle ... un truc genre
$a= SELECT COUNT(*) FROM matable WHERE salle='A1'
puis inserer 3-$a fois une ligne vide?
et recommencer pour chaque salle ?
parce que moi en fait je crée une table contenant 3x chaque salle puis je y rajoutais le contenu de l'autre table déja existante.
si j'ai bien compris ce que vous expliquez ... je me lance
Merci
Marsh Posté le 03-02-2009 à 15:21:12
Je pensais plutôt à un truc du genre :
"select code_salle,nom_salle,..., date_reservation,h_debut_reservation,h_fin_reservation,... nom_intervenant
from salle,reservation
where ..."
et boucler ensuite sur le résultat avec, à chaque changement de salle, la création des lignes manquantes et une remise à zéro du compteur.
Marsh Posté le 03-02-2009 à 15:26:03
omega2 a écrit : Je pensais plutôt à un truc du genre : |
en faisant ça ... ok j'obtiens la premiere ligne :
"A10;20;03-02-09;09;17;intitulé;nom de l'intervenant;50.15;;;;;;;;;C;non "
mais comment savoir si je dois rajouter une , deux, ou trois fois la ligne vide?
je ne suis pas trop votre raisonnement ...
pouvez vous m'éclaircir SVP ?
Marsh Posté le 03-02-2009 à 15:39:59
elmarokinho a écrit : okay si je comprend bien je dois faire une commande pour chaque salle ... un truc genre |
Ca me semble bien compliqué, ton truc...
Tu pourrais décrire le plus exhaustivement possible tes tables (de tennis ), et ce que tu veux ?
En particulier, quand tu parles de la "table" contenant trois fois chaque salle, tu parles d'une vraie table ?
Marsh Posté le 03-02-2009 à 15:47:26
en fait j'avais les infos sur plusieurs tables ... par soucis de clarté j'ai tout rassemblé dans une table temporaire que voici :
J'ai donc les valeurs réservées ... que je dois exporter dans un fichier texte pour une fusion excel .. OK
MAIS , il me faut ( soucis de mise en page ) , 3 lignes par salle même si celle si sont vide ...
donc : comment ( en PHP ou MySQL ) rajouter les lignes manquantes.
J'espère avoir été compréhensible
Merci
###############
[EDIT] :
J'ai commencé par :
$compter="SELECT COUNT(*) FROM 'imp_tmp' WHERE salle='A1';";
$nb= sql_query($sql_test);
Mais je n'arrive pas a afficher la valeur $nb ..; ni par un echo ni par un print_r sous quelle forme le nombre d'occurence est-il donné ?
Marsh Posté le 03-02-2009 à 16:36:22
elmarokinho a écrit : MAIS , il me faut ( soucis de mise en page ) , 3 lignes par salle même si celle si sont vide ... |
Il te faut au moins 3 lignes, ou pile 3 lignes ?
Pour ton comptage :
Ce n'est pas étonnant, si tu lis le manuel PHP, tu vois que mysql_query (je ne trouve pas sql_query ) sert à envoyer une requête.
Il ne retourne qu'une ressource, pas un résultat. Il faut encore traiter le résultat...
Examine les exemples que tu peux trouver dans le manuel, histoire de comprendre comment ça marche, et/ou cherche des tutoriels sur l'utilisation de php+mysql...
Marsh Posté le 04-02-2009 à 08:49:09
il me faut EXACTEMENT 3 lignes , et supprimer celles en trop ...
et oui ... ou avais-je la tete, cela fait un moment que je n'ai pas coder j'avais oublier la ligne
mysql_fetch_assoc($nb);
Merci de votre aide
####################
Je suis arrivé a ce code :
Code :
|
apparament cela fonctionne comme je le veux ... reste a répéte l'opération pour toute les salles. je vous tien au courant ...
Merci encore
Marsh Posté le 03-02-2009 à 10:11:52
Bonjour,
je travaille sur un petit programme de réservation de salles.
j'exporte les données voulues sous formes de liste pour qu'elles soient importables dans Excel.
Jusqu'ici tout va bien, mais il me faut insérer des lignes "vides" pour chaque salle. j'ai donc crée une table SQL avec uniquement les champs des salles rempli a laquelle je rajoute des données déja obtenues. Cependant je voudrais me limiter a 3 lignes par salle. je pense que cela doit etre réalisable en php, en fait j'exporte la BDD dans un fichier texte pour la traité, donc les commandes peuvent etre soit pour un fichier texte soit pour traité un tableau.
je pense que ce n'est pas tres clair voici une partie du fichier texte recueilli :
A1;48;;;;;;;;;;;;;;;;
A1;48;;;;;;;;;;;;;;;;
A1;48;;;;;;;;;;;;;;;;
A10;20;03-02-09;09;17;intitulé;nom de l'intervenant;50.15;;;;;;;;;C;non
A10;20;;;;;;;;;;;;;;;;
A10;20;;;;;;;;;;;;;;;;
A10;20;;;;;;;;;;;;;;;;
Donc pour la salle A1, rien n'est reservé on a bien les 3 emplacement vides, mais pour la salle A10 on a 3 emplacement libre+celui reservé ... comment en supprimé un ?
Merci de votre aide