je suis novice, du coup je vous préviens d'avance qu'il va y a voir un gros nesting dans ce code ^^"
php
$TOUT=htmlspecialchars($_POST['TOUT']);
$NOM_LIVRE=htmlspecialchars($_POST['NOM_LIVRE']);
$REF_EXEMPLAIRE=htmlspecialchars($_POST['REF_EXEMPLAIRE']);
$GENRE_LIVRE=htmlspecialchars($_POST['GENRE_LIVRE']);
$CATEGORIE_DU_LIVRE=htmlspecialchars($_POST['CATEGORIE_DU_LIVRE']);
$NOM_CENTRE=htmlspecialchars($_POST['NOM_CENTRE']);
if (!empty($TOUT)||!empty($NOM_LIVRE)||!empty($REF_EXEMPLAIRE)||!empty($GENRE_LIVRE)
||!empty($CATEGORIE_DU_LIVRE)||!empty($NOM_CENTRE))
{
//début de la recherche
//on recherche tout (recherche 1)
if (!empty($TOUT))
{
$VALID=1;
//on recherche tous les livre d'abord
$select_livre = "SELECT * FROM LIVRE";
$result_livre = $conn->query($select_livre);
if ($result_livre->num_rows > 0)
{
// output data of each row
while ($row = $result_livre->fetch_assoc())
{
$ID_LIVRE= $row["ID_LIVRE"]; //on garde les livres en mémoire
$ID_NOM_LIVRE= $row["NOM_LIVRE"];
//on recherche tous les centres en association
$select_centre = "SELECT * FROM CENTRE WHERE ID_LIVRE ='$ID_LIVRE'";
$result_centre = $conn->query($select_centre);
if ($result_centre->num_rows > 0)
{
// output data of each row
while ($row = $result_centre->fetch_assoc())
{
$ID_CENTRE = $row["ID_CENTRE"]; //on garde le centre en mémoire
$NOM_CENTRE = $row["NOM_CENTRE"];
$VILLE= $row["VILLE_CENTRE"];
//on recherche les exemplaires
//d'abord on cherche les associations avec les centres
$select_gestion = "SELECT * FROM GESTION_DU_LIVRE WHERE ID_CENTRE ='$ID_CENTRE'";
$result_gestion = $conn->query($select_gestion);
if ($result_gestion->num_rows > 0)
{
// output data of each row
while ($row = $result_gestion->fetch_assoc())
{
$ID_EXEMPLAIRE = $row["ID_EXEMPLAIRE"];
$STOCK = $row["STOCK"];
//on recherche les exemplaires en association avec la gestion
$select_exemplaire = "SELECT * FROM EXEMPLAIRE WHERE ID_EXEMPLAIRE ='$ID_EXEMPLAIRE'";
$result_exemplaire = $conn->query($select_exemplaire);
if ($result_exemplaire->num_rows > 0)
{
// output data of each row
while ($row = $result_gestion->fetch_assoc())
{
$REF_EXEMPLAIRE = $row["REF_EXEMPLAIRE"];
$OCCURENCE_EMPRUNT = $row["OCCURENCE_EMPRUNT"];
$PRIX_EXEMPLAIRE = $row["PRIX_EXEMPLAIRE"];
$DATE_ACHAT = $row["DATE_ACHAT"];
//on recherche les éditeurs
//on recherche les éditeurs en association
$select_edite = "SELECT * FROM EDITE WHERE ID_EXEMPLAIRE ='$ID_EXEMPLAIRE'";
$result_edite = $conn->query($select_edite);
if ($result_edite->num_rows > 0)
{
// output data of each row
while ($row = $result_edite->fetch_assoc())
{
$ID_EDITEUR = $row["ID_EDITEUR"];
$select_editeur = "SELECT * FROM EDITEUR WHERE ID_EDITEUR ='$ID_EDITEUR'";
$result_editeur = $conn->query($select_edite);
if ($result_edite->num_rows > 0)
{
// output data of each row
while ($row = $result_edite->fetch_assoc())
{
$ID_EDITEUR = $row["ID_EDITEUR"];
$NOM_EDITEUR = $row["NOM_EDITEUR"];
}
}
else
{
break
$VALID--;
echo "quelque chose s'est mal passée pendant la recherche de l'éditeur (recherche 1) ID:$ID_EDITEUR<br/>";
}
}
}
else
{
break
$VALID--;
echo "quelque chose s'est mal passée pendant la recherche de l'éditeur en association (recherche 1) ID:$ID_EXEMPLAIRE<br/>";
}
}
}
else
{
break
$VALID--;
echo "quelque chose s'est mal passée pendant la recherche de l'exemplaire (recherche 1) ID:$ID_EXEMPLAIRE<br/>";
}
}
}
else
{
break
$VALID--;
echo "quelque chose s'est mal passée pendant la recherche de la gestion du livre (recherche 1) ID_CENTRE:$ID_CENTRE <br/>";
}
}
}
else
{
break
$VALID--;
echo "quelque chose s'est mal passée pendant l'association centre/livres (recherche 1) ID du centre:$ID_CENTRE <br/>";
}
//on recherche tous les genres
//on recherche d'abord les associations
$select_genre_du_livre = "SELECT * FROM GENRE_DU_LIVRE WHERE ID_LIVRE ='$ID_LIVRE'";
$result_gdl = $conn->query($select_genre_du_livre);
if ($result_gdl->num_rows > 0)
{
// output data of each row
while ($row = $result_gdl->fetch_assoc())
{
$ID_GENRE = $row["ID_GENRE"]; //on garde le genre en mémoire
$select_genre = "SELECT * FROM GENRE WHERE ID_GENRE ='$ID_GENRE'";
$result_genre = $conn->query($select_genre_livre);
if ($result_gdl->num_rows > 0)
{
// output data of each row
while ($row = $result_gdl->fetch_assoc())
{
$GENRE = $row["NOM_GENRE"];
}
}
else
{
break
$VALID--;
echo "quelque chose s'est mal passée pendant la recherche du genre (recherche 1) nom du genre:$NOM_GENRE <br/>";
}
}
}
else
{
break
$VALID--;
echo "quelque chose s'est mal passée pendant l'association genre/livres (recherche 1)ID du livre: $ID_LIVRE ID du genre:$ID_GENRE<br/>";
}
//on retrouve les auteurs du livre
// d'abord on cherche les auteurs en association
$select_exemplaire = "SELECT * FROM AUTEUR_DU_LIVRE WHERE ID_LIVRE ='$ID_LIVRE'";
$result_exemp = $conn->query($select_exemplaire);
if ($result_exemp->num_rows > 0)
{
// output data of each row
while ($row = $result_exemp->fetch_assoc())
{
$ID_AUTEUR = $row["ID_AUTEUR"]; //on garde l'id de l'auteur en mémoire
}
}
else
{
break
$VALID--;
echo "quelque chose s'est mal passée pendant l'association auteur/livres (recherche 1) ID du livre: $ID_LIVRE<br/>";
}
}
}
else
{
break
$VALID--;
echo "il y a pas de livre en base de donnée ou la recherche s'est mal passée <br/>";
}
}
Ce que je souhaite obtenir
je dois faire un moteur de recherche de livre dans une bdd de bibliothèque:
-je souhaiterais être aiguiller sur comment faire un algorithme qui cherche le nom du livre le plus proche (je le ferais pour le reste aussi tant que j'ai une idée de comment faire)
-je sais pas du tout où mettre mes echo et quel code css pour avoir la sortie suivante:
LIVRE GENRE CATEGORIE CENTRE EDITEUR REF_EXEMPLAIRE
$NOM_LIVRE $GENRE $CATEGORIE $NOM_CENTRE $EDITEUR $REF_EXEMPLAIRE
note: j'aimerais bien que seul les REF_EXEMPLAIRE/EDITEURS sortent autant de fois que nécessaire (vu qu'elles sont liées au centre et au livre) mais c'est pas grave si la ligne sort plusieur fois avec le même livre
merci par avance pour votre attention et votre aide.