Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1520 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Suppprimer une ligne dans un Array ou dans un Fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Suppprimer une ligne dans un Array ou dans un Fichier

n°1846369
elmarokinh​o
Posté le 03-02-2009 à 10:11:52  profilanswer
 

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

mood
Publicité
Posté le 03-02-2009 à 10:11:52  profilanswer
 

n°1846398
olivthill
Posté le 03-02-2009 à 11:47:05  profilanswer
 

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.

n°1846445
elmarokinh​o
Posté le 03-02-2009 à 13:28:46  profilanswer
 

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 "
 
:??:

n°1846496
omega2
Posté le 03-02-2009 à 14:36:09  profilanswer
 

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.

n°1846502
macgawel
Posté le 03-02-2009 à 14:38:26  profilanswer
 

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...

n°1846518
omega2
Posté le 03-02-2009 à 14:50:22  profilanswer
 

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. ;)

n°1846520
elmarokinh​o
Posté le 03-02-2009 à 14:54:04  profilanswer
 

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".
Evidement, c'est à faire à la création du fichier.


 
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

n°1846530
omega2
Posté le 03-02-2009 à 14:59:32  profilanswer
 

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).

n°1846537
elmarokinh​o
Posté le 03-02-2009 à 15:05:59  profilanswer
 

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 :D
 
Merci
 

n°1846548
omega2
Posté le 03-02-2009 à 15:21:12  profilanswer
 

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.

mood
Publicité
Posté le 03-02-2009 à 15:21:12  profilanswer
 

n°1846551
elmarokinh​o
Posté le 03-02-2009 à 15:26:03  profilanswer
 

omega2 a écrit :

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.


 
 :sweat:  
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 ?  

n°1846560
macgawel
Posté le 03-02-2009 à 15:39:59  profilanswer
 

elmarokinho a écrit :

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 :D
Merci


 :??:  
Ca me semble bien compliqué, ton truc...
Tu pourrais décrire le plus exhaustivement possible tes tables (de tennis :kaola: ), et ce que tu veux ?
En particulier, quand tu parles de la "table" contenant trois fois chaque salle, tu parles d'une vraie table ?

n°1846566
elmarokinh​o
Posté le 03-02-2009 à 15:47:26  profilanswer
 

en fait j'avais les infos sur plusieurs tables ... par soucis de clarté j'ai tout rassemblé dans une table temporaire que voici :
http://img382.imageshack.us/img382/1180/sanstitrehr0.jpg

 

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é ?

Message cité 1 fois
Message édité par elmarokinho le 03-02-2009 à 16:11:19
n°1846622
macgawel
Posté le 03-02-2009 à 16:36:22  profilanswer
 

elmarokinho a écrit :

MAIS , il me faut ( soucis de mise en page ) , 3 lignes par salle même si celle si sont vide ...  
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é ?


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...

n°1846945
elmarokinh​o
Posté le 04-02-2009 à 08:49:09  profilanswer
 

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 :
  1. $sql_A1="SELECT COUNT(*) FROM imp_tmp WHERE salle='A1'";
  2. $nb= sql_query($sql_A1);
  3. $num_a1= mysql_fetch_assoc($nb);
  4. $a1=$num_a1['COUNT(*)'];
  5. //echo $a1 ;
  6. switch ($a1) {
  7. case 0:
  8. $ins_a1= "INSERT INTO imp_tmp ( salle,capacite,date,debut,fin,name,contact,tel,cam,magneto,paper,diap_d,diap_c,sono,net,autre,dispo,pause)
  9. VALUES ('A1','48','','','','','','','','','','','','','','','',''),
  10. ('A1','48','','','','','','','','','','','','','','','',''),
  11. ('A1','48','','','','','','','','','','','','','','','','')";
  12. break;
  13. case 1:
  14. $ins_a1= "INSERT INTO imp_tmp ( salle,capacite,date,debut,fin,name,contact,tel,cam,magneto,paper,diap_d,diap_c,sono,net,autre,dispo,pause)
  15. VALUES ('A1','48','','','','','','','','','','','','','','','',''),
  16. ('A1','48','','','','','','','','','','','','','','','','')";
  17. break;
  18. case 2:
  19. $ins_a1= "INSERT INTO imp_tmp ( salle,capacite,date,debut,fin,name,contact,tel,cam,magneto,paper,diap_d,diap_c,sono,net,autre,dispo,pause)
  20. VALUES ('A1','48','','','','','','','','','','','','','','','','')";
  21. break;
  22. }
  23. $insert_a1= sql_query($ins_a1) ;
 

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


Message édité par elmarokinho le 04-02-2009 à 09:58:14

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Suppprimer une ligne dans un Array ou dans un Fichier

 

Sujets relatifs
Ouvrir un fichier Strings avec wordblackliste sur fichier text [help]
Probleme Sur Création d'un jeux en lignefpc télécharger un fichier et questions sur win
[Java JSP-JSF...]Masquer l'URL/nom d'un fichier à télécharger[PHP] Valeur précédente dans Array
recuperer numero de ligne tableau[VBS] Si Fichier existe...
Securisation d'un fichier par .htaccesPHP : imagecolortransparent et fichier PNG
Plus de sujets relatifs à : Suppprimer une ligne dans un Array ou dans un Fichier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR