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

  FORUM HardWare.fr
  Programmation
  PHP

  Php/mysql Afficher ID

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Php/mysql Afficher ID

n°917651
Abime
Posté le 08-12-2004 à 01:32:47  profilanswer
 

Bonjour !
 
 
Voilà , imaginons un tableau Mysql du style :
 
      id      nom
       1      orange
       2      poire
       3      cerise
 
 
Comment faire pour que sous php , si je rentre en var le nom style "cerise" sa me dise son id.
 
Qu'importe comment on récupere la varianle du "nom" , ça je sais faire, mais comment afficher son id ... là je sais pas.
 
faudrai une commande du style :  
$lis="select id from table where nom=poire";
$uno=mysql_query($lis):
print ("$uno" );
 
Un truc du genre mais là sa ne marche pas (c'est normal vous me direz)
 
Mais bon comment faire pour afficher l'id d'un champ le constituant ???
 
 
Merci.
 
 
 

mood
Publicité
Posté le 08-12-2004 à 01:32:47  profilanswer
 

n°917663
nero27
Posté le 08-12-2004 à 02:04:06  profilanswer
 

Alors :  
 

Code :
  1. $lis="select id from table where nom=poire";
  2. $uno=mysql_query($lis):
  3. $resultat = mysql_fetch_array($uno);
  4. echo $resultat['id'];


 
;)

n°917782
Xav_
The only one...
Posté le 08-12-2004 à 11:19:36  profilanswer
 

Attention, quand tu va remplacer poire par ta variable après, pense à rajouter des simple quotes de chaque coté, sinon mysql ne va pas comprendre.
dans une requete, les string doivent etre écris entre quote simple, c'est obligatoire.


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°917821
Fred999
Rabat-joie
Posté le 08-12-2004 à 12:01:39  profilanswer
 

nero27 a écrit :

Alors :  
 

Code :
  1. $lis="select id from table where nom=poire";
  2. $uno=mysql_query($lis):
  3. $resultat = mysql_fetch_array($uno);
  4. echo $resultat['id'];


 
;)


 
Au choix :  
 

Code :
  1. $lis="select id from table where nom=poire";
  2. $uno=mysql_query($lis):
  3. $identifiant = mysql_result($uno, 0);


 
(valable si ta requête ne renvoie qu'un seul enregistrement)

n°917836
bob007
Posté le 08-12-2004 à 12:11:17  profilanswer
 

:heink: mysql_result(); ??
C'est tout mou comme fonction ça! Elle est pas rapide du tout, c'est une fonction(aire) :lol:
nan un bon mysql_fetch_assoc(); ou mysql_fetch_array(), ou mysql_fetch_object(); :love: si tu es chaud!
 
Et oui fais bien attention (Xav_ et nero :jap: ):
$lis="select id from table where nom='" . $fruit . "'";

n°917852
Fred999
Rabat-joie
Posté le 08-12-2004 à 12:34:02  profilanswer
 

Ca fait une ligne de code en moins :sweat:
 
Soyez cools j'apprends PHP tout seul sans jamais trop chercher l'optimisation :D
 
Et donc, dans le cas d'une requête qui ne renvoie qu'un seul résultat (typiquement un count), tu conseilles quoi ?


Message édité par Fred999 le 08-12-2004 à 12:34:19
n°917896
Profil sup​primé
Posté le 08-12-2004 à 13:34:23  answer
 

ben
 

Code :
  1. 1. $lis="select id from table where nom=poire";
  2.    2. $uno=mysql_fetch_object($lis):
  3.    3. echo $uno->id

:wahoo:

n°917942
Fred999
Rabat-joie
Posté le 08-12-2004 à 14:06:56  profilanswer
 

Ha c'est bien ça :)
 
Merci !

n°917956
Xav_
The only one...
Posté le 08-12-2004 à 14:17:17  profilanswer
 

Si un seul résultat à coup sur, je rajouterai meme dans la requete un  

Code :
  1. LIMIT 1


 ou

Code :
  1. LIMIT 0,1

pour les puristes
 
Comme ça tu lui dis dès le départ que la requete ne renverra qu'un seul enregistrement (donc dès qu'il est trouvé, MySQL arrete de chercher ;))


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°917966
bob007
Posté le 08-12-2004 à 14:24:30  profilanswer
 

+1 pour toi Xav_ !
Optimisé la nickel le LIMIT 0,1
Ca l'fait quand meme mysql_fetch_object();

