en fait c'est un tuto que j'ai trouvé et que j'ai tenté d'adapter...
voici le nouveau code, il n'y a guère de changement...
//tableau à 4 colonnes
$NbrCol = 4;
$result = mysql_query($sql);
$NbreData = mysql_num_rows($result);
if ($result == 0) {
echo 'Pas de photo pour le moment.';
}
else {
while ($data = mysql_fetch_array($req)) {
$ref = $data['ref_a'];
$url = $data['url_a'];
$lieu = $data['lieu_a'];
$page = '<a href=" '.$url.' ">'.$lieu.'</a>';
$autdat = nl2br(htmlentities(trim($data['auteurdate_a'])));
}
}
// affichage
$NbrLigne = 0;
if ($NbreData != 0) {
$j = 1;
echo '<table border="1" cellspacing="8">';
while ($val = mysql_fetch_array($result)) {
if ($j%$NbrCol == 1) {
$NbrLigne++;
echo "<tr>";
$fintr = 0;
}
echo '<td>';
// AFFICHAGE des DONNEES
echo '<br />';
echo $val=$ref;
echo ' ','-',' ';
echo $val=$page;
echo '<br />';
echo $val=$autdat;
// ------------------------------------------
echo '</td>';
if ($j%$NbrCol == 0) {
echo "</tr>";
$fintr = 1;
}
$j++;
}
if ($fintr!=1) { echo '</tr>'; }
echo '</table>';
}
// on libère l'espace mémoire alloué pour cette requête
mysql_free_result ($req);
mysql_close();
?>
j'ai mes colonnes mais avec la dernière donnée et non toutes les données.
Avec ce tuto, je ne comprends pas pourquoi je dois après m'être connectée à ma base et à ma table
$sql = "SELECT ref_a, lieu_a, auteurdate_a, url_a FROM pgfoto ORDER BY ref_a";
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
je dois faire ceci
$result = mysql_query($sql);
$NbreData = mysql_num_rows($result);
"result" et "NbreData"
Alors que dans un code au plus simple
// requête
$sql = "SELECT ref_a, lieu_a, auteurdate_a, url_a FROM pgfoto ORDER BY ref_a";
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
//-----------------------
$result = mysql_num_rows($req);
if ($result == 0) {
echo 'Pas de photo pour le moment.';
}
else {
while ($data = mysql_fetch_array($req)) {
$url = $data['url_a'];
$lieu = $data['lieu_a'];
$page = '<a href=" '.$url.' ">'.$lieu.'</a>';
echo '<br />';
echo $page;
echo '<br />';
// echo ' '; // implique un espace
echo nl2br(htmlentities(trim($data['auteurdate_a'])));
echo '<br />';
}
}
// on libère l'espace mémoire alloué pour cette requête
mysql_free_result ($req);
// on ferme la connection à la base de données.
mysql_close ();
Là, tout s'affiche correctement, mais ligne après ligne.
pour gagner de la place, je voulais un tableau de 4 colonnes et nbre de ligne indéterminée et infinie...
Je comprends bien que
while ($data = mysql_fetch_array($req)) {
$ref = $data['ref_a'];
$url = $data['url_a'];
$lieu = $data['lieu_a'];
$page = '<a href=" '.$url.' ">'.$lieu.'</a>';
$autdat = nl2br(htmlentities(trim($data['auteurdate_a'])));
}
n'est pas à sa place et ce n'est pas faute de l'avoir mis un peu de partout...
et que ceci
while ($val = mysql_fetch_array($result))
echo $val=$page;
echo '<br />';
echo $val=$autdat;
n'est pas correct mais je ne sais pas quoi mettre.

c'est pour ça que je dis que l'on va finir par "gronder" car je ne comprends rien et qui semble si simple

en fait c'est un tuto que j'ai trouvé et que j'ai tenté d'adapter...
voici le nouveau code, il n'y a guère de changement...
[PHP]//tableau à 4 colonnes
$NbrCol = 4;
$result = mysql_query($sql);
$NbreData = mysql_num_rows($result);
if ($result == 0) {
echo 'Pas de photo pour le moment.';
}
else {
while ($data = mysql_fetch_array($req)) {
$ref = $data['ref_a'];
$url = $data['url_a'];
$lieu = $data['lieu_a'];
$page = '<a href=" '.$url.' ">'.$lieu.'</a>';
$autdat = nl2br(htmlentities(trim($data['auteurdate_a'])));
}
}
// affichage
$NbrLigne = 0;
if ($NbreData != 0) {
$j = 1;
echo '<table border="1" cellspacing="8">';
while ($val = mysql_fetch_array($result)) {
if ($j%$NbrCol == 1) {
$NbrLigne++;
echo "<tr>";
$fintr = 0;
}
echo '<td>';
// AFFICHAGE des DONNEES
echo '<br />';
echo $val=$ref;
echo ' ','-',' ';
echo $val=$page;
echo '<br />';
echo $val=$autdat;
// ------------------------------------------
echo '</td>';
if ($j%$NbrCol == 0) {
echo "</tr>";
$fintr = 1;
}
$j++;
}
if ($fintr!=1) { echo '</tr>'; }
echo '</table>';
}
// on libère l'espace mémoire alloué pour cette requête
mysql_free_result ($req);
mysql_close();
?>[/PHP]
j'ai mes colonnes mais avec la dernière donnée et non toutes les données.
Avec ce tuto, je ne comprends pas pourquoi je dois après m'être connectée à ma base et à ma table
[PHP]$sql = "SELECT ref_a, lieu_a, auteurdate_a, url_a FROM pgfoto ORDER BY ref_a";
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());[/PHP]
je dois faire ceci
[PHP]$result = mysql_query($sql);
$NbreData = mysql_num_rows($result);[/PHP]
"result" et "NbreData"
Alors que dans un code au plus simple
[PHP]// requête
$sql = "SELECT ref_a, lieu_a, auteurdate_a, url_a FROM pgfoto ORDER BY ref_a";
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
//-----------------------
$result = mysql_num_rows($req);
if ($result == 0) {
echo 'Pas de photo pour le moment.';
}
else {
while ($data = mysql_fetch_array($req)) {
$url = $data['url_a'];
$lieu = $data['lieu_a'];
$page = '<a href=" '.$url.' ">'.$lieu.'</a>';
echo '<br />';
echo $page;
echo '<br />';
// echo ' '; // implique un espace
echo nl2br(htmlentities(trim($data['auteurdate_a'])));
echo '<br />';
}
}
// on libère l'espace mémoire alloué pour cette requête
mysql_free_result ($req);
// on ferme la connection à la base de données.
mysql_close ();[/PHP]
Là, tout s'affiche correctement, mais ligne après ligne.
pour gagner de la place, je voulais un tableau de 4 colonnes et nbre de ligne indéterminée et infinie...
Je comprends bien que
[PHP]while ($data = mysql_fetch_array($req)) {
$ref = $data['ref_a'];
$url = $data['url_a'];
$lieu = $data['lieu_a'];
$page = '<a href=" '.$url.' ">'.$lieu.'</a>';
$autdat = nl2br(htmlentities(trim($data['auteurdate_a'])));
}[/PHP]
n'est pas à sa place et ce n'est pas faute de l'avoir mis un peu de partout...
et que ceci
[PHP]while ($val = mysql_fetch_array($result))[/PHP]
[PHP]echo $val=$page;
echo '<br />';
echo $val=$autdat;[/PHP]
n'est pas correct mais je ne sais pas quoi mettre.
:arrow: c'est pour ça que je dis que l'on va finir par "gronder" car je ne comprends rien et qui semble si simple :oops: