Correction:
<td width="26%" height="33">Votre recherche(*) : </td>
<td width="74%"><input type="text" size="30" name="mots_cles" maxlength="14" class="fullsample_bouton" /></td>
<td width="26%" height="33">Votre recherche(*) : </td>
<td width="74%"><input type="text" size="30" name="mots_cles" maxlength="14" class="fullsample_bouton" /></td>
<?php
///////////////////////////
// recherche par mot-clé
///////////////////////////
if (isset($_GET["mots_cles"])){
// 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é%'
// 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
while ($result && $row = mysql_fetch_array($result)){
echo "Numéro annonce : ".$row['C0_R_éF_éRENCE_DU_BOAMP_']."<br>";
echo "Département : ".$row['C2_D_éPARTEMENT_DE_PUBLICATION']."<br>";
echo "Date de publication : ".$row['C1_ANNONCE_PUBLI_éE_LE_ ']."<br>";
echo " ICI MON LIEN VERS LA FICHE CORRESPONDANTE AU CLIC";
}
echo "</table>";
}
else {
echo "<p>Mot-clé '", $_GET["mots_cles"], "' non trouvé!</p>";
}
}
} // fin if isset($_GET["mots_cles"])
?>
<?php
///////////////////////////
// recherche par mot-clé
///////////////////////////
if (isset($_GET["mots_cles"])){
// 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é%'
// 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=\"#e5e3e3\">";
echo "<tr>";
echo "<th style=\"text-align:left\"><b>Date de publication</b></th>";
echo "<th style=\"text-align:left\"><b>Objet du marché</b></th>";
echo "<th style=\"text-align:left\"><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['C16_OBJET_DU_MARCH_é']),0,100)."...<br><a href=\"afficher_appels_doffre.php?objet_marche=".addslashes(mb_strtoupper($row['C16_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"])
?>
ce que je souhaite faire c'est mettre en place un php (afficher_appels_doffre.php) qui permettra d'afficher toutes les données ou presque de l'annonce qui aura été sélectionnée par clic sur "Lire la suite"
<a href=\"afficher_appels_doffre.php?objet_marche=".addslashes(mb_strtoupper($row['C16_OBJET_DU_MARCH_é']))."\">Lire la suite<a/>
donc ta page afficher_appels_doffre.php sera exécutée sur clic sur ce lien et recevra le paramètre $_GET["objet_marche"]. On peut donc utiliser ce paramètre GET dans le script PHP de la page afficher_appels_doffre.php pour exécuter une requête SQL qui sélectionne les données utiles de la table des offres tel que le champ "C16_OBJET_DU_MARCH_é" = $_GET["objet_marche"]. Soit une requête comme ça :
$sql = "SELECT * FROM `rechercher_appel_doffre` WHERE `C16_OBJET_DU_MARCH_é` = '" . $_GET["objet_marche"] . "'";
Voilà tu connais la suite. <?php
//------------------------------------------------------------------------------------------
$conn = db_connect();
$sql = "SELECT * FROM `rechercher_appel_doffre` WHERE `C16_OBJET_DU_MARCH_é` = '" . $_GET["objet_marche"] . "'";
$result = mysql_query($sql, $conn);
//------------------------------------------------------------------------------------------
?>
<fieldset class="fieldset"><legend class="legend">AVIS DE MARCHE</legend>
<?php
while ($dossier = mysql_fetch_array($result)) {
echo "objet :".$dossier['objet_marche'];
}
?>
while ($dossier = mysql_fetch_array($result)) {
echo "objet :".$dossier['objet_marche']; // <--- erreur: nom du champ "objet_marche" : n'existe pas dans la table
}
Le nom du champ "objet_marche" : n'existe pas dans la table while ($dossier = mysql_fetch_array($result)) {
$sql = "SELECT * FROM `rechercher_appel_doffre` WHERE `C16_OBJET_DU_MARCH_é` = '" . $_GET["objet_marche"] . "'";
echo $sql;
fais un echo $sql; après cette instruction puis exécute, en suite copie la requête affichée et teste là directement dans PHPmyAdmin pour détecter l'erreur SQL.SELECT * FROM `rechercher_appel_doffre` WHERE `C16_OBJET_DU_MARCH_é` = 'ETUDE DE RECONNAISSANCE DES SOLS.'
2ème étape$sql = "SELECT * FROM `rechercher_appel_doffre` WHERE `C16_OBJET_DU_MARCH_é` = \'ETUDE DE RECONNAISSANCE DES SOLS.\' ";
Voila.
<?php
}
//------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------
$conn = db_connect();
$sql = "SELECT * FROM `rechercher_appel_doffre` WHERE `C16_OBJET_DU_MARCH_é` = 'C16_OBJET_DU_MARCH_é' ";
$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_MARCH_é']."<br>";
echo "Département :".$dossier['C2_D_éPARTEMENT']."<br>";
echo $sql;
?>
Merci.
<?php
}
//------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------
$conn = db_connect();
$sql = "SELECT * FROM `rechercher_appel_doffre` WHERE `C16_OBJET_DU_MARCH_é` = \'ETUDE DE RECONNAISSANCE DES SOLS.\' ";
$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_MARCH_é']."<br>";
echo "Département :".$dossier['C2_D_éPARTEMENT']."<br>";
echo $sql;
?>Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /homez.333/miamo/www/site/afficher_appels_doffre.php on line 45
AVIS DE MARCHE objet :
Département :
SELECT * FROM `pefac_rechercher_appel_doffre` WHERE `C16_OBJET_DU_MARCH_é` = \'ETUDE DE RECONNAISSANCE DES SOLS.\'
L'ERREUR PROVIENT DE CETTE LIGNE:
$dossier = mysql_fetch_array($result);
Merci