mood
Publicité
Posté le 08-12-2004 à 14:24:30  profilanswer
 

n°917969
Xav_
The only one...
Posté le 08-12-2004 à 14:28:57  profilanswer
 

bob007 a écrit :

+1 pour toi Xav_ !
Optimisé la nickel le LIMIT 0,1
Ca l'fait quand meme mysql_fetch_object();


 
perso je n'ai jamais utilisé que ça (mysql_fetch_object), mais le plus gros site sur lequel je bosse (celui de mon asso), on est 2 dessus --> l'autre bosse avec un mysql_fetch_array, mais j'aime moins, ça me gonfle quand je dois debbuger ces requetes !!!! (en plus il utilise le n° de colonne plutot que le nom, alors que mysql_fetch_array le gère et que c'est vachement plus parlant)


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°917990
Fred999
Rabat-joie
Posté le 08-12-2004 à 14:59:01  profilanswer
 

Topic instructif :)
 
mysql_fetch_object fonctionne donc comme mysql_fetch_array, si ce n'est l'appel des champs par pointeur ?

n°917991
skeye
Posté le 08-12-2004 à 14:59:46  profilanswer
 

Fred999 a écrit :

Topic instructif :)
 
mysql_fetch_object fonctionne donc comme mysql_fetch_array, si ce n'est l'appel des champs par pointeur ?


http://www.nexen.net/docs/php/anno [...] object.php


---------------
Can't buy what I want because it's free -
n°917997
Fred999
Rabat-joie
Posté le 08-12-2004 à 15:04:49  profilanswer
 

OK c'est donc du pareil au même, si ce n'est que ça prend moins de caractères pour écrire :D
 
Merci beaucoup :jap:

n°918042
Abime
Posté le 08-12-2004 à 15:52:29  profilanswer
 

Merci les gars pour toutes vos réponses , je vais bosser ça !! thank !

n°918048
Fred999
Rabat-joie
Posté le 08-12-2004 à 15:54:15  profilanswer
 

Ouep c'est cool, parce que lire et relire des sites c'est pas toujours très convivial.
 
Là, j'ai appris deux choses importantes en peu de temps :jap:

n°918086
Xav_
The only one...
Posté le 08-12-2004 à 16:37:56  profilanswer
 

arretez les jeunes, je vais finir par rougir... ;)


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°918105
Abime
Posté le 08-12-2004 à 16:51:15  profilanswer
 

Là j'ai un petit prob, j'ai tapé ça :
 
while($data = mysql_fetch_assoc($rop)){      
$doto=$data['id']-1;      
print ("L'id a été modifié par $doto   " );
$fin="UPDATE test SET id ='doto'";
mysql_query($fin);
}  
 
 
mais sa ne me modifie que mon premier Id dans mon tableau sql , pas les autres ... si qq a la solution :D
 
Merci

n°918108
skeye
Posté le 08-12-2004 à 16:53:49  profilanswer
 

Abime a écrit :

Là j'ai un petit prob, j'ai tapé ça :
 
while($data = mysql_fetch_assoc($rop)){      
$doto=$data['id']-1;      
print ("L'id a été modifié par $doto   " );
$fin="UPDATE test SET id ='doto'";
mysql_query($fin);
}  
 
 
mais sa ne me modifie que mon premier Id dans mon tableau sql , pas les autres ... si qq a la solution :D
 
Merci


Normal, tu exploses ton curseur $data en faisant une nouvelle requête non?


---------------
Can't buy what I want because it's free -
n°918125
bob007
Posté le 08-12-2004 à 17:11:26  profilanswer
 

Xav_ a écrit :

arretez les jeunes, je vais finir par rougir... ;)


 
ouééééé on fait la ola pour Xav_!!
 
OOOOOOOOoooollLLLLLLLaaaaAAaAaaa

n°918132
Fred999
Rabat-joie
Posté le 08-12-2004 à 17:17:16  profilanswer
 

Xav_ a écrit :

arretez les jeunes, je vais finir par rougir... ;)


 
On dit [:counterslash]
 
Personne connaît ses smileys par coeur ici ? :D
 
Plus sérieusement, j'étais très présent lors de la création de la section
 
http://forum.hardware.fr/forum2.ph [...] 0&subcat=0
 
http://forum.hardware.fr/forum2.ph [...] 0&subcat=0
 
