Forum de discussion et d'aide au php
Vous n'êtes pas identifié.
|
Regles d'utilisation des forums : pensez à toujours les respecter si vous désirez obtenir des réponses rapides. FAQ : pensez à toujours chercher dedans si la réponse à votre question est dedans. Proposez vos news : si vous avez un evenement à annoncer le chat : venez discuter de php. |
||
Salut à tous, ce message concerne encore mon projet quelques posts plus bas.
Voila la façon que j'ai trouvé pour individualiser les liens dans ma base de donnée, le seul truc c'est qu'avec une version test (news) ça fonctionne très bien (je fait la connexion avec la base), mais dès que j'applique le systéme à mon concept de pays d'auteurs etc...fonctionne plus. Je vous soumet donc les 2 versions en codes :
(içi ça marche)
<?php require_once('file:///C|/Program%20Files/EasyPHP1-8/www/site%20portail/Connections/connexions.php'); ?>
<?php
$colname_news = "0";
if (isset($HTTP_GET_VARS['idnews'])) {
$colname_news = (get_magic_quotes_gpc()) ? $HTTP_GET_VARS['idnews'] : addslashes($HTTP_GET_VARS['idnews']);
}
mysql_select_db($database_connexions, $connexions);
$query_news = sprintf("SELECT titre, contenu,idnews,`date` FROM news WHERE idnews=%s", $colname_news);
$news = mysql_query($query_news, $connexions) or die(mysql_error());
$row_news = mysql_fetch_assoc($news);
$totalRows_news = mysql_num_rows($news);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<table width="100%" border="0" cellpadding="0">
<tr>
<td width="39%">date</td>
<td width="61%"><?php echo $row_news['date']; ?></td>
</tr>
<tr>
<td>titre</td>
<td><?php echo $row_news['titre']; ?></td>
</tr>
<tr>
<td>contenu</td>
<td><?php echo $row_news['contenu']; ?></td>
</tr>
<tr>
<td>detail</td>
<td>plus info</td>
</tr>
</table>
</body>
</html>
<?php
mysql_free_result($news);
?>puis
<?php require_once('file:///C|/Program%20Files/EasyPHP1-8/www/site%20portail/Connections/connexions.php'); ?>
<?php
mysql_select_db($database_connexions, $connexions);
$query_news = "SELECT titre, contenu, date FROM news ORDER BY titre ASC";
$news = mysql_query($query_news, $connexions) or die(mysql_error());
$row_news = mysql_fetch_assoc($news);
$totalRows_news = mysql_num_rows($news);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<table width="21%" border="0" cellpadding="0">
<tr>
<td width="79%">date</td>
<td width="3%">titre</td>
<td width="18%">contenu</td>
</tr>
<?php do { ?>
<tr>
<td><a href="file:///C|/Program%20Files/EasyPHP1-8/www/site%20portail/Portail/Test/detailsnews.php?idnews=<?php echo $row_news['titre']; ?>"><?php echo $row_news['date']; ?></a></td>
<td> </td>
<td> </td>
</tr>
<?php } while ($row_news = mysql_fetch_assoc($news)); ?>
</table>
</body>
</html>
<?php
mysql_free_result($news);
?>Et voila ma version adaptée au projet :
<?php require_once('file:///C|/Program%20Files/EasyPHP1-8/www/site%20portail/Connections/connexions.php'); ?>
<?php
mysql_select_db($database_connexions, $connexions);
$query_pays = "SELECT DISTINCT pays, idpays FROM ecrivains ORDER BY pays ASC";
$pays = mysql_query($query_pays, $connexions) or die(mysql_error());
$row_pays = mysql_fetch_assoc($pays);
$totalRows_pays = mysql_num_rows($pays);
?>
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="file:///C|/Program%20Files/EasyPHP1-8/www/site%20portail/Portail/Test/style.css" rel="stylesheet" type="text/css">
</head>
<body>
<div align="center">
<table width="75%" border="0">
<!--DWLayoutTable-->
<tr>
<td width="776" height="57" valign="top"> <div align="center">
<ul>
<?php do { ?>
<li> <a href="file:///C|/Program%20Files/EasyPHP1-8/www/site%20portail/Portail/Test/ecrivainsparpays.php?idpays=<?php echo $row_pays['pays']; ?>"><?php echo $row_pays['pays']; ?></a></li>
<?php } while ($row_pays = mysql_fetch_assoc($pays)); ?>
</ul>
</div></td>
</tr>
</table>
</div>
</body>
</html>
<?php
mysql_free_result($pays);
?>puis
<?php require_once('file:///C|/Program%20Files/EasyPHP1-8/www/site%20portail/Connections/connexions.php'); ?>
<?php
$colnam_pays = "0";
if (isset($HTTP_GET_VARS['idpays'])) {
$colnam_pays = (get_magic_quotes_gpc()) ? $HTTP_GET_VARS['idpays'] : addslashes($HTTP_GET_VARS['idpays']);
}
mysql_select_db($database_connexions, $connexions);
$query_pays = sprintf("SELECT DISTINCT nomecrivains, prenomecrivains,idpays FROM ecrivains WHERE idpays=%s", $colnam_pays);
$pays = mysql_query($query_pays, $connexions) or die(mysql_error());
$row_pays = mysql_fetch_assoc($pays);
$totalRows_pays = mysql_num_rows($pays);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<table width="100%" border="0" cellpadding="0">
<tr>
<td> </td>
</tr>
<tr>
<td> <?php do { ?>
<?php echo $row_pays['nomecrivains']; ?> <?php echo $row_pays['prenomecrivains']; ?>
<?php } while ($row_pays = mysql_fetch_assoc($pays)); ?> </td>
</tr>
</table>
</body>
</html>
<?php
mysql_free_result($pays);
?>içi le message d'erreur est "CHAMP 'PAYS' INCONNU DANS WHERE CLOSE
Help please je doit finir ce projet demain, tout est bouclé, la base est prete, seul ce problème m'empèche de continuer.
Hors ligne
deja, si tu fait tes include sur des file://, tu aura des problemes lors de ton passage sur un serveur de production (ca fonctionne que en local, le file:// )
je suppose que c'est une erreur sql qu'il te mets...
le probleme, c'est que tu n'a pas de champ 'pays' ...
pourrait-tu copier/coller l'erreur exacte ?
Hors ligne
Quand je clique sur un pays (sénégal dans l'exemple) il arrive bien a reconnaitre celui ci mais note : Champ 'Sénégal' inconnu dans where clause
Hors ligne
echo $query_pays ne marche pas au fait j'arrive a afficher la liste des pays dans ma premiere page pays.pays mais dans la deuxieme page ecrivains je n'arrive pas a afficher les ecrivains de ce pays et il me mets comme message champ'senegal' inconnu dans where clause (par exemple pour le senegal) je ne sai pas si c'est au niveau du cle primaire car chaque pays a un id qui n'est pas une cle primaire et la condition est mise sur ce id
Hors ligne
si l'affichage de $query_pays ne fonctionne pas, c'est que tu l'a placé au mauvais endroit...
mets le entre le moment ou tu définit la variable, et le mysql_query
sinon, forcément, ca ne fonctionnera pas si tu le mets avant, la variable n'est pas définie...
Hors ligne
Ok g trouvé ça marche mais le seul truc maintenant c'est qu'il me répète les pays autant de fois qu'il y a d'écrivain attachés au pays. Voila le code, ou est le problème, je pense qu'une fois ce pb résolu jre pourrai boucler le projet :
code pour la page pays(page des liens)
<?php require_once('../../Connections/connexions.php'); ?>
<?php
mysql_select_db($database_connexions, $connexions);
$query_pays = "SELECT * FROM ecrivains ORDER BY pays ASC";
$pays = mysql_query($query_pays, $connexions) or die(mysql_error());
$row_pays = mysql_fetch_assoc($pays);
$totalRows_pays = mysql_num_rows($pays);
?>
<?php do { ?>
<li> <a href="ecrivainsparpays.php?idpays=<?php echo $row_pays['idpays']; ?>" target="cadreecrivains1"><?php echo $row_pays['pays']; ?></a></li>
<?php } while ($row_pays = mysql_fetch_assoc($pays)); ?>code pour la page ecrivains (page ou j'affiche mes donnees en fonction des liens)
<?php require_once('../../Connections/connexions.php'); ?>
<?php
$colname_pays = "0";
if (isset($HTTP_GET_VARS['idpays'])) {
$colname_pays = (get_magic_quotes_gpc()) ? $HTTP_GET_VARS['idpays'] : addslashes($HTTP_GET_VARS['idpays']);
}
mysql_select_db($database_connexions, $connexions);
$query_pays = sprintf("SELECT * FROM ecrivains WHERE idpays=%s", $colname_pays);
$pays = mysql_query($query_pays, $connexions) or die(mysql_error());
$row_pays = mysql_fetch_assoc($pays);
$totalRows_pays = mysql_num_rows($pays);
?>
<td height="39"><?php do { ?>
<?php echo $row_pays['nomecrivains']; ?> <?php echo $row_pays['prenomecrivains']; ?>
<?php } while ($row_pays = mysql_fetch_assoc($pays)); ?> </table>probleme sur la page ecrivain il affiche autant de fois le nom du pays qu'il ya d'ecrivains c'est a dire pour 10 ecrivains algeriens il affiche 10 fois algerie. quand je modifie la requete en mettant "SELECT DISTINCT pays FROM ecrivains ORDER BY pays ASC", sur la page ecrivain j'ai une fois le nom de chaque pays,ce que je souhaite mais sur la deuxieme il met "Erreur de syntaxe près de '=
Notice: Undefined index: idpays in c:\\progra' à la ligne 1"
Hors ligne
utilise un GROUP BY :
SELECT * FROM ecrivains WHERE idpays=%s GROUP BY idpays
et tu n'aura qu'un seul pays d'affiché à chaque fois...
SQl : SELECT
Hors ligne
A voir mes premiers tests ça à l'air de marcher ! Merci beaucoup !
Hors ligne