Page 1 sur 1

fusion de cellules issues de sql dans page php

Posté : 02 sept. 2016, 15:01
par mbk28
bonjour à tous,

je sais qu'aujourd'hui les connections sql - php ne se font plus, mais je suis un peu trop agé pour apprendre un nouveau langage et la majeure partie de mon site est déjà comme cela.
j'ai donc mes données issues d'une base sql que j'ai réussi à afficher et à trier, mais certaines données devraient être fusionnées: les sports (athlétisme, canoe...) afin que la première colonne du tableausoit fusionné fusionné et et les disciplines d'un sport (canoe slalom, canoe sprint, ...) afin que la deuxième colonne du tableau soit fusionné si elle existe.
ma requette:

Code : Tout sélectionner

<?php if (!function_exists("GetSQLValueString")) { function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") { if (PHP_VERSION < 6) { $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue; } $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue); switch ($theType) { case "text": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "long": case "int": $theValue = ($theValue != "") ? intval($theValue) : "NULL"; break; case "double": $theValue = ($theValue != "") ? doubleval($theValue) : "NULL"; break; case "date": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "defined": $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; break; } return $theValue; } } mysql_select_db($database_jo, $jo); $query_Rs6aout = "SELECT * FROM programme, epreuve, jour, jeux, categorie, sexe, competition, poids WHERE programme.JeuxID=jeux.JeuxID AND programme.JourID=jour.JourID AND programme.EpreuveID=epreuve.EpreuveID AND epreuve.CategorieID=categorie.CategorieID AND epreuve.SexeID=sexe.SexeID AND epreuve.CompetID=competition.CompetID AND epreuve.PoidsID=poids.PoidsID AND programme.JeuxID=62 AND programme.JourID=219 ORDER BY competition.Sport, competition.Disicipline, programme.Heure, epreuve.Epreuve, programme.Obs, programme.Finale"; $Rs6aout = mysql_query($query_Rs6aout, $jo) or die(mysql_error()); $row_Rs6aout = mysql_fetch_assoc($Rs6aout); $totalRows_Rs6aout = mysql_num_rows($Rs6aout); ?>
et mon tableau:

Code : Tout sélectionner

<td> <?php do { ?> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="20%" class="disc"><img src="../images/fede/<?php echo $row_Rs6aout['logo']; ?>" alt="fede" width="25" height="25"/>&nbsp;<?php echo $row_Rs6aout['Sport']; ?>&nbsp;<?php echo $row_Rs6aout['Disicipline']; ?></td> <td width="10%"><?php echo $row_Rs6aout['Heure']; ?></td> <td><? if ($row_Rs6aout['Finale']==1) echo "<strong>"."<em>"; ?><?php echo $row_Rs6aout['Epreuve']; ?>&nbsp;<?php echo $row_Rs6aout['Categorie']; ?>&nbsp;<?php echo $row_Rs6aout['Sexe']; ?>&nbsp;<?php echo $row_Rs6aout['Obs']; ?><? if ($row_Rs6aout['Finale']==1) echo "</em>"."</strong>"; ?></td> </tr> </table> <?php } while ($row_Rs6aout = mysql_fetch_assoc($Rs6aout)); ?> </td>
si vous désirez la page, vous pouvez me la demander

merci pour votre aide

Re: fusion de cellules issues de sql dans page php

Posté : 02 sept. 2016, 20:09
par Aureusms
Je te rassure les requêtes sql via "mysql" se font encore très très très souvent... Ce qui va devenir obsolète (ou qu'il l'est déjà avec PHP 7.0) est la bibliothèque mysql que tu utilises.
Suite au changement de propriétaire (de Sun à Oracle), Mysql a eu un petit frère et est maintenant concurrencé par un autre moteur sql : Maria DB. C'est juste côté moteur car les bibliothèques pour accéder et manipuler les données sont identiques. Aussi, tu peux maintenant utiliser les bibliothèques PDO ou mysqli pour remplacer la bibliothèque PHP mysql.
A noter que PHP 6.0 n'existera pas, on est passé de la 5.6 à la 7.0 directement.

Pour ton problème, il te suffit d'utiliser les jointures. Cela restera plus simples à manipuler et plus rapides pour extraire les résultats.

Ta requête pourrait s'écrire avec deux exemples de colonnes : colonne1 et colonne8 issues de la table programme et
$query_Rs6aout = "
SELECT programme.colonne1, 
	jour.colonne8
FROM programme
LEFT JOIN jeux ON (programme.JeuxID=jeux.JeuxID)
LEFT JOIN jour ON (programme.JourID=jour.JourID)
LEFT JOIN epreuve ON (programme.EpreuveID=epreuve.EpreuveID)
LEFT JOIN categorie ON (epreuve.CategorieID=categorie.CategorieID)
LEFT JOIN sexe ON (epreuve.SexeID=sexe.SexeID)
LEFT JOIN competition ON (epreuve.CompetID=competition.CompetID)
LEFT JOIN poids ON (epreuve.PoidsID=poids.PoidsID)
WHERE
	programme.JeuxID=62 
AND programme.JourID=219 
ORDER BY 
	competition.Sport ASC, 
	competition.Disicipline ASC, 
	programme.Heure ASC, 
	epreuve.Epreuve ASC, 
	programme.Obs ASC, 
	programme.Finale ASC";
Ensuite libre à toi de fusionner la colonne1 et colonne8 dans ta cellule de tableau.

Re: fusion de cellules issues de sql dans page php

Posté : 02 sept. 2016, 20:25
par mbk28
merci pour ton aide dont je comprend la logique, mais lorsque je rentre ton code, Dream CS6 me met ce message
Unknown column 'programme.colonne1' in 'field list', j'ai essayé en ne laissant que SELECT FROM programme
mais toujours des messages d'erreur

Re: fusion de cellules issues de sql dans page php

Posté : 05 sept. 2016, 16:27
par Ryle
Bonjour,

Si tu n'as pas de colonne nommée "colonne1" dans ta table "programme", tu peux essayer avec des noms de colonnes existant et dont tu voudrais récupérer le contenu avec cette requête... tu peux aussi mettre un * mais c'est moins performant et plus compliqué à maintenir :)