Et je vois que l'ambiance n'a pas changé, c'est cool :)


Message édité par Fred999 le 08-12-2004 à 17:18:39
n°918185
Xav_
The only one...
Posté le 08-12-2004 à 18:15:56  profilanswer
 

skeye a écrit :

Normal, tu exploses ton curseur $data en faisant une nouvelle requête non?


 
Non non, j'ai déjà fait une requete d'update dans un while sur les élément  d'un SELECT, normalement ça passe.
Par contre, si tu pouvais mettre le code de la requete de sélection... si yen a qu'un de mis à jour, c'est peut etre que la 1ere requete ne t'en renvoi qu'un....


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°918258
Abime
Posté le 08-12-2004 à 19:40:12  profilanswer
 

<?php
 
$db = mysql_connect('localhost','xxxxx','xxxxxx');
mysql_select_db('xxxxx_db',$db);    
 
$lis="select id from test where nom='poire'";
$pof=mysql_query($lis);
$resultat = mysql_fetch_assoc($pof);      
$tot = $resultat['id'];              
 
$rap = 'select id from test';      
$rop = mysql_query($rap);
 
 
while($data = mysql_fetch_assoc($rop))      
{      
$doto=$data['id']-1;        
print ("L'id a été modifié par $doto   " );
$fin="UPDATE test SET id ='doto'";
mysql_query($fin);
}  
 
?>
 
 
Voilà mon code en entier.

n°918261
skeye
Posté le 08-12-2004 à 19:45:37  profilanswer
 

euh je voudrais pas dire de conneries, mais ta table test est structurée comment? Parce-que mettre le même id à tous les enregistrements j'y crois pas trop, on a tendance à obliger l'unicité de ce genre de trucs...[:joce]


Message édité par skeye le 08-12-2004 à 19:45:50

---------------
Can't buy what I want because it's free -
n°918502
Abime
Posté le 09-12-2004 à 00:23:19  profilanswer
 

Bha comme marqué dans mon premier message :
 
id  nom
-----------
1 | pomme
2 | poire
3 | abricot
4 | banane

n°918546
skeye
Posté le 09-12-2004 à 07:51:44  profilanswer
 

Abime a écrit :

Bha comme marqué dans mon premier message :
 
id  nom
-----------
1 | pomme
2 | poire
3 | abricot
4 | banane


Oui, mais quels sont les attributs de tes champs?
Ton ID, ce ne serait pas une clé primaire, par hasard?


---------------
Can't buy what I want because it's free -
n°918551
esox_ch
Posté le 09-12-2004 à 08:24:14  profilanswer
 

Abime a écrit :

Là j'ai un petit prob, j'ai tapé ça :
 
while($data = mysql_fetch_assoc($rop)){      
$doto=$data['id']-1;      
print ("L'id a été modifié par $doto   " );
$fin="UPDATE test SET id ='doto'";
mysql_query($fin);
}  
 
 
mais sa ne me modifie que mon premier Id dans mon tableau sql , pas les autres ... si qq a la solution :D
 
Merci


 
heu c'est pas mieux comme ca ? :
 
