Eliminer des turples MySQL dans une boucle while

Répondre
Polhux
le 18/06/2004 à 21:47
Polhux
Eliminer des turples MySQL dans une boucle while

J'ai un problème qui dépasse mes compétences de "MySQLiSte" débutant.

J'ai des locaux à mettre à disposition. J'ai une demande de réservation pour x jours.

1°) Du formulaire, je récupère la date de début et de fin de réservation projetée. Je teste et transforme les dates en
$timestampdebres (timestamp date début de réservation)
$timestampfinres (timestamp date fin de réservation)

2°) Je vais dans la BDD et la table des locaux et récupère les turples correspondant à un premier critère = V (Vacant) dont les dates de début de vacance et fin de vacance avec une boucle while.

3°) Je transforme ces dates en
$timestampdebvac (timestamp date début de vacance)
$timestampfinvac (timestamp date fin de vacance)
Je suppose que l'on comprend que je pense tester en fonction des valeurs des timestamps.

Arrive le problème : Pour optimiser l'occupation, je voudrais procéder à une série de contrôle sur les dates et les écarts de date. Mais voilà, je suis dans ma boucle et ne peux tester comme je veux. Alors que faire pour pouvoir sortir de la boucle tout en gardant les turples valides en mémoire et en éliminant au fur et à mesure les turples qui ne correspondent plus aux nouvelles conditions.

La création d'une table temporaire à chaque type de contrôle ? Je ne sais si cela ne consomme pas trop de ressources inutiles. N'y a-t-il pas un autre moyen ?
D'avance merci pour la ou les réponses.
Polhux
zebden
le 18/06/2004 à 21:57
zebden
On dit tuple ^_^
Secondo tu peux dans ta boucle inserer tes valeurs dans un tableau (Array) puis afficher ce que tu veux avec ce tableau ensuite..
zebdinou pour les intimes / Blog : http://www.zebden.fr
Polhux
le 18/06/2004 à 22:39
Polhux
Je retiens le tuple. Je me doutais que quelqu'un me parlerai de "array". Mais le problème est que le Saint esprit me lâche chaque fois que je lis quelque chose sur ce sujet.
Lorsque je vois "$input = array ("a" => "vert", "rouge", "b" => "vert", "bleu", "rouge");", cela ne me dit absolument rien.

Moi j'ai :
$sql='SELECT datedebut,datefin FROM ….
$req=mysql_query($sql) ….

$timestampdebvac = mktime (0,0,0,$moisdebvac, $jourdebvac, $anneedebvac);
$timestampfinvac = mktime (0,0,0,$moisfinvac, $jourfinvac, $anneefinvac);;
echo $timestampdebvac.' '. $timestampfinvac.'<br>';

me donne :
1088632800 1093903200
1087509600 1090879200

Alors si quelqu'un voulais en 1 ou 2 lignes me dire comment transposer
"$input = array ("a" => "vert", "rouge", "b" => "vert", "bleu", "rouge");"
avec mon problème, je lui ouvre un compte à Luxembourg (je ne dis pas que je l'alimenterai).
Polhux
zebden
le 19/06/2004 à 02:03
zebden
dans une boucle par ex pour mettre tes données dans un tableau
Exemple simple !

for($i=1;$i < 5;$i++) {
$tableau_nombre[] = 'valeur'.$i;
}

tu aura alors ensuite un tableau nommé donc tableau_nombre equivalent à

tableau_nombre = ([0] => valeur1 , [2] => valeur2 .... [4] => valeur5)

si tu fais par exemple un :
echo tableau_nombre[3] , cela affichera valeur2

Pour en revenir a ton script tu peux faire donc deux tableaux
$tabDateDebBac et $tabDateFinVac...
zebdinou pour les intimes / Blog : http://www.zebden.fr
zebden
le 19/06/2004 à 02:03
zebden
ah oui et si tu veux un affichage de ton tableau , utilise print_r($tableau).
C'est mieux de visualiser son tableau.
zebdinou pour les intimes / Blog : http://www.zebden.fr
Polhux
le 19/06/2004 à 13:00
Polhux
Oui, merci. C'est nettement plus clair. Pour moi en tout cas.
De plus, comme je suis dans une boucle, en faisant seulement cela :
$tableau_timestampdebvac[] = $timestampdebvac;
$tableau_timestampfinvac[] = $timestampfinvac;

le système m'affiche mon tableau avec print_r.
Mais puis-je en conclure qu'en mettant seulement [], l'interpréteur PHP comprend que je veux un tableau et cela sans la commande array. Ou autrement dit que [] constitue un signe de commande ? De quoi ne pas mourrir idiot !
Polhux
mojorisin
le 19/06/2004 à 15:44
mojorisin
En fait en ne mettant que [] c'est l'interpreteur qui va se charger d'autoincrementer les clés de ton tableau qui dans ce cas la seront numérique.
Cela partira de la clé 0 (zero).

Tu peux egalement utiliser une clé alphanumérique pour indexer tes tableaux :
$liste["fruit"] = "pomme;
$liste["couleur"] = "rouge";

ce qui peux etre egalement fait de la manière suivante :
$liste = array("fruit" => "pome", "couleur" => "rouge");

Pour in indexage automatique tu peux egalement utiliser cette forme :
$liste = array("pomme","rouge");

Les tableaux sont très important et très utiles en programmation, essais de prendre le temps de bien les comprendre et les manipuler car ils rendent de super services ;-)
echo ’16i[q]sa[ln0=aln100%Pln100/snlbx]sbA0D4D465452snlbxq’|dc
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours