Pourquoi ces caractères bizarres : é dans le nom du champ : `C16_OBJET_DU_MARCH_é` ? c'est possible que ce soit ça le problème.SELECT * FROM `pefac_rechercher_appel_doffre` WHERE `C16_OBJET_DU_MARCH_é` = \'ETUDE DE RECONNAISSANCE DES SOLS.\'
Pourquoi ces caractères bizarres : é dans le nom du champ : `C16_OBJET_DU_MARCH_é` ? c'est possible que ce soit ça le problème.SELECT * FROM `pefac_rechercher_appel_doffre` WHERE `C16_OBJET_DU_MARCH_é` = \'ETUDE DE RECONNAISSANCE DES SOLS.\'
SELECT * FROM rechercher_appel_doffre
ET
SELECT * FROM `rechercher_appel_doffre` WHERE `C6_OBJET_DU_MARCHE` = 'C6_OBJET_DU_MARCHE'
ça fonctionne...<?php
//------------------------------------------------------------------------------------------
$conn = db_connect();
$sql = "SELECT * FROM `rechercher_appel_doffre` WHERE `C16_OBJET_DU_MARCHE` = '" . $_GET["objet_marche"] . "'";
$result = mysql_query($sql, $conn);
$dossier = mysql_fetch_array($result);
//------------------------------------------------------------------------------------------
?>
<fieldset class="fieldset"><legend class="legend">AVIS DE MARCHE</legend>
<?php
echo "objet :".$dossier['C16_OBJET_DU_MARCHE']."<br>";
echo "Département :".$dossier['C2_D_éPARTEMENT']."<br>";
echo $sql;
?>
L'erreur: $dossier = mysql_fetch_array($result);
<a href=\"afficher_appels_doffre.php?objet_marche=".$row['C16_OBJET_DU_MARCH_é']."\">Lire la suite<a/>
et dans la requête SQL comme ça :
$sql = "SELECT * FROM `rechercher_appel_doffre` WHERE `C16_OBJET_DU_MARCH_é` = '" . addslashes($_GET["objet_marche"]) . "'";
Mais reste une question : Dans ta base dans la table "rechercher_appel_doffre" le champ est-il nommé `C16_OBJET_DU_MARCH_é` ou `C6_OBJET_DU_MARCHE` ?? parce qu'un coup tu utilises le premier et d'un autre coup tu utilises l'autre. Je n'ai pas compris pourquoi !!$sql = "SELECT * FROM `rechercher_appel_doffre` WHERE `C6_OBJET_DU_MARCH_é` = '".addslashes($_GET["objet_marche"])."'";
Mais même après toutes les modifications j'ai toujours cette même erreur...Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /homez.333/www/HOME/afficher_appels_doffre.php on line 43
AVIS DE MARCHE
objet :
Département :
SELECT * FROM `rechercher_appel_doffre` WHERE `C6_OBJET_DU_MARCH_é` = 'acquisition d\'un générateur de DIOXYDE de chlore avec matériel complémentaire pour le renouvellement de l\'existant Production d\'aurice. Lieu d\'exécution et de livraison: production d\'aurice, 40500 Aurice. Caractéristiques principales : marché à lot unique comprenant les prestations suivantes 1) Acquisition d\'un générateur de dioxyde de chlore voie chlore gazeux 2) Acquisition du matériel assurant l\'alimentation en chlore gazeux 3) Acquisition du matériel assurant le dosage et l\'injection dioxyde de chlore Refus des variantes. Date prévisionnelle de début des prestations (fournitures/services) :1.e.r juillet 2011. Les candidatures et les offres seront entièrement rédigées en langue française ainsi que les documents de présentation associés . Unité monétaire utilisée, l\'euro . Critères d\'attribution : Offre économiquement la plus avantageuse appréciée en fonction des critères énoncés dans le cahier des charges (règlement de la consultation, lettre d\'invitation ou document descriptif). Type de procédure :procédure adaptée. Date limite de réception des offres :27 avril 2011, à 12 heures. Délai minimum de validité des offres : 120 jours à compter de la date limite de réception des offres. Autres renseignements : Renseignements complémentaires :renseignements administratifs et techniques : M. LAILHEUGUE Jean-François, à l\'adresse indiquée ci-dessus ou à [email protected].'
Le php : afficher_appels_doffre.php<?php
//------------------------------------------------------------------------------------------
$conn = db_connect();
$sql = "SELECT * FROM `rechercher_appel_doffre` WHERE `C6_OBJET_DU_MARCH_é` = '".addslashes($_GET["objet_marche"])."'";
$result = mysql_query($sql, $conn);
$dossier = mysql_fetch_array($result);
//------------------------------------------------------------------------------------------
?>
<fieldset class="fieldset"><legend class="legend">AVIS DE MARCHE</legend>
<?php
echo "objet :".$dossier['C6_OBJET_DU_MARCH_é']."<br>";
echo "Département :".$dossier['C2_D_éPARTEMENT']."<br>";
echo $sql;
?>
ET LE PHP module_recherche_appels_doffre.php
<?php
///////////////////////////
// recherche par mot-clé
///////////////////////////
if (isset($_GET["mots_cles"])){
?>
<fieldset class="fieldset"><legend class="legend">Résultat de votre recherche</legend>
<?php
// objectif 1: lister les colonnes de la table `rechercher_appel_doffre`
$colonnes_table = array();
$sql = "SHOW COLUMNS FROM `rechercher_appel_doffre`";
// Exécution requête mysql_select_db("", mysql_connect("", "", "")) or die(mysql_error());
$result = mysql_query($sql) or die(mysql_error());
while ($result && $row = mysql_fetch_array($result)){
$colonnes_table[] = $row["Field"]; // champ "field" contient le nom d'une colonne de la table
}
// objectif 2: réaliser une recherche du mot-clé envoyé par le formulaire dans toutes les colonnes de la table
if (count($colonnes_table)>0){
$sql = "SELECT * FROM `rechercher_appel_doffre` WHERE "; // début de la requête SELECT
$sql .= "CONCAT(`" . implode("`,`", $colonnes_table) . "`) "; // pour avoir le format: CONCAT(champ1, champ2, ...)
$sql .= " LIKE '%" . $_GET["mots_cles"] . "%'"; // pour avoir le format LIKE '%valeur du mot-clé%'
$sql .= " AND C1_ANNONCE_PUBLI_éE_LE_ like '%".$date_publication."%' AND C2_D_éPARTEMENT like '%".$departement."%' LIMIT 0,20";
// on obtient : SELECT * FROM `rechercher_appel_doffre` WHERE CONCAT(champ1, champ2, ...) LIKE '%valeur du mot-clé%'
// Exécution requête mysql_select_db("", mysql_connect("", "", "")) or die(mysql_error());
$result = mysql_query($sql) or die(mysql_error());
if (mysql_num_rows($result)>0){
// affichage sous forme de table html
// lignes détail => valeurs des cases du tableau
echo "<br><div style='overflow: scroll; border: #000000 0px solid; height: 800px; margin-left: 5px; margin-right: 5px;'>";
echo "<table cellpadding=\"5\" border=\"1\" bgcolor=\"#F2F3FF\" width=\"100%\">";
echo "<tr>";
echo "<th style=\"text-align:center\"><b>Date de publication</b></th>";
echo "<th style=\"text-align:center\"><b>Objet du marché</b></th>";
echo "<th style=\"text-align:center\"><b>Dépt.</b></th>";
echo "</tr>";
while ($result && $row = mysql_fetch_array($result)){
echo " <tr><td width=\"30%\"> ".stripslashes($row['C1_ANNONCE_PUBLI_éE_LE_'])."</td>";
echo " <td width=\"60%\"> ".substr(stripslashes($row['C6_OBJET_DU_MARCH_é']),0,100)."...<br><a href=\"afficher_appels_doffre.php?objet_marche=".$row['C6_OBJET_DU_MARCH_é']."\">Lire la suite<a/></td>";
echo " <td width=\"10%\" style=\"text-align:center\"> ".stripslashes($row['C2_D_éPARTEMENT'])."</td>";
}
echo "</tr></table>";
echo "</div>";
}
else {
echo "<p>Mot-clé '", $_GET["mots_cles"], "' non trouvé!</p>";
}
}
} // fin if isset($_GET["mots_cles"])
?>
</fieldset>
Depuis tout à l'heure je regarde partout avec attention, je fais des tests avec phpmyadmin, les requête fonctionnent mais impossible de les faire fonctionner via le PHP...
// fonction de conversion utilisée pour transformer des caractères indésirables
function conversionCar($texte){
$conversion = array( // le première chaine des array peut être enrichi dans le temps
array(',?;.:/!&~’"\#\\\'}{)(\]\[\-+*=§%µ$£€¤¨`\<>', ''), // tous les caractères spéciaux sont effacés
// Remplacement des caractères accentués
array('éèêë', 'e'),
array('à', 'a'),
array("ç", 'c'),
array('ù', 'u'),
// Attention: ces 2 règles suivantes sont enchainées et doivent rester les dernières
array('\s*', ' '), // 1. plusieurs espace => un seul espace
array('\s', '_') // 2. un espace => un souligné _
);
foreach($conversion as $regle){
list($car_indesirable, $car_valide) = $regle;
$texte = preg_replace('#(['.$car_indesirable.'])#', $car_valide, trim($texte));
}
return strtolower(trim($texte)); // en minuscule
}
?>
Le tableau est donc une liste de règles de conversion (ici il y a 6 règles) dont chacune est représentée sous forme de sous-tableau (array) qui stock un couple de 2 chaines la première contient les caractères indésirables et la seconde contient le caractère de remplacement. <?php
$rs = mysql_query("SELECT * FROM annonces_appels_doffre"); // exécution de la requête
// tableau final à construire
$tab_final = array();
// parcours des résultats
while ($row=mysql_fetch_assoc($rs)) {
// extraire les couples (titulé # valeur) séparés par |
$t1 = explode('|', $row['annonces_marche']);
//echo "<pre>"; print_r($t1); echo "</pre>";
foreach ($t1 as $intitulé_valeur){
// extraire chaque intitulé et sa valeur séparés par #
$intitulé = ""; $valeur = "";
if (trim($intitulé_valeur)!="") { // si bien sur la chaine traitée n'est pas vide
$t2 = explode("#", trim($intitulé_valeur));
// stocker l'intitulé et sa valeur dans le tableau final
if (count($t2)>1) {$intitulé = trim($t2[0]); $valeur = trim($t2[1]);}
if ($intitulé!="") $tab_final[$intitulé][] = trim($valeur); // toutes les valeurs ayant le même intitulé seront stockées ici sous le même index $intitulé
}
}
}
// à la fin du traitement du résultat de la requête, on a un tableau d'activités rempli
// affichage du tableau juste pour le test
//echo "<pre>"; print_r($tab_final); echo "</pre>";
// entêtes de colonnes => les index du tableau
$colonnes = array_keys($tab_final);
if (count($colonnes) <=0) { die ("Désolé aucun intitulé n'est trouvé!"); } // sortir du programme car aucune colonne
// Insertion du résultat final dans la table "module_appel_doffre"
// préparation des requêtes Create et Insert
// les champs:
$sql_create = "CREATE TABLE IF NOT EXISTS `rechercher_appel_doffre` ( ";
$sql_insert = "INSERT INTO `rechercher_appel_doffre` (";
foreach ($colonnes as $index=>$intitulé){
$intitulé = "C".$index."_".$intitulé; // numéroter pour rendre unique le nom d'un champ
$intitulé = preg_replace_callback("#(\w*)\s*#","formatMot",trim($intitulé)); // transformation: mots en maj abrégés à 10 car
$intitulé = trim(substr($intitulé, 0,50)); // transformation: attention sous MySQL, la taille max nom du champ = 64 car
$sql_create .= "`" . $intitulé . "` text,";
$sql_insert .= "`" . $intitulé . "`,";
}
//
$sql_create = preg_replace('#(,)$#', ');', $sql_create); // remplacer la dernière virgule qui traine par );
$sql_insert = preg_replace('#(,)$#', '', $sql_insert); // enlever la dernière virgule qui traine
$sql_insert .= ") VALUES ";
// les valeurs :
$colonne1 = $colonnes[0]; // une colonne pour déterminer le nombre de lignes à afficher
for ($i=0; $i<count($tab_final[$colonne1]); $i++){ // parcourir les lignes
$sql_insert .= "(";
foreach ($colonnes as $colonne){ // afficher les lignes par colonne
if (isset($tab_final[$colonne]) && isset($tab_final[$colonne][$i])) {
$sql_insert .= "'" . addslashes($tab_final[$colonne][$i]) . "',";
}
else { $sql_insert .= "'',"; } // valeur vide ''
}
$sql_insert = preg_replace('#(,)$#', '', $sql_insert); // enlever la dernière virgule qui traine
$sql_insert .= "),";
}
$sql_insert = preg_replace('#(,)$#', ';', $sql_insert); // remplacer la dernière virgule qui traine par ;
// affichage juste pour le test
echo "<pre>"; print($sql_create); echo "</pre>";
echo "<pre>"; print($sql_insert); echo "</pre>";
// Exécution des requêtes
mysql_select_db("", mysql_connect("", "", "")) or die(mysql_error());
mysql_query($sql_create) or die(mysql_error());
mysql_query($sql_insert) or die(mysql_error());
mysql_close();
echo "<p>Les données sont enregistrées dans la table</p>";
// FIN DU PROGRAMME PRINCIPAL
// fonction callback utilisée pour transformer les mots en maj limités à 10 car max
function formatMot($matches){
if (trim(substr($matches[0],0,10))=="") return "";
else return strtoupper(trim(substr($matches[0],0,12))) . "_";
}
?>
ET LA LE CODE QUE J'AI TENTE DE MODIFIE ET D'INTEGRER AU PHP DE BASE
<?php
// fonction de conversion utilisée pour transformer des caractères indésirables
function conversionCar($intitulé){
$conversion = array( // le première chaine des array peut être enrichi dans le temps
array(',?;.:/!&~’"\#\\\'}{)(\]\[\-+*=§%µ$£€¤¨`\<>', ''), // tous les caractères spéciaux sont effacés
// Remplacement des caractères accentués
array('éèêë', 'e'),
array('à', 'a'),
array("ç", 'c'),
array('ù', 'u'),
// Attention: ces 2 règles suivantes sont enchainées et doivent rester les dernières
array('\s*', ' '), // 1. plusieurs espace => un seul espace
array('\s', '_') // 2. un espace => un souligné _
);
foreach($conversion as $regle){
list($car_indesirable, $car_valide) = $regle;
$intitulé = preg_replace('#(['.$car_indesirable.'])#', $car_valide, trim($intitulé));
}
return strtolower(trim($intitulé)); // en minuscule
}
?>
Et est-ce qu'il est possible de faire en sorte que :
$intitulé = "C".$index."_".$intitulé; // numéroter pour rendre unique le nom d'un champ
Ne soit pas numéroté? Car s'il y a un décalage dans les intitulés, les php seront faussés... Problème s'il y a 2 intitulés identique la base sql risque de faire une erreur 1062, non?
$rs = mysql_query("SELECT * FROM annonces_appels_doffre"); // exécution de la requête
// tableau final à construire
$tab_final = array();
// parcours des résultats
while ($row=mysql_fetch_assoc($rs)) {
// extraire les couples (titulé # valeur) séparés par |
$t1 = explode('|', $row);
//echo "<pre>"; print_r($t1); echo "</pre>";
foreach ($t1 as $intitulé_valeur){
// extraire chaque intitulé et sa valeur séparés par #
$intitulé = ""; $valeur = "";
if (trim($intitulé_valeur)!="") { // si bien sur la chaine traitée n'est pas vide
$t2 = explode("#", trim($intitulé_valeur));
// stocker l'intitulé et sa valeur dans le tableau final
if (count($t2)>1) {$intitulé = trim($t2[0]); $valeur = trim($t2[1]);}
if ($intitulé!="") {
//conversion de l'intitulé d'un champ éliminer des caractères indésirables
$intitulé = conversionCar($intitulé);
//transformation: attention sous MySQL, la taille max nom du champ = 64 car
$intitulé = trim(substr($intitulé, 0,64));
$tab_final[$intitulé][] = trim($valeur); // toutes les valeurs ayant le même intitulé seront stockées ici sous le même index $intitulé
}
}
}
}
// à la fin du traitement du résultat de la requête, on a un tableau d'activités rempli
// affichage du tableau juste pour le test
//echo "<pre>"; print_r($tab_final); echo "</pre>";
// entêtes de colonnes => les index du tableau
$colonnes = array_keys($tab_final);
if (count($colonnes) <=0) { die ("Désolé aucun intitulé n'est trouvé!"); } // sortir du programme car aucune colonne
// Insertion du résultat final dans la table "module_appel_doffre"
// préparation des requêtes Create et Insert
// les champs:
$sql_drop = "DROP TABLE IF EXISTS `module_appel_doffre`;"; // si nécessaire
$sql_create = "CREATE TABLE IF NOT EXISTS `module_appel_doffre` (`id` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`)) ";
$sql_alter = array();
$sql_insert = "INSERT INTO `module_appel_doffre` (";
foreach ($colonnes as $index=>$intitulé){
//$intitulé = "C".$index."_".$intitulé; // numéroter pour rendre unique le nom d'un champ
//$intitulé = trim(substr($intitulé, 0,64)); // transformation: attention sous MySQL, la taille max nom du champ = 64 car
$sql_alter[] = "ALTER TABLE `module_appel_doffre` ADD `" . $intitulé . "` text;";
$sql_insert .= "`" . $intitulé . "`,";
}
//
$sql_insert = preg_replace('#(,)$#', '', $sql_insert); // enlever la dernière virgule qui traine
$sql_insert .= ") VALUES ";
// les valeurs :
$colonne1 = $colonnes[0]; // une colonne pour déterminer le nombre de lignes à afficher
for ($i=0; $i<count($tab_final[$colonne1]); $i++){ // parcourir les lignes
$sql_insert .= "(";
foreach ($colonnes as $colonne){ // afficher les lignes par colonne
if (isset($tab_final[$colonne]) && isset($tab_final[$colonne][$i])) {
$sql_insert .= "'" . addslashes($tab_final[$colonne][$i]) . "',";
}
else { $sql_insert .= "'',"; } // valeur vide ''
}
$sql_insert = preg_replace('#(,)$#', '', $sql_insert); // enlever la dernière virgule qui traine
$sql_insert .= "),";
}
$sql_insert = preg_replace('#(,)$#', ';', $sql_insert); // remplacer la dernière virgule qui traine par ;
// affichage juste pour le test
//echo "<pre>"; print($sql_create); echo "</pre>";
//echo "<pre>"; print($sql_insert); echo "</pre>";
// Exécution des requêtes
mysql_select_db("test", mysql_connect("localhost", "root")) or die(mysql_error());
//@mysql_query($sql_drop); // si nécessaire
@mysql_query($sql_create);
if (count($sql_alter)>0) { foreach($sql_alter as $sql) @mysql_query($sql); }
mysql_query($sql_insert) or die(mysql_error());
mysql_close();
echo "<p>Les données sont enregistrées dans la table</p>";
// FIN DU PROGRAMME PRINCIPAL
// fonction de conversion utilisée pour transformer des caractères indésirables
function conversionCar($intitulé){
// Tableau de conversion : la première chaine des array peut être enrichi dans le temps (format expressions régulières)
$conversion = array(
array('[,?;.:/!&~’"\#\\\'}{)(\]\[+*=§%µ$£€¤¨`\<>]', ''), // tous les caractères spéciaux sont effacés
// Remplacement des caractères accentués
array('[éèêë]', 'e'),
array('à', 'a'),
array("ç", 'c'),
array('ù', 'u'),
// Attention: les règles suivantes sont enchainées et doivent rester les dernières
array('(-)', ' '), // un tiret => un seul espace
array('(\s+)', ' '), // plusieurs espace => un seul espace
array('\s', '_') // un espace => un souligné _
);
foreach($conversion as $regle){
list($car_indesirable, $car_valide) = $regle;
$intitulé = preg_replace('#'.$car_indesirable.'#', $car_valide, trim($intitulé));
}
return strtolower(trim($intitulé)); // en minuscule
}
?>
Heu, il y a aussi dans ce code, quelques modifications sur la manière de créer les champs dans la table, qui consiste à exécuter d'abord une requête Create Table avec un seul champ id comme clé primaire, suivi d'une rafale de requête Alter Table pour ajouter les colonnes dont les intitulés sont collectés par le tableau $tab_final. Avec cette méthode, on peut ajouter dynamiquement des colonnes à une table existante sans la recréer. C'est pourquoi le create Table est maintenant séparé de l'Alter Table. <?php echo "Département :".$dossier['adresse_internet ']."<br>"; ?>
Alors que celle-ci fonctionne car elle est seule:
<?php echo "objet :".$dossier['annonce_publiee_le']."<br>"; ?>
Je voulais faire ça car parfois il peut y avoir des décalages dans les textes du genre (exemple) :
T1 (a text, b text, c text)
On veut importer les données suivantes:Code : Tout sélectionner
|a # la valeur 1 de a | c # la valeur 1 de c | b # la valeur 1 de b
Code : Tout sélectionner
| b # la valeur 2 de b |a # la valeur 2 de a | c # la valeur 2 de c
Code : Tout sélectionner
| a # la valeur 3 de a |b # la valeur 3 de b | c # la valeur 3 de c
INSERT INTO T1 (a, b, c)
VALUES
('la valeur 1 de a', 'la valeur 1 de b', 'la valeur 1 de c'),
('la valeur 2 de a', 'la valeur 2 de b', 'la valeur 2 de c'),
('la valeur 3 de a', 'la valeur 3 de b', 'la valeur 3 de c');
Alors comment le faire ?// tableau correspondant à un enregistrement type de la table T1 préparé pour extraire les données
$modele_enreg = array( 'a'=>'', 'b'=>'', 'c'=>'' );
Ce tableau servira à explorer la source de données pour rechercher et placer les valeurs à importer et à les stocker dans un tableau final. à chaque remplissage total de ce tableau on sait qu'un enregistrement est terminé on peut donc le vider pour passer à l'enregistrement suivant.[b]Tableau Final:[/b]
Array
(
[0] => Array
(
[a] => la valeur 1 de a
[b] => la valeur 1 de b
[c] => la valeur 1 de c
)
[1] => Array
(
[a] => la valeur 2 de a
[b] => la valeur 2 de b
[c] => la valeur 2 de c
)
[2] => Array
(
[a] => la valeur 3 de a
[b] => la valeur 3 de b
[c] => la valeur 3 de c
)
)
Avec cette structure finale le reste du programme est simplifié car il s'agit tout simplement de construire la requête INSERT par rapport à ce tableau final.<?php
// Source de données à importer
$source_data = "
| a # la valeur 1 de a | c # la valeur 1 de c | b # la valeur 1 de b
| b # la valeur 2 de b | a # la valeur 2 de a | c # la valeur 2 de c
| a # la valeur 3 de a | b # la valeur 3 de b | c # la valeur 3 de c
";
// tableau correspondant à un enregistrement type de la table T1 préparé pour extraire les données
$modele_enreg = array( 'a'=>'', 'b'=>'', 'c'=>'' );
// tableau final où il faut stocker les enregitrements extraits de la source de données
$tab_final = array();
// ... Ecrire le code d'extraction ici
// ...
// ...
// affichage du tableau final obtenu
echo "<pre>"; print_r($tab_final); echo "</pre>";
/* Voici le résultat attandu:
* Tableau Final :
*
Array
(
[0] => Array
(
[a] => la valeur 1 de a
[b] => la valeur 1 de b
[c] => la valeur 1 de c
)
[1] => Array
(
[a] => la valeur 2 de a
[b] => la valeur 2 de b
[c] => la valeur 2 de c
)
[2] => Array
(
[a] => la valeur 3 de a
[b] => la valeur 3 de b
[c] => la valeur 3 de c
)
)
*/
?>|a # |Référence du BOAMP # | c # ""| b # ""
| b # | tél. # |a #| tél. # | c # | tél. #
un truc du genre?
ça ce sont les champs que je viens d'extraire, ils sont bien au bon format?:
|Référence du BOAMP #
| Annonce publiée le#
| BOAMP n°#
|Nom et adresse officiels de l'organisme acheteur #
| Annonce n°#
|Correspondant #
| tél. #
|télécopieur #
| courriel #
|adresse internet #
|Adresse internet du profil d'acheteur #
|Principale(s) activité(s) du pouvoir adjudicateur #
|Objet du marché #
|Catégorie de services #
| C.P.V. - Objet principal #
| Lieu d'exécution #
| Code NUTS #
| Caractéristiques principales #
| La présente consultation comporte #
|une tranche ferme #
| tranche conditionnelle 1 #
|tranche conditionnelle 2 #
| Des variantes seront-elles prises en compte #
| La procédure d'achat du présent avis est couverte par l'accord sur les marchés publics de l'OMC #
| Prestations divisées en lots #
|Durée du marché ou délai d'exécution #
| Cautionnement et garanties exigés #
| Modalités essentielles de financement et de paiement et/ou références aux textes qui les réglementent #
| Forme juridique que devra revêtir le groupement d'opérateurs économiques attributaire du marché #
| L'exécution du marché est soumise à d'autres conditions particulières #
| Conditions de participation #
| Critères de sélection des candidatures #
| Situation juridique - références requises #
| Capacité économique et financière - références requises #
| Référence professionnelle et capacité technique - références requises #
| Marché réservé #
| Justifications à produire quant aux qualités et capacités du candidat #
| Type de procédure #
| Date limite de réception des candidatures #
| Numéro de référence attribué au marché par le pouvoir adjudicateur/l'entité adjudicatrice #
| Renseignements complémentaires #
| Conditions et mode de paiement pour obtenir les documents contractuels et additionnels #
| Date limite d'obtention #
| Date d'envoi du présent avis à la publication #
| Instance chargée des procédures de recours #
| Organe chargé des procédures de médiation #
| Service auprès duquel des renseignements peuvent être obtenus concernant l'introduction des recours #
|Renseignements relatifs aux lots #
|Critères d'attribution #
|Conditions de remise des offres ou des candidatures #
| Date d'envoi du présent avis à la publication 1#
|Département de publication #
|Date prévisionnelle de commencement des travau1x. e#
|Conditions de remise des offres ou des candidatures #
|Date limite de réception des offres #
|Délai minimum de validité des offres #
|Autres renseignements #
|Nom et adresse officiels de l'organisme acheteur #
|Adresse auprès de laquelle des renseignements d'ordre administratif peuvent être obtenus #
|Lieu d'exécution #
|Adresse auprès de laquelle des renseignements d'ordre administratif et technique peuvent être obtenus #
|Correspondant #
|Caractéristiques principales #
|Documents à produire dans tous les cas au stade de l'attribution du marché #
Oui comme ça c'est bien. Les valeurs sont bien sûr après les # dans la source de données.Bonjour,
|Référence du BOAMP # | Annonce publiée le# | BOAMP n°# |Nom et adresse officiels de l'organisme acheteur # | Annonce n°# |Correspondant # | tél. # |télécopieur # | courriel # |adresse internet # |Adresse internet du profil d'acheteur # |Principale(s) activité(s) du pouvoir adjudicateur # |Objet du marché # |Catégorie de services # | C.P.V. - Objet principal # | Lieu d'exécution # | Code NUTS # | Caractéristiques principales # | La présente consultation comporte # |une tranche ferme # | tranche conditionnelle 1 # |tranche conditionnelle 2 # | Des variantes seront-elles prises en compte # | La procédure d'achat du présent avis est couverte par l'accord sur les marchés publics de l'OMC # | Prestations divisées en lots # |Durée du marché ou délai d'exécution # | Cautionnement et garanties exigés # | Modalités essentielles de financement et de paiement et/ou références aux textes qui les réglementent # | Forme juridique que devra revêtir le groupement d'opérateurs économiques attributaire du marché # | L'exécution du marché est soumise à d'autres conditions particulières # | Conditions de participation # | Critères de sélection des candidatures # | Situation juridique - références requises # | Capacité économique et financière - références requises # | Référence professionnelle et capacité technique - références requises # | Marché réservé # | Justifications à produire quant aux qualités et capacités du candidat # | Type de procédure # | Date limite de réception des candidatures # | Numéro de référence attribué au marché par le pouvoir adjudicateur/l'entité adjudicatrice # | Renseignements complémentaires # | Conditions et mode de paiement pour obtenir les documents contractuels et additionnels # | Date limite d'obtention # | Date d'envoi du présent avis à la publication # | Instance chargée des procédures de recours # | Organe chargé des procédures de médiation # | Service auprès duquel des renseignements peuvent être obtenus concernant l'introduction des recours # |Renseignements relatifs aux lots # |Critères d'attribution # |Conditions de remise des offres ou des candidatures # | Date d'envoi du présent avis à la publication 1# |Département de publication # |Date prévisionnelle de commencement des travau1x. e# |Conditions de remise des offres ou des candidatures # |Date limite de réception des offres # |Délai minimum de validité des offres # |Autres renseignements # |Nom et adresse officiels de l'organisme acheteur # |Adresse auprès de laquelle des renseignements d'ordre administratif peuvent être obtenus # |Lieu d'exécution # |Adresse auprès de laquelle des renseignements d'ordre administratif et technique peuvent être obtenus # |Correspondant # |Caractéristiques principales # |Documents à produire dans tous les cas au stade de l'attribution du marché #