Requette sql et une boucle

Petit nouveau ! | 6 Messages

17 juin 2009, 21:49

Bonjour :D

Alors voila , j'ai un petit probleme de reflexion. j'essaye de faire une page ou une liste de tout les personnage apparaittra mais chaque personnage a une categories de personnage(je vais faire un schéma pour être plus clair ^^)
ex:

famille Uzumaki(categories_personnage)
>>Naruto(personnage)
>>Yondaime(personnage)


famille uchiwa(categories_personnage)
>>Sasuke(personnage)
>>Itachi(personnage)

je recapiltulle je veux une page qui se presentera sous la forme de mon exemple, pour cela j'utilise 2 table "categories_personnage" et "personnage"
categories_personnage
>>id_categories_personnage
>>nom_categories_personnage
>>

Personnage
>>id
>>NOM
>>poids
>>taille
>>categories

voila je doit faire une requett sql et une boucle pr faire apparaitre ma page sous la forme de mon exemple mais je vois pas comment .
Merci :D

ViPHP
ViPHP | 3300 Messages

17 juin 2009, 22:04

regardes les fonctions mysql(i) de php

fr.php.net/mysqli
fr.php.net/mysql
Fait du php depuis que ca existe ou presque :)

Petit nouveau ! | 6 Messages

19 juin 2009, 10:33

je n'ai pas compris :(

Petit nouveau ! | 6 Messages

24 juin 2009, 13:06

Code : Tout sélectionner

<form action="liste_lignescan.php" method="post" enctype="multipart/form-data"> <label for="titre">Titre</label><input type="text" name="titre" value="<?php echo $titre; ?>"/><br /> <label for="numero">Numero</label><input type="text" name="numero" value="<?php echo $numero; ?>"/><br /> <label for="scantrad">Scantrad</label><input type="text" name="scantrad" value="<?php echo $scantrad; ?>"/><br /> <?php for($i=0;$i<15;$i++) { echo'<input type="file" name="scan'.$i.'"/><br />'; } ?> <script> function create_champ(i) { var i2 = i + 1; document.getElementById(+i).innerHTML = '<input type="file" name="scan'+i+'"></span>'; document.getElementById(+i).innerHTML += (i <= 25) ? '<br /><span id="'+i2+'"><a href="javascript:create_champ('+i2+')">Ajouter un scan</a></span>' : ''; } </script> <span id="16"><a href="javascript:create_champ(16)">Ajouter un scan</a></span> <input type="hidden" value="<?php echo $id; ?>"/> <center> <input type="submit" value="Ajouter/Modifier"/> </center>
comment suis je censer traiter(inserer dans ma base de donné) sa ?
:(

Eléphant du PHP | 141 Messages

24 juin 2009, 15:50

Tu veux récupérer la liste des familles et des personnages depuis ta BDD et les afficher ensuite par famille ? C'est bien ça ?

Dans ce cas, le plus simple est de faire une requête qui récupère les familles :
$sql_familles = "SELECT * FROM familles";
Puis tu boucle en affichant le nom de la famille, et dans cette boucle, tu appelle à chaque fois tous les personnages de la famille courante...
$sql_persos = "SELECT * FROM personnages WHERE id_famille=X";
où X est l'identifiant de la famille


Après tu adaptes selon le nom de tes tables bien sûr :wink:

Petit nouveau ! | 6 Messages

24 juin 2009, 18:10


$ret2=mysql_query('SELECT nom_categorie_personnage
                   FROM categorie_personnage
				   ');
$don2=mysql_fetch_array($ret2);	
$ret3=mysql_query('SELECT *
                   FROM personnage WHERE categorie_personnage="'.$don2['nom_categorie_personnage'].'"
				   ');
$don3=mysql_fetch_array($ret3);
while($don2=mysql_fetch_array($ret2))
{
echo''. $don2['nom_categorie_personnage'].'<br />';
while($don3=mysql_fetch_array($ret3))
{
echo''.$don3['Prénom'].'<br />';
}
}
sa marche mais bon quand j'aurais plus de 10 categorie ,sa va faire mal au serveur :? (trop de requette)

Eléphant du PHP | 254 Messages

24 juin 2009, 23:42

fait une seule requête qui liste tes personnages, en faisant une jointure pour récupérer la désignation de leur catégorie, en ordonnant par catégorie, genre :

Code : Tout sélectionner

SELECT p.nom, p.prenom, c.nom_categorie_personnage FROM personnage p LEFT JOIN categorie_personnage c ON p.id_categories_personnage=c.id_categories_personnage ORDER BY c.nom_categorie_personnage;
Quand tu boucle sur ton tableau de résultat tu n'a plus qu'a repérer quand est ce qu'il faut afficher la catégorie ( puisque cette valeur est présente dans chaque ligne de ton tableau, et donc pour chaque personnage, il te faut dond afficher la catégorie quand le nom de catégorie change)

Mais essaye d'afficher ce genre de résultat et tu verras tout de suite