while($data = mysql_fetch_assoc($rop)){      
$doto=$data['id']-1;      
print ("L'id a été modifié par $doto   " );
$fin="UPDATE test SET id ='$doto'";
mysql_query($fin);


Message édité par esox_ch le 09-12-2004 à 08:24:34
n°918754
Abime
Posté le 09-12-2004 à 13:49:39  profilanswer
 

Figure toi que sans le dollar , sa marche , avec sa veut pas , a la base j'avait mis le dollar mais sa ne me faisait rien , et oui tu as raison skeye , mon id est en primaire , sa veut dire quoi au juste primaire ?
 
 
merci

n°918761
skeye
Posté le 09-12-2004 à 13:54:09  profilanswer
 

Ca veut dire que tu n'as pas le droit d'avoir la même valeur 2 fois.
Hors ton code essaie d'y mettre 'doto', qui est une chaine de caractères (esox_ch a probablement raison, ce que tu veux faire c'est la syntaxe qu'il te donne) fixe d'après ton code.
Donc tu peux le faire une fois sur le premier, mais les suivants vont refuser de prendre la même valeur.


---------------
Can't buy what I want because it's free -
n°918762
esox_ch
Posté le 09-12-2004 à 13:54:25  profilanswer
 

Fait voir un echo $fin; avan le mysql_query et regarde ce qui sort, apres , si c'est qqch de plausible ..

n°918764
skeye
Posté le 09-12-2004 à 13:55:16  profilanswer
 

esox_ch a écrit :

Fait voir un echo $fin; avan le mysql_query et regarde ce qui sort, apres , si c'est qqch de plausible ..


[:benou_jap]
...et ton ID il est de quel type? Chaine de caractères, numérique?


---------------
Can't buy what I want because it's free -
n°918849
Abime
Posté le 09-12-2004 à 15:13:35  profilanswer
 

Salut ,
 
alors en mettant un echo $fin sa me donne :  
 
L'id a été modifié par 0 UPDATE test SET id ='doto'
L'id a été modifié par 1 UPDATE test SET id ='doto'
L'id a été modifié par 2 UPDATE test SET id ='doto'
L'id a été modifié par 3 UPDATE test SET id ='doto'  
 
mon id est de type Int.
 
 
voilà voilà.

n°918855
esox_ch
Posté le 09-12-2004 à 15:17:48  profilanswer
 

Un int qui vaut doto? Heureusement que PHP/SQL sont souples, en Java tu te serais au minimum fait decapiter :p. Bon je pense que le probleme viens de comment tu as configurer ta table (clef unique,...)

n°918857
skeye
Posté le 09-12-2004 à 15:20:31  profilanswer
 

Abime a écrit :

Salut ,
 
alors en mettant un echo $fin sa me donne :  
 
L'id a été modifié par 0 UPDATE test SET id ='doto'
L'id a été modifié par 1 UPDATE test SET id ='doto'
L'id a été modifié par 2 UPDATE test SET id ='doto'
L'id a été modifié par 3 UPDATE test SET id ='doto'  
 
mon id est de type Int.
 
 
voilà voilà.


Tu veux vraiment mettre doto partout?[:itm]
Je ne pense pas...essaie avec $doto, pour voir.


---------------
Can't buy what I want because it's free -
n°918909
Abime
Posté le 09-12-2004 à 15:59:49  profilanswer
 

j'ai essayé avec $doto , et là sa ne me change même plus mon premier enregistrement.  
 
et oui je veux mettre mon doto partout , parceque normalement mon doto change a chaque boucle , y doit me changer mon 1 - 2 - 3 - 4 par un 0 - 1 - 2 - 3.
 
erf je vois pas ce qui coinçe sa m'embête.

n°918910
skeye
Posté le 09-12-2004 à 16:01:19  profilanswer
 

...et avec $doto, le echo $fin donne quoi?


---------------
Can't buy what I want because it's free -
n°918918
Abime
Posté le 09-12-2004 à 16:07:43  profilanswer
 

Je viens de recreer mon champ Id , et maintenant ya du nouveau :
 
si je met le $doto , tous mes champ id sont des '3'.
si j'enleeve le $ et que je met doto , y deviennet tous des '0'
 
lol ...

n°918920
Abime
Posté le 09-12-2004 à 16:08:47  profilanswer
 

sa deviens :
 
 
L'id a été modifié par 0 UPDATE test SET id ='0'  
L'id a été modifié par 1 UPDATE test SET id ='1'  
L'id a été modifié par 2 UPDATE test SET id ='2'  
L'id a été modifié par 3 UPDATE test SET id ='3'  

n°918922
skeye
Posté le 09-12-2004 à 16:10:10  profilanswer
 

...et t'as pas l'impression d'avoir oublié un truc?[:mlc]
du style  

Code :
  1. where id = '".$data['id']."'"


Message édité par skeye le 09-12-2004 à 16:11:58

---------------
Can't buy what I want because it's free -
n°918935
Abime
Posté le 09-12-2004 à 16:17:31  profilanswer
 

Je te remercie skeye , effectivement sa marche ...
 
c'est vrai que je n'avais pas pensé à ça ...
 
en tout cas merci à tous pour votre aide et surtout a toi skeye  :bounce:  
 
boubye !!

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Php/mysql Afficher ID

 

Sujets relatifs
[Prob] Upload fichier PHPDécaler les valeurs dans une base mySQL
afficher des accents...?Encore session PHP
Requête MySQL et création de MenusSession PHP, on reprend tout!
Afficher à partir d'un userform une feuille excelSession PHP
[HTML/CSS/PHP]Problème sous FireFoxIntégration de pages PHP sur un site - débutant
Plus de sujets relatifs à : Php/mysql Afficher ID


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