PHP

Sélection de mot commençant par la même lettre

Résolu

Bonjour,


j'ai un code qui fonctionne, ça m'affiche lorsque je click sur une ancre " A" , toutes les réferences liées au theme MANGA qui commencent par la lettre A.

Ceci dit, il faudrait que je fasse un copié collé sur toutes les DIV intégrant les letres A a la lettre Z car mon code n'est que pour une seule lettre !

Quelqu'un aurait une idée pour optimiser mon code ? de façon a ce que se soit moins répétitif ?

Peut êtres dans une fonction ? mais je ne sais pas trop les utiliser je m'y connais trop mal,,,


Merci pour vos réponses


<div class="conteneur_lettres" ><p>A</p></div>
								
  <ul class="references" id="style-A">										      <?php 
										$a=mysqli_query($con,"select * from product	where product.categories_id = '59' AND name like 'A%'											");
											$a_array=array();
																					while($a_row=mysqli_fetch_assoc($a))
{
 $a_array[]=$a_row;  										   
}
											if(count($a_array)>0)
{							                 foreach($a_array as $list_a)									            {
										                ?> 
										                    <li>									                        <a href="categories.php?id=<?php echo $list_a['id']?>">						                           
										                            <img src="<?php echo PRODUCT_IMAGE_SITE_PATH.$list_a['image']?>">
										                             <p class="p" style="color: white"><?php echo $list_a['name']?></p>
										                        </a>
										                    </li>
										                <?php
										            }
												}else{
													echo '<div style="position: absolute;"><h1 style="color: white;">Aucunes références à cette lettre</h1></div>';
												}
?>	
</ul>
</div>
1056 vues
03 août 2020 à 9:25 (Édité)
Cette pub permet au site de vivre ...

15 commentaires

Re:


Très bien ! 😉

N'hésite pas a demandé de l'aide supplémentaire si besoin 😉 N'oublie pas de mettre le topic en "Résolu" quand tout tes problèmes sont réglés !

Bonsoir @Jerem971


Je vais voir pour le faire alors .

Re:


Il te suffit juste de convetir ton code MYSQLI en PDO 😉

Bonsoir @Clouder et @Jerem971


Ah bah autant pour moi alors. Il va falloir que je revois tout mon code alors :( :( :(

Bonjour @Dieunel,


Je ne recommanderais pas MYSQLI car c'est obsolète et il comporte aussi de nombreuses failles de sécurité notamment pour les débutants.

Re:


Si tu veux me mentionner, écris mon pseudo correctement ahah 😅


Et non, @Clouder recommande PDO, voilà pourquoi :


  • MYSQL = obsolète
  • MYSQLI = bientôt obsolète
  • PDO = à jour


Il faut bien lire les articles de formations 😁 Ah moins que je me trompe, montre-moi l'article ou @Clouder recommande MYSQLI 😅

@Jerem971 Bonjour,


Et bien j'ai lu que maintenant il fallait utiliser MSQLI, il me semble même que @Clouder le recommande .


je vais refaire ma recherche alors pour poster l'article en quéstion.


Mon navigateur se met a jour tout seul.

Re:


Assure-toi d'avoir la dernière version de tes navigateurs pour éviter ce type de bugs...

Une question : pourquoi utilises-tu MYSQLI ? Ce n'était pas PDO par hasard ?

Sans l'article ou le tutoriel vidéo j'aurais du mal à t'aider... Il me faut la source du code...

re @Jerem971


Je remarque que mon code est de nouveau décalé. A l'édition il est comme ça :


@Jerem971


La documentation m'a aidé a savoir ce que je peux faire avec cette fonction substr(), Mais pas plus car je n'arrive pas a l'utiliser pour récupéré les lettres de ma table.


Procédons par étape pour que ce soit plus propre pour vous et pour moi :


j'ai une page function.php dans laquelle il y a déjà quelques fonctions que je n'ai pas créées.


Reprenons mon code qui fonctionne dans la page manga.php:


<?php 
  $a=mysqli_query($con,"select * from product
  where product.categories_id = '59' AND name like 'A%'");
    $a_array=array();

    while($a_row=mysqli_fetch_assoc($a))
    	{
    		$a_array[]=$a_row;  
        }
        											
    if(count($a_array)>0)
      {
         foreach($a_array as $list_a)
           {
              ?> 
                 <li>
                  	 <a href="categories.php?id=<?php echo $list_a['id']?>">
              			<img src="<?php echo PRODUCT_IMAGE_SITE_PATH.$list_a['image']?>">
    					<p class="p" style="color: white"><?php echo $list_a['name']?></p>
  					</a>
  				 </li>
    		  <?php
    		}
      }else{
      		 echo '<div style="position: absolute;"><h1 style="color: white;">Aucunes références à cette lettre</h1></div>';
        	}
?>


Comment est ce que je peux faire appel a la fonction qui serrait créée dans la page function.php sur celle de la page manga.php

(j'aurais du coup la chose suivante)


page function.php


function alphabet()
{
   $a=mysqli_query($con,"select * from product
  where product.categories_id = '59' AND name like 'A%'");
    $a_array=array();

    while($a_row=mysqli_fetch_assoc($a))
    	{
    		$a_array[]=$a_row;  
        }
        											
    if(count($a_array)>0)
      {
         foreach($a_array as $list_a)
           {
              ?> 
                 <li>
                  	 <a href="categories.php?id=<?php echo $list_a['id']?>">
              			<img src="<?php echo PRODUCT_IMAGE_SITE_PATH.$list_a['image']?>">
    					<p class="p" style="color: white"><?php echo $list_a['name']?></p>
  					</a>
  				 </li>
    		  <?php
    		}
      }else{
      		 echo '<div style="position: absolute;"><h1 style="color: white;">Aucunes références à cette lettre</h1></div>';
        	} 
 }


et sur ma page manga.php je créais une variable égale a ma fonction alphabet()


$alphabet = alphabet();


ça me marque qu'il y a une erreur au niveau de "while", donc surement lorsque je fais appel a ma base de donnée dans la variable $a.


Peut êtres que j'arriverais mieux a utiliser la documentation que tu m'as fournie @Jerem971 si je passais par la page function.php au lieu de marquer le code sur la page principale.


Qu'est ce que tu en penses ?

Cette pub permet au site de vivre ...
1
2