Se connecter avec
S'enregistrer | Connectez-vous

boucle de programme php défailant...

Dernière réponse : dans Logiciels de bureau

bonjour a tous,

voila, je me demandais si vous pouviez jetter un oeil a cette adresse : besac

avec IE si vous cochez 'monuments' et 'personnages', vous devriez voir un bug. Je ne vois vraiment pas d'ou cela peut venir d'autant que cela marche avec firefox.
Je me permet donc de mettre mon code, même si celui-ci est un peu long et indigeste....


<?php
include "template.inc";
include_once("include.php") ;
include_once("fonction.php") ;
include("menu.php");


if(isset($_GET['cooksrch'])) {
// on transforme les + en espaces
$search2 = str_replace("+"," ",$cooksrch);
// on vire les espaces de début et de fin
$search2 = trim($search2);
// on vire les double-espaces
while(strpos($search2," ")) {
$search2 = str_replace(" "," ",$search2);
}
}


Function notag($txt) {
$pattern = "<[^>]+>";
$temp=ereg_replace($pattern,"",$txt);
// Supprime aussi les retours
$temp=str_replace("\n"," ",$temp);
// et les espaces doubles
while(STRPOS($temp," ")) {
$temp = STR_REPLACE(" "," ",$temp);
}
return($temp);
}


$cnx = connexion (SERVEUR, NOM, MDP, DBASE) ;


$tpl = new Template("./template");
$tpl-> set_file("fdAccueil","template1.php");



$tpl2 = new Template("./template");
$tpl2-> set_file("fdtable","table.php");

$tableaDArticle="";
$finreq="";
$finreq1="";



$cherche = $_GET["cooksrch"];






//bloc exécuté si la recherche comprend monument et personnage
if(!empty($_GET['hist_monument']) && !empty($_GET['hist_personnage'])){
if(isset($_GET['ant'])) $finreq1 = " OR epoque = 'ant'";
if(isset($_GET['moy'])) $finreq1 .= " OR epoque = 'moy'";
if(isset($_GET['16'])) $finreq1 .= " OR epoque = '16'";
if(isset($_GET['17'])) $finreq1 .= " OR epoque = '17'";
if(isset($_GET['18'])) $finreq1 .= " OR epoque = '18'";
if(isset($_GET['19'])) $finreq1 .= " OR epoque = '19'";
if(isset($_GET['20'])) $finreq1 .= " OR epoque = '20'";
if (!isset($_GET['ant']) && !isset($_GET['moy']) && !isset($_GET['16']) && !isset($_GET['17']) && !isset($_GET['18']) && !isset($_GET['19']) && !isset($_GET['20']) ) {
$finreq1 = " OR epoque = 'ant' OR epoque = 'moy' OR epoque = '16' OR epoque = '17' OR epoque = '18' OR epoque = '19' OR epoque = '20' OR epoque = 'ant' ";
}
if(isset($_GET["cooksrch"])!= empty($_GET["cooksrch"])) {// si le champ de recherche textuel est rempli
// Début de la requête
$sql = "SELECT * FROM histoire";
$sql .= " WHERE resume LIKE '%";
// on remplace les espaces de la chaîne de recherche
// par un bout de requête

$espace = " %' AND resume LIKE '%";
$sql .= str_replace(" ",$espace,$search2);
// Fin de la requête
$sql .= " %' AND (type='personnage' OR type='monument') AND (epoque='9999999' $finreq1) ";

}

else{
$sql="SELECT * FROM histoire WHERE (type='personnage' OR type='monument') AND (epoque='9999999' $finreq1) " ;

}
}


//bloc exécuté si la recherche ne comprend que personnage
if(isset($_GET['hist_personnage']) && !isset($_GET['hist_monument'])){


if(isset($_GET['ant'])) $finreq1 = " OR epoque = 'ant'";
if(isset($_GET['moy'])) $finreq1 .= " OR epoque = 'moy'";
if(isset($_GET['16'])) $finreq1 .= " OR epoque = '16'";
if(isset($_GET['17'])) $finreq1 .= " OR epoque = '17'";
if(isset($_GET['18'])) $finreq1 .= " OR epoque = '18'";
if(isset($_GET['19'])) $finreq1 .= " OR epoque = '19'";
if(isset($_GET['20'])) $finreq1 .= " OR epoque = '20'";
if (!isset($_GET['ant']) && !isset($_GET['moy']) && !isset($_GET['16']) && !isset($_GET['17']) && !isset($_GET['18']) && !isset($_GET['19']) && !isset($_GET['20']) ) {
$finreq1 = " OR epoque = 'ant' OR epoque = 'moy' OR epoque = '16' OR epoque = '17' OR epoque = '18' OR epoque = '19' OR epoque = '20' OR epoque = 'ant' ";
}
if(isset($_GET["cooksrch"])!= empty($_GET["cooksrch"])) {// si le champ de recherche textuel est rempli
// Début de la requête
$sql = "SELECT * FROM histoire";
$sql .= " WHERE resume LIKE '%";
// on remplace les espaces de la chaîne de recherche
// par un bout de requête

$espace = " %' AND resume LIKE '%";
$sql .= str_replace(" ",$espace,$search2);
// Fin de la requête
$sql .= " %' AND type='personnage' AND (epoque='9999999' $finreq1) ";

}
else{
$sql="SELECT nom, resume, adresse, descriptif, date_naissance, date_deces, photo, num_notice, id, type, epoque FROM histoire WHERE type='personnage' AND (epoque='9999999' $finreq1) ";
};
}
// bloc exécuté si la recherche ne comprend que monument.
elseif(isset($_GET['hist_monument']) && !isset($_GET['hist_personnage'])){


if(isset($_GET['ant'])) $finreq = " OR epoque = 'ant'";
if(isset($_GET['moy'])) $finreq .= " OR epoque = 'moy'";
if(isset($_GET['16'])) $finreq .= " OR epoque = '16'";
if(isset($_GET['17'])) $finreq .= " OR epoque = '17'";
if(isset($_GET['18'])) $finreq .= " OR epoque = '18'";
if(isset($_GET['19'])) $finreq .= " OR epoque = '19'";
if(isset($_GET['20'])) $finreq .= " OR epoque = '20'";
if (!isset($_GET['ant']) && !isset($_GET['moy']) && !isset($_GET['16']) && !isset($_GET['17']) && !isset($_GET['18']) && !isset($_GET['19']) && !isset($_GET['20']) ) {
$finreq = " OR epoque = 'moy' OR epoque = '16' OR epoque = '17' OR epoque = '18' OR epoque = '19' OR epoque = '20' OR epoque = 'ant' ";
}
if(isset($_GET["cooksrch"])!= empty($_GET["cooksrch"])) {
// Début de la requête
$sql = "SELECT * FROM histoire";
$sql .= " WHERE resume LIKE '%";
// on remplace les espaces de la chaîne de recherche
// par un bout de requête

$espace = " %' AND resume LIKE '%";
$sql .= str_replace(" ",$espace,$search2);
// Fin de la requête
$sql .= " %' AND type='monument' AND (epoque='9999999' $finreq) ";

}
else {
$sql="SELECT nom, resume, descriptif, adresse, date_naissance, date_deces, num_notice, photo, id, type,epoque FROM histoire WHERE type='monument' AND (epoque='9999999' $finreq) " ;
};
}

