Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1681 connectés 

 


Dernière réponse
Sujet : je comprends pas mon erreur
Lenoiche voila je clos donc ce topic en remerciant tout le monde et surtout marad' dad et m@nou
 
merci a tout les 2, mon site commence à prendre forme
 
en tout cas je me suis rendu compte que ................. j avais encore du boulot pour maitriser le PHP
 
voila @ pluche

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Lenoiche voila je clos donc ce topic en remerciant tout le monde et surtout marad' dad et m@nou
 
merci a tout les 2, mon site commence à prendre forme
 
en tout cas je me suis rendu compte que ................. j avais encore du boulot pour maitriser le PHP
 
voila @ pluche
Mara's dad Bon, se qu'il faut, c'est modifier ta requête en fonction de ce que tu veux faire.
 
Par exemple :  

Code :
  1. if (!isset($lettre)) 
  2.    $condition = "Fr BETWEEN '0' AND '9'";
  3. else
  4.    $condition = "left(Fr,1) = '$lettre'";
  5. $sql=("select * from divx where $condition order by Fr" );


 
Pour tester le type : http://php.net/manual/fr/function.is-numeric.php
 
Ca te va comme çà ?

Lenoiche alors le script fait un test entre la 1ere lettre du film avec la variable $lettre
$sql=("select * from divx where LEFT(Fr,1)='$lettre' order by Fr" );  
 
 
et moi je voudrais affecte a la variable $lettre , l ensemble des chiffre si elle est vide
if (!isset($lettre))  
{  
$lettre= ..... ; (j met koi comme instruction)  
}  
 
 
en fait je voudrais definir un type de variable et faire le test si il fait parti du type (si c un entier ou un caratere) , mais je sais pas c possible ne PHP.
 
ou si vous avez une autre idee .
Mara's dad Désolé, mais là je ne comprend pas la question !
Lenoiche oki marad
 
et une petite derniere question et j arreterais de vous embeter
 
c a propose de la requete dont le titre commence par un chiffre
 
dans mon programme  
if (!isset($lettre))  
{  
$lettre=a;  
}  
 
...
 
$lettre soit egale a 1 ou 2 ou 3 ou 4 ou 5 ...........
 
alors j ai pense a l utiler avec array
 
c possible ???
omega2

Lenoiche a écrit a écrit :

nope ca marche pô
 
voici le message d erreur que ca m affihce
 
Warning: 0 is not a MySQL result index in your script on line 25  




JE sais pas s'ils t'ont déjà répondus à cette question. Ce message d'erreur arive quand tu essaye d'accédé à un résultat de requête en dehors de l'ensemble retourné par la bdd. Dans ton cas, aucune valeur n'est retourné mais tu essaye quand même d'accéder à la première valeur. Comme elle n'existe pas, il t'affiche une erreur.

Mara's dad MYSQL_ASSOC :
 
En php, les tableaux peuvent avoir un indice "Chaîne de caractère" en plus de l'indice numérique normal.
C'est ce qu'on appelle un tableau "associatif".
 
En clair, tu peux avoir un tableau du genre :  

Code :
  1. $couleur = array ( "BLEU" => "#0000FF", "ROUGE" => "#FF0000", "VERT" => "#00FF00", "BLANC" => "#FFFFFF", "NOIR" => "#000000" );


 
Ensuite tu peux utiliser le tableau couleur comme çà :
$couleur[BLANC] qui te donne "#000000".
 
MYSQL_ASSOC, est utilisé avec la fonction mysql_fetch_row() pour lui dire de retourner un tableau associatif avec les noms des champs comme indices du tableau !
 
C'est pratique quand tu fais une requête du genre SELECT * FROM MaTable.
Si tu connais le nom des champs, tu ne sais pas forcément dans quelle ordre ils sont rangés dans le tableau résultat.
Avec $toto = mysql_fetch_row($result, MYSQL_ASSOC), tu peux utiliser $toto[NomDeChamp] pour avoir son contenu.
 
C'est cool non!
Et c'est surtout beaucoup plus lisible !
 
Pour ce qui est de l'indulgence, t'en fais pas !
On a tous commencé la programmation un jour.
N'empèche que c'était Presque n'importe quoi ;)
 
Pour la requête qui te sort tous les enregs dont le titre commence par un chiffre, t'as qu'à choisir :
 

Code :
  1. $sql=("select * from divx where LEFT(Fr,1)>='0' AND LEFT(Fr,1)<='9' order by Fr" );
  2. $sql=("select * from divx where LEFT(Fr,1) IN ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9') order by Fr" );
  3. $sql=("select * from divx where LEFT(Fr,1) BETWEEN '0' AND '9' order by Fr" );


 
N'hésite pas si tu as d'autres problèmes.

m@nou j'dirais que çà permet d'associer les indices du tableau $film avec les noms des champs de ta table :??: me trompé-je ?
 
regarde l'instruction Echo qui suit ($film[Fr] par exemple)
Lenoiche Je sais que c du n importe koi
 
j viens de commencer le PHP alors un pu d indulgence :P
 
ok j ai compris , par contre c koi cette instruction "MYSQL_ASSOC "
 
elle sert a koi ????
 
et dernbiere petite question comment faire pour affecte a la variable $lettre , l ensemble des chiffres en 1 seule fois
 
Mara's dad, sur ton exemple , je vais afficher sur une page toute les titre commencant par un 6 or je souhaiterais metre tous les films commencant pas un chiffre
 
merci pour ton aide si precieuse ;D
Lenoiche Je sais que c du n importe koi
 
j viens de commencer le PHP alors un pu d indulgence :P
 
ok j ai compris , par contre c koi cette instruction "MYSQL_ASSOC "
 
elle sert a koi ????
 
et dernbiere petite question comment faire pour affecte a la variable $lettre , l ensemble des chiffres en 1 seule fois
 
Mara's dad, sur ton exemple , je vais afficher sur une page toute les titre commencant par un 6 or je souhaiterais metre tous les films commencant pas un chiffre
 
merci pour ton aide si precieuse ;D
Mara's dad Ok, fr est le nom d'un champs, mais si c'est pas un booléen, 'where fr' n'est pas une condition !
 
En revanche, 'where fr="toto"' çà veut dire quelque chose !
 
Bon, je vient d'aller voir ta base de plus près avec PhpMyAdmin et le mot de passe que tu as généreusement laissé sur le forum !
(Change çà, c'est pas très propre quand même !)
 
Et ta requête, devrait être :
'select * from divx order by fr'
si ce que tu veux, c'est afficher la liste des films triés sur les titres 'Français' en ordre croissant !
Le 'ASC' est superflu, c'est l'ordre par défaut !
 
Pour le reste :

Code :
  1. $result=mysql_fetch_row($query);
  2. $id=0;
  3. $res=mysql_numrows($sql);
  4.            
  5. while ($id!=$res)
  6. {
  7.    $fr=$result[1];
  8.    $pos=strpos("$fr","$lettre" );
  9.    if ($pos=1)
  10.    {
  11.       echo "$fr";
  12.    }
  13.    $id++;
  14. }


 
Désolé, mais c'est n'importe quoi !
 
Essaye çà !

Code :
  1. <?php
  2. if (!isset($lettre))
  3. {
  4. $lettre=a;
  5. }
  6. $connexion=mysql_connect("sql.free.fr","lenoiche","********" );
  7. mysql_select_db( 'lenoiche' );
  8. $sql=("select * from divx where LEFT(Fr,1)='$lettre' order by Fr" );
  9. $result=mysql_query($sql);
  10. while ( $film = mysql_fetch_row( $result, MYSQL_ASSOC ) )
  11. {
  12.    echo("$film[Fr] $film[Ang] $film[Des] $film[Qual] $film[im] $film[avec] $film[de]" );
  13. }
  14. ?>


 
Ca marche avec ta base !
SI SI, essaye là : http://fsurleau.free.fr/tst.php3?lettre=6

 

[edtdd]--Message édité par Mara's dad--[/edtdd]

Lenoiche alors pour le serveur
 
ca change rien , j ai un autre script faisant appelle a la base de donnee et ca rulez......... (de plus jai deja essaye de changer meme resultat)
 
"where fr"
 
en fait fr , c le nom d'un des champs de ma base de donnee
cyrix Le serveur MySql de free est sql.free.fr
eusebius c'est quoi ce 'where fr' ?
Lenoiche alors j ai une base de donnee de films , et j aimerais l afficher par lettre alphabetique .......
 
c a d tous les films commencant par A sur la meme page ......
 
de plus je ne vois pas comment selectionne les filme comment autement que par les lettre , les chiffres par exemple
Lord II Si tu expliquerait ce que tu veux exactement faire avec ce script on pourrait d'aider un peu plus et surtout plus vite
Lenoiche nope ca marche pô
 
voici le message d erreur que ca m affihce
 
Warning: 0 is not a MySQL result index in your script on line 25
Lenoiche ben nope ca marche po
Lenoiche :ouch:
oupsssss
 
NAN c pas mon vrai code  
:sweat:
 
j vais essayer ca merci
funwebmax c exatement, ca
Roswell_ Ca m'étonnerait qu'il y est un serveur mysql sur ftpperso.free.fr, ca doit être plutot mysql.free.fr si mes souvenirs sont bons.
Au fait j'esperes que c'est pas ton vrai mot de passe que t'as mis, sinon tu risques d'avoir des surprise.
Lenoiche <?
if (mysql_connect("ftpperso.free.fr","*******",
"*******" )>0)
 {
 $connexion=mysql_connect("ftpperso.free.fr","*******","**********" );
 }
else
 {
 $connexion=mysql_connect("localhost" );
 }
 
mysql_select_db( 'lenoiche' );
 
if (!isset($lettre))
 {
 $lettre=a;
 }
 
 
$sql=("select * from divx where fr order by fr asc " );
 
$query=mysql_query($sql,$connexion);
$result=mysql_fetch_row($query);
$id=0;
$res=mysql_numrows($sql); **** c a cette ligne *********                    
 
while ($id!=$res)
 {
 $fr=$result[1];
 $pos=strpos("$fr","$lettre" );
 if ($pos=1)
  {
  echo "$fr";
  }
 $id++;
 }
?>
 
[edit]--Message édité par Lenoiche--[/edit]

 

[edtdd]--Message édité par Lenoiche--[/edtdd]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR