Problème pour faire marcher ce script
augustin78
Messages postés
72
Statut
Membre
-
Exileur Messages postés 1621 Statut Membre -
Exileur Messages postés 1621 Statut Membre -
Bonjour, j'ai un problème avec le script suivant: ma page index.php ci-dessous, ma page config et ma base. Je n'arrive pas à me connecter à ma base, et je ne vois pas pourquoi ça ne renvoi aucun résultats. Merci aux personnes qui pourront m'éclairer!
index.php
config.php
et pour finir un bout de ma BDD csv.sql
index.php
<?php
session_start();
require_once("config.php");
?>
<?php
function coche($arg){
global $couleur;
$i=0;
while($couleur[$i]){
if($couleur[$i]==$arg){return TRUE;
break;
}
$i++;
}
}
//--- fonction pourles limites d'affichage
function nbp($total,$increment){
$reste=$total % $increment;
$total=$total-$reste;
$j=0;
for($i=0;$i<=$total; $i=$i+$increment){
$j++;
}
if($reste==0){$j--;}
return $j;
}
//-----------------
/* === CODE A CHANGER =========
$flag=0;
if(isset($_POST['submit'])){
extract($_POST);
$flag=1;
=====================pour celui ci-dessous =========*/
if(!empty($_POST)){
$_SESSION['tab']=$_POST;
$tab=$_POST;
extract($tab);
$page=1;
}
if($_GET['flag']==1){
extract($_SESSION['tab']);
}
//==========================
$i=0;
if($prix>0) {
$choix[$i++] = "prix ";
switch($prix){
case 1:
$choix[$i++] = "< 1000";
break;
case 2:
$choix[$i++] = ">= 1000 AND prix <=2000";
break;
case 3:
$choix[$i++] = ">=2000";
break;
}
}
if($velo){
$choix[$i++] = "velo =";
$choix[$i++] = $velo;
}
if($voiture){
$choix[$i++] = "voiture =";
$choix[$i++] = $voiture;
}
if($etat){
$choix[$i++] = "etat = '";
$choix[$i++] = $etat."' ";
}
if($couleur) {
$nom=$i++;
$val=$i++;
if(count($couleur) >1){
$choix[$nom] = " (couleur= '";}
else{ $choix[$nom] = "couleur= '";}
$j=0;
$condition="";
$choix[$val]="";
while($couleur[$j]){
if($j>0){$condition = "' OR couleur = '";}
$choix[$val].=$condition.$couleur[$j];
$j++;
}
$choix[$val].="' ";
if(count($couleur) >1){$choix[$val].=") ";}
}
$critere = $choix[0].$choix[1]." ";
for($j=2;$j<$i;$j+=2){
$critere .=" AND ".$choix[$j].$choix[$j+1]." ";
}
if($i>0){
//================ limite =======================
$sql=mysql_query("SELECT id FROM csv where $critere ", $connexion);
$nb_de_lignes=mysql_num_rows($sql);
$nb_de_pages=nbp($nb_de_lignes, $increment);
//-- pour verification uniquement - a desactiver
//echo "nb ligne $nb_de_lignes <br>";
//echo "nb page $nb_de_pages <br>";
//----------------------------------------------
if($_GET['page']){ //test si un lien a été cliqué
$flagpage=1; // on met le drapeau à 1
$page=$_GET['page'];
}
else{$page=1;}
$debut= ($page-1)*$increment +1;
$depart_boucle=1;
if( $max_pages_vues>$nb_de_pages){$max_pages_vues=$nb_de_pages;}
$fin_boucle=$max_pages_vues;
if($flagpage==1){
$depart_boucle=$page-intval($max_pages_vues/2);
$fin_boucle=$page+intval($max_pages_vues/2);
if($fin_boucle>$nb_de_pages){
$fin_boucle=$nb_de_pages;
$depart_boucle=$fin_boucle-$max_pages_vues;
}
if($depart_boucle<=0){
$depart_boucle=1;
$fin_boucle=$depart_boucle+$max_pages_vues;
}
}
//================CODE DEVENU INUTILE ICI ================================
/*
$sql=mysql_query("SELECT * FROM csv where $critere ", $connexion);
$nb=mysql_num_rows($sql);
if(!$nb){$msg= "Aucun résultat - Séléctionnez moins de critères";}
========================================================================*/
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>Formulaire de recherche à critères multiples par Milan.</title>
<style type="text/css" media="screen"><!--
body { font-size: 12px; font-family: Verdana; margin: 10px; }
td { font-size: 12px; font-family: Verdana; padding: 1px 3px; }
--></style>
</head>
<body>
<table border="0" cellspacing="2" cellpadding="0" align="center">
<tr>
<td>
<h1>Formulaire de recherche à critère multiple </h1>
<div class="cadre">
<p><em>Pour info</em> : le nom de fichier de cette page est<strong> <span class="gras">Index.php</span></strong>. A savoir car je m'y réfère dans les liens.</p>
</div>
<p>Dans ce formulaire, je laisse le choix au visiteur du nombre d'articles à afficher par page et du nombre constituant la plage de liens.</p>
<p>A titre d'exemple concret,</p>
<ul>
<li>cochez Voiture et au moins quatre couleurs dans le formulaire ci-dessous.
<li>Laissez le le nb de résultats à 5 pages
<li>Mais choisissez le Nb de de pages visible à 10
</ul>
<p></p>
<p>Vous pouvez constater, en cliquant sur les numéro de page, que ceux-ci changent de plage, que le numéro sélectionné est en gras, et qu'au besoin, apparaissent les "boutons" Debut, Fin, Précédent et Suivant.</p>
<form class="cadre" method="post">
<p><input type="hidden" name="flag" value="1"></p>
<p>prix <select name="prix" size="1">
<option value="0">choisir</option>
<option <?php if($flag==1 && $prix==1){echo " selected ";}?> value="1">moins de 1000</option>
<option <?php if($flag==1 && $prix==2){echo " selected ";}?> value="2">de 1000 à 2000</option>
<option <?php if($flag==1 && $prix==3){echo " selected ";}?> value="3">plus de 2000</option>
</select></p>
<p>velo <input type="checkbox" name="velo" value="1" <?php if($flag==1){if(isset($velo)){echo " checked";}} ?>> voiture <input type="checkbox" name="voiture" value="1" <?php if($flag==1){if(isset($voiture)){echo " checked";}} ?>></p>
<p>Neuf <input type="radio" name="etat" value="neuf" <?php if($flag==1){if($etat=="neuf"){echo " checked";}} ?>> occasion <input type="radio" name="etat" value="occasion" <?php if($flag==1){if($etat=="occasion"){echo " checked";}} ?>></p>
<p>Couleurs :</p>
<table width="252" border="0" cellspacing="2" cellpadding="0">
<tr>
<td><input type="checkbox" name="couleur[]" value="blanc" <?php if($flag==1){if(coche("blanc")){echo " checked";}}?>></td>
<td>
<p>blanc</p>
</td>
<td><input type="checkbox" name="couleur[]" value="rouge" <?php if($flag==1){if(coche("rouge")){echo " checked";}}?>></td>
<td>
<p>rouge</p>
</td>
<td><input type="checkbox" name="couleur[]" value="bleu" <?php if($flag==1){if(coche("bleu")){echo " checked";}}?>></td>
<td>
<p>bleu</p>
</td>
</tr>
<tr>
<td><input type="checkbox" name="couleur[]" value="noir" <?php if($flag==1){if(coche("noir")){echo " checked";}}?>></td>
<td>
<p>noir</p>
</td>
<td><input type="checkbox" name="couleur[]" value="vert" <?php if($flag==1){if(coche("vert")){echo " checked";}}?>></td>
<td>
<p>vert</p>
</td>
<td><input type="checkbox" name="couleur[]" value="orange" <?php if($flag==1){if(coche("orange")){echo " checked";}}?>></td>
<td>
<p>orange</p>
</td>
</tr>
</table>
<p>Nb de résultats à afficher par page <select name="increment" size="1">
<option <?php if($flag==1 && $increment==5){echo " selected ";}?> value="5">5</option>
<option <?php if($flag==1 && $increment==10){echo " selected ";}?> value="10">10</option>
<option <?php if($flag==1 && $increment==15){echo " selected ";}?> value="15">15</option>
<option <?php if($flag==1 && $increment==20){echo " selected ";}?> value="20">20</option>
</select></p>
<p>Nb de liens de page visibles <select name="max_pages_vues" size="1">
<option <?php if($flag==1 && $max_pages_vues==5){echo " selected ";}?> value="5">5</option>
<option <?php if($flag==1 && $max_pages_vues==10){echo " selected ";}?> value="10">10</option>
<option <?php if($flag==1 && $max_pages_vues==15){echo " selected ";}?> value="15">15</option>
<option <?php if($flag==1 && $max_pages_vues==20){echo " selected ";}?> value="20">20</option>
</select></p>
<p><input type="submit" name="submit"></p>
<p></p>
</form>
<p>
<?php
if($i>0){
echo "<p class='cadre'>";
if(!$nb_de_lignes){echo "Aucun résultat - Choissisez d'autres critères";
exit;
}
echo "nb réponses trouvée $nb_de_lignes <br>";
echo "nb de pages $nb_de_pages <br>";
//echo "critere $critere <br>";
//echo "inc $increment --- debut $debut <hr>";
$sql=mysql_query("SELECT * FROM csv where $critere LIMIT $debut, $increment ", $connexion);
?>
<?php
//------- affichage du lien debut
if($flagpage==1 && $page > $max_pages_vues){?><a href="Index.php?page=1&flag=1"><strong>Debut</strong></a> | <?php } ?>
<?php
//------- affichage du lien page précedente
if($flagpage==1 && $page > 1){ ?><a href="Index.php?page=<?php echo $page-1 ?>&flag=1"><strong>Prec </strong></a><?php } ?>
<?php
//-- compte et affiche les pages selon la variable $max_pages_vues
for($i=$depart_boucle;$i<=$fin_boucle;$i++){?><a href="Index.php?page=<?php echo $i ?>&flag=1"><?php
if($flagpage==1 && $i == $page ){echo "<b> $i</b>";}// met en gras le lien selectionne
else echo $i; ?></a>| <?php }
if($fin_boucle < $nb_de_pages){echo " ...";} // ajoute 3 points tant que la plage affichee n'atteint pas la dernière page
?>
<?php
//----- page suivante - idem que precedente
if($flagpage==1 && $page < $nb_de_pages){?><a href="Index.php?page=<?php echo $page+1 ?>&flag=1"><strong>Suiv</strong></a> <?php } ?><?php
//-------fin idem que debut
if($flagpage==1 && $page < $nb_de_pages){?><a href="Index.php?page=<?php echo $nb_de_pages; ?>&flag=1">| <strong>Fin</strong></a> | <?php } ?><br />
<br />
</p>
<table width="284" border="1" cellspacing="2" cellpadding="0">
<tr>
<td>prix</td>
<td>velo</td>
<td>voiture</td>
<td>etat</td>
<td>couleur</td>
</tr>
<?php while($res=mysql_fetch_object($sql)){?>
<tr>
<td><?php echo $res->prix ?></td>
<td><?php echo $res->velo ?></td>
<td><?php echo $res->voiture ?></td>
<td><?php echo $res->etat ?></td>
<td><?php echo $res->couleur ?></td>
</tr>
<?php } ?>
</table>
</p><?php } ?>
<p></p>
</html>
config.php
<?php //Base name : $DBName= "csv"; //Nom d'utilisateur : $userName = "root"; //Mot de passe : $DBpasswd = ""; //Chemin sgbd : $DBhost = "localhost"; ?>
et pour finir un bout de ma BDD csv.sql
DROP TABLE IF EXISTS 'csv';
CREATE TABLE 'csv' (
'id' int(11) default NULL,
'voiture' tinyint(4) default NULL,
'etat' varchar(15) default NULL,
'velo' tinyint(4) default NULL,
'prix' int(11) default NULL,
'couleur' varchar(20) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO 'csv' VALUES ('1','1','neuf','1','100','rouge');
INSERT INTO 'csv' VALUES ('2','1','neuf','1','103','rouge');
INSERT INTO 'csv' VALUES ('3','0','neuf','1','106','rouge');
INSERT INTO 'csv' VALUES ('4','0','neuf','1','109','rouge');
INSERT INTO 'csv' VALUES ('5','0','neuf','1','112','rouge');
INSERT INTO 'csv' VALUES ('6','0','neuf','1','115','rouge');
INSERT INTO 'csv' VALUES ('7','1','neuf','1','118','rouge');
INSERT INTO 'csv' VALUES ('8','1','neuf','1','121','rouge');
INSERT INTO 'csv' VALUES ('9','1','neuf','0','124','rouge');
INSERT INTO 'csv' VALUES ('10','1','neuf','0','127','rouge');
INSERT INTO 'csv' VALUES ('11','1','neuf','0','130','rouge');
INSERT INTO 'csv' VALUES ('12','1','neuf','0','133','rouge');
INSERT INTO 'csv' VALUES ('13','1','neuf','1','136','rouge');
INSERT INTO 'csv' VALUES ('14','1','neuf','1','139','bleu');
INSERT INTO 'csv' VALUES ('15','1','neuf','1','142','bleu');
INSERT INTO 'csv' VALUES ('16','1','neuf','1','145','bleu');
INSERT INTO 'csv' VALUES ('17','1','neuf','1','148','bleu');
INSERT INTO 'csv' VALUES ('18','1','neuf','1','151','bleu');
INSERT INTO 'csv' VALUES ('19','1','neuf','0','154','bleu');
INSERT INTO 'csv' VALUES ('20','1','neuf','0','157','bleu');
INSERT INTO 'csv' VALUES ('21','1','neuf','0','160','bleu');
INSERT INTO 'csv' VALUES ('22','1','neuf','0','163','bleu');
INSERT INTO 'csv' VALUES ('23','1','neuf','1','166','bleu');
INSERT INTO 'csv' VALUES ('24','0','neuf','1','169','bleu');
INSERT INTO 'csv' VALUES ('25','0','neuf','1','172','orange');
INSERT INTO 'csv' VALUES ('26','0','neuf','1','175','orange');
INSERT INTO 'csv' VALUES ('27','0','neuf','1','178','orange');
INSERT INTO 'csv' VALUES ('28','1','occasion','1','181','orange');
INSERT INTO 'csv' VALUES ('29','1','occasion','1','184','orange');
INSERT INTO 'csv' VALUES ('30','1','occasion','1','187','orange');
INSERT INTO 'csv' VALUES ('31','1','occasion','1','190','orange');
INSERT INTO 'csv' VALUES ('32','0','occasion','1','193','orange');
INSERT INTO 'csv' VALUES ('33','0','occasion','1','196','orange');
INSERT INTO 'csv' VALUES ('34','0','occasion','1','199','orange');
INSERT INTO 'csv' VALUES ('35','0','occasion','1','202','orange');
INSERT INTO 'csv' VALUES ('36','1','occasion','0','205','orange');
INSERT INTO 'csv' VALUES ('37','1','occasion','0','208','orange');
INSERT INTO 'csv' VALUES ('38','1','occasion','0','211','orange');
INSERT INTO 'csv' VALUES ('39','1','occasion','0','214','orange');
INSERT INTO 'csv' VALUES ('40','1','occasion','1','217','noir');
INSERT INTO 'csv' VALUES ('41','1','occasion','1','220','noir');
... J'abrège...
A voir également:
- Problème pour faire marcher ce script
- Comment faire marcher chromecast - Guide
- Script vidéo youtube - Guide
- Ghost script - Télécharger - Polices de caractères
- Mas script - Accueil - Windows
- Script cmd - Guide
1 réponse
si tu ne te connectes pas à ta base c'est à cause de ton config
il manque la ligne mysql_connect
mets ca dans ton fichier config
<?php
//Base name :
$DBName= "csv";
//Nom d'utilisateur :
$userName = "root";
//Mot de passe :
$DBpasswd = "";
//Chemin sgbd :
$DBhost = "localhost";
$link = @mysql_connect($DBhost ,$userName ,$DBpasswd ) or mysqlerr(mysql_error());
@mysql_select_db($DBName) or mysqlerr(mysql_error());
?>
il manque la ligne mysql_connect
mets ca dans ton fichier config
<?php
//Base name :
$DBName= "csv";
//Nom d'utilisateur :
$userName = "root";
//Mot de passe :
$DBpasswd = "";
//Chemin sgbd :
$DBhost = "localhost";
$link = @mysql_connect($DBhost ,$userName ,$DBpasswd ) or mysqlerr(mysql_error());
@mysql_select_db($DBName) or mysqlerr(mysql_error());
?>
???
ça donne quoi si tu fais un echo $sql ????
Par contre, augustin, tu devrais creer un fichier fonction.php dans lequel tu mets toutes tes fonctions. et faire un "include("fonction.php"); le code de ton index.php serai déjà plus propre