// bloc exécuté si la recherche ne comprend ni monument ni personnage.
if (!isset($_GET['hist_monument'])&& !isset($_GET['hist_personnage'])){

if(isset($_GET['ant'])) $finreq1 = " OR epoque = 'ant'";
if(isset($_GET['moy'])) $finreq1 .= " OR epoque = 'moy'";
if(isset($_GET['16'])) $finreq1 .= " OR epoque = '16'";
if(isset($_GET['17'])) $finreq1 .= " OR epoque = '17'";
if(isset($_GET['18'])) $finreq1 .= " OR epoque = '18'";
if(isset($_GET['19'])) $finreq1 .= " OR epoque = '19'";
if(isset($_GET['20'])) $finreq1 .= " OR epoque = '20'";
//$finreq2 .= $finreq1;
if (!isset($_GET['ant']) && !isset($_GET['moy']) && !isset($_GET['16']) && !isset($_GET['17']) && !isset($_GET['18']) && !isset($_GET['19']) && !isset($_GET['20']) ) {
$finreq2 = " OR epoque = 'ant' OR epoque = 'moy' OR epoque = '16' OR epoque = '17' OR epoque = '18' OR epoque = '19' OR epoque = '20' OR epoque = 'ant' ";
if(isset($_GET["cooksrch"]) == empty($_GET["cooksrch"])) {
echo "<div align='center'> <TABLE width='495'> <tr> <td> <span class='bleu'>Veuillez taper un mot ou cocher une case.</span> </td> </tr> </table> </div>";
}
}
if(isset($_GET["cooksrch"])!= empty($_GET["cooksrch"])) {
// Début de la requête
$sql = "SELECT * FROM histoire";
$sql .= " WHERE resume LIKE '%";
// on remplace les espaces de la chaîne de recherche
// par un bout de requête

$espace = "%' AND resume LIKE '%";
$sql .= str_replace(" ",$espace,$search2);
// Fin de la requête
$sql .= "%' AND (type='personnage' OR type='monument') AND ((epoque='9999999' $finreq2) OR epoque='9999999' $finreq1) ";

}

else{
$sql="SELECT nom, resume, descriptif, adresse, date_naissance, date_deces, num_notice, photo, id, coordonnee_x, coordonnee_y, type,epoque FROM histoire WHERE (type='monument' OR type='personnage') AND (epoque='9999999' $finreq1) " ;

}
}


if(isset($_GET["cooksrch"])!= empty($_GET["cooksrch"])) {// si le champ texte a été saisi, on affiche ce que l'on a saisi
echo "<div align='center'> <TABLE width='495'> <tr> <td> <span class='bleu'>Vous avez recherché :</span> <span class='orange'>'$cherche'...</span> </td> </tr> </table> </div>";
}


$sqlCitation = execReq ($sql,$cnx) ;// on exécute la requête







$arreplace = $arsearch;

$remplace = $arreplace[$indice];






while ($enr = mysql_fetch_object($sqlCitation)){// on boucle pour avir tous les résultats de la recherche.

$reste =substr($enr->resume,0, 175); // on ne prend que les caractères allant de 0 a 175 dans la table resume de la base
$posLastSpace = strrpos($reste, " ");// on s'arrête au prochain espace
$des = substr($reste, 0, $posLastSpace)."... (suite)" ;

$tpl-> set_var("cherche", $cherche);
$tpl-> set_var("remplace", $remplace);
$tpl-> set_var("resume",$des );
$tpl-> set_var("nom",$enr->nom);
$tpl-> set_var("descriptif",$enr->descriptif);
$tpl-> set_var("date_naissance",$enr->date_naissance);
$tpl-> set_var("photo",$enr->photo);
$tpl-> set_var("date_deces",$enr->date_deces);
$tpl-> set_var("num_notice",$enr->num_notice);
$tpl-> set_var("lien",$enr->lien);
$tpl-> set_var("id",$enr->id);
$tpl-> set_var("adresse",$enr->adresse);
$tpl-> set_var("num_notice",$enr->num_notice);
$tpl-> set_var("lexique",$enr->carte);
$tpl-> set_var("type",$enr->type);
$tpl-> set_var("epoque",$enr->epoque);





//$tableaDArticle.= $tpl -> get("NOUVEAUBLOC");

$tpl -> parse("NOUVEAUBLOC","fdAccueil");
$tpl -> p("NOUVEAUBLOC");

}

//$tpl2 -> set_var("table",$tableaDArticle);
//$tpl2 -> parse("NOUVEAUBLOC","fdtable");

mysql_free_result($sqlCitation);

?>

Merci d'avance :-D

Autres pages sur : boucle programme php defailant

Lassé par la pub ? Créez un compte

Merci,
bon je capte plus rien, ché certaine personne (autre forum) ca ne passe pas. Ce doit êtes mes templates, donc je vais fair un affichage normal, il fo que tout le monde puisse le voir.
Merci encore.

ps : ca peu rendre quelqu'un cingé des trucs comme ca. ca marche pas sur explorer et pas ché tout le monde, y une logique la dedans????
Lassé par la pub ? Créez un compte
Tom's guide dans le monde