par
zeus » 18 oct. 2007, 11:31
Voici quelques conseils pour faciliter ton développement et alléger tes codes :
- il est inutile de faire
<?php ... ?>
<?php ...
Si tu n'a aucun caractères entre ?> et <?php, pas la peine de les mettres
- Si tu ne changes pas de base de données, un seul mysql_select_db() suffit
- Il faut éviter les SELECT *, il ne faut récupérer que les champs qui t'intéresse. Pour la 1ere requête, par exemple, SELECT ID_Region suffirait
- Pourquoi toujours récupérer le nombre de résultat de la requête, pas nécessaire si tu ne l'utilise pas
- il vaut mieux parcourir les résultats des requête avec un while () {} plutôt qu'un do {} while () (Permet d'éviter des erreurs si la requête ne retourne aucun résultat)
Voici une version allegée de ton code, a toi de prendre en compte mon dernier conseil.
Non seulement ton code est plus facile à lire, mais en plus, tu verras surement apparaitre des erreurs
<?php
require_once('Connections/connectgl.php');
mysql_select_db($database_connectgl, $connectgl);
$query_region = " SELECT *
FROM t_region
WHERE
Region <> 'France'
ORDER BY Region ASC";
$region = mysql_query($query_region, $connectgl) or die(mysql_error());
$row_region = mysql_fetch_assoc($region);
$colfourn_regionfourn = "379";
if (isset($_SESSION['numfourn'])) {
$colfourn_regionfourn = (get_magic_quotes_gpc()) ? $_SESSION['numfourn'] : addslashes($_SESSION['numfourn']);
}
$query_regionfourn = sprintf(" SELECT
t_fournregion.id_fournregion,
t_fournregion.id_fourn,
t_fournregion.id_region,
t_fournregion.affichez,
t_region.ID_Region,
t_region.Region
FROM
t_fournregion,
t_region
WHERE
t_fournregion.id_fourn = %s
AND t_region.ID_Region = t_fournregion.id_region",
$colfourn_regionfourn);
$regionfourn = mysql_query($query_regionfourn, $connectgl) or die(mysql_error());
$row_regionfourn = mysql_fetch_assoc($regionfourn);
$totalRows_regionfourn = mysql_num_rows($regionfourn);
?>
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php
do {
echo $row_region['ID_Region'];
do {
if( $row_regionfourn['ID_Region'] == $row_region['ID_Region'])
{
echo "ok";
}
} while ($row_regionfourn = mysql_fetch_assoc($regionfourn));
} while ($row_region = mysql_fetch_assoc($region));
?>
</body>
</html>
<?php
mysql_free_result($region);
mysql_free_result($regionfourn);
?>
Voici quelques conseils pour faciliter ton développement et alléger tes codes :
[list][*]il est inutile de faire
[php]<?php ... ?>
<?php ...[/php]
Si tu n'a aucun caractères entre ?> et <?php, pas la peine de les mettres
[*]Si tu ne changes pas de base de données, un seul mysql_select_db() suffit
[*]Il faut éviter les [b]SELECT *[/b], il ne faut récupérer que les champs qui t'intéresse. Pour la 1ere requête, par exemple, [b]SELECT ID_Region[/b] suffirait
[*]Pourquoi toujours récupérer le nombre de résultat de la requête, pas nécessaire si tu ne l'utilise pas
[*]il vaut mieux parcourir les résultats des requête avec un [b]while () {}[/b] plutôt qu'un [b]do {} while ()[/b] (Permet d'éviter des erreurs si la requête ne retourne aucun résultat)[/list]
Voici une version allegée de ton code, a toi de prendre en compte mon dernier conseil.
Non seulement ton code est plus facile à lire, mais en plus, tu verras surement apparaitre des erreurs ;)
[php]<?php
require_once('Connections/connectgl.php');
mysql_select_db($database_connectgl, $connectgl);
$query_region = " SELECT *
FROM t_region
WHERE
Region <> 'France'
ORDER BY Region ASC";
$region = mysql_query($query_region, $connectgl) or die(mysql_error());
$row_region = mysql_fetch_assoc($region);
$colfourn_regionfourn = "379";
if (isset($_SESSION['numfourn'])) {
$colfourn_regionfourn = (get_magic_quotes_gpc()) ? $_SESSION['numfourn'] : addslashes($_SESSION['numfourn']);
}
$query_regionfourn = sprintf(" SELECT
t_fournregion.id_fournregion,
t_fournregion.id_fourn,
t_fournregion.id_region,
t_fournregion.affichez,
t_region.ID_Region,
t_region.Region
FROM
t_fournregion,
t_region
WHERE
t_fournregion.id_fourn = %s
AND t_region.ID_Region = t_fournregion.id_region",
$colfourn_regionfourn);
$regionfourn = mysql_query($query_regionfourn, $connectgl) or die(mysql_error());
$row_regionfourn = mysql_fetch_assoc($regionfourn);
$totalRows_regionfourn = mysql_num_rows($regionfourn);
?>
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php
do {
echo $row_region['ID_Region'];
do {
if( $row_regionfourn['ID_Region'] == $row_region['ID_Region'])
{
echo "ok";
}
} while ($row_regionfourn = mysql_fetch_assoc($regionfourn));
} while ($row_region = mysql_fetch_assoc($region));
?>
</body>
</html>
<?php
mysql_free_result($region);
mysql_free_result($regionfourn);
?> [/php]