[php] requête base de donnée

requête base de donnée [php] - PHP - Programmation

Marsh Posté le 13-12-2007 à 19:51:16    

Bonsoir
 
Je suis débutant en php et mysql, j'ai suivi les cours sur le site du zero et je suis dans la création d'un site actuellement mais une chose me bloc.
 
Je souhaiterai récuperer la première lettre d'un titre dans ma base de donnée pour pouvoir ensuite afficher mes résultats dans un ordre croissant comme l'exemple suivant:
 
a:
ali
alladin
au revoir a jamais
 
b:
bioman
 
p:
police story
 
r:
rasta rocket
rocky
...
 
donc voila un peu le principe mais voila j'ai beau chercher je ne trouve pas comment faire
Ya t-il quelqu'un qui pourrait m'orienter vers une solution possible ou vers un site.
Merci bonne soirée

Reply

Marsh Posté le 13-12-2007 à 19:51:16   

Reply

Marsh Posté le 13-12-2007 à 20:02:33    

LEFT(`titre`, 1) en MySQL.  
 
ou $titre[0] en PHP (avec éventuellement un strtoupper/strtolower)


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 13-12-2007 à 20:06:30    

=> substr en php
=> substring en mysql
(pas utile d'employer les deux en même temps :D)
 
Tu mémorises la lettre qui correspond au groupe que tu affiches et tu fais un simple test au début de ta boucle de parcours qui décide si tu dois simplement afficher le titre ou changer le groupe que tu vas afficher.

Reply

Marsh Posté le 13-12-2007 à 20:11:09    

heu... il a dit qu'il était débutant le gars je crois ?


---------------
http://www.ypikay.com
Reply

Marsh Posté le 13-12-2007 à 21:05:39    

mmhh j'ai du mal a bien comprendre, moi je part sur le principe de cette requette et je voudrais récupérer la premiere lettre  
 
$reponse = mysql_query("SELECT titre FROM video);
 
apres je fais  
while ($donnees = mysql_fetch_array($reponse) )
{
?>
 
<?php $titre2=$donnees[0]?><br />
 
<?php
}
 
mysql_close(); // Déconnexion de MySQL
?>

Reply

Marsh Posté le 13-12-2007 à 22:20:26    

Classe tes enregistrements, tu les récupères tous visiblement et c'est sans pagination ce qu'il faut, en utilisant la clause order by.
 
Ca donne

Code :
  1. select titre from video order by titre


 
Après tu as donc ton tableau que tu parcours. Tu utilises la fonction sus citée pour récupérer le premier caractère. Tu le mémorises et tu compares avec le prochain pour savoir si ça change et que donc tu dois réafficher la lettre suivante :)
 
Sinon, tu fais tout en sql, et pour chaque tuple (ligne) tu auras l'infos mais faudra quand même mémorisé la précédente et comparer avec la suivante pour savoir quand ça change ;)
 
Hésites pas à afficher les données pour débogguer ou simplement comprendre, y'a rien de dur t'as toute les pistes. Tentes et reviens pour les erreurs (qui ne se trouvent pas dans la doc fr.php.net ou en premier résutat de ton moteur de recherche préfére ;) )

Reply

Marsh Posté le 13-12-2007 à 22:24:01    

J'avais pas tilté: par pitié pas d'ouverture/fermeture dans tous les sens pour un <br> :o
 
Mais ça dans une chaine de sortie que tu balances à la fin avec echo :) Pour t'éviter de nous demander dans 1 post, en php pour concaténer c'est le point (.), une chaine entre ' est une chaine, une chaine entre " est une chaine dont les expressions sont évaluées avant de définir la chaine (ex. $toto = "tata"; $var = "$toto"; echo $var; //donnera tata)
 
Voilà y'a plus qu'à :D

Reply

Marsh Posté le 13-12-2007 à 22:51:04    

erwan83 a écrit :

heu... il a dit qu'il était débutant le gars je crois ?


 
Oui et ? Il pose une question abstraite sans le moindre bout de code, il reçoit une réponse abstraite sans le moindre bout de code, on ne va pas broder lorsqu'on ignore ce qu'il fait  :D

Reply

Marsh Posté le 14-12-2007 à 09:51:26    

ok merci beaucoup pour tout vos conseil je vais mi mettre et je vous dirai si j'ai réussi a faire ce que je voulais faire
 
merci et a bientot

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed