Php/mysql Afficher ID - PHP - Programmation
Marsh Posté le 08-12-2004 à 02:04:06
Alors :
Code :
|
Marsh Posté le 08-12-2004 à 11:19:36
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.
Marsh Posté le 08-12-2004 à 12:01:39
nero27 a écrit : Alors :
|
Au choix :
Code :
|
(valable si ta requête ne renvoie qu'un seul enregistrement)
Marsh Posté le 08-12-2004 à 12:11:17
mysql_result(); ??
C'est tout mou comme fonction ça! Elle est pas rapide du tout, c'est une fonction(aire)
nan un bon mysql_fetch_assoc(); ou mysql_fetch_array(), ou mysql_fetch_object(); si tu es chaud!
Et oui fais bien attention (Xav_ et nero ):
$lis="select id from table where nom='" . $fruit . "'";
Marsh Posté le 08-12-2004 à 12:34:02
Ca fait une ligne de code en moins
Soyez cools j'apprends PHP tout seul sans jamais trop chercher l'optimisation
Et donc, dans le cas d'une requête qui ne renvoie qu'un seul résultat (typiquement un count), tu conseilles quoi ?
Marsh Posté le 08-12-2004 à 13:34:23
ben
Code :
|
Marsh Posté le 08-12-2004 à 14:17:17
Si un seul résultat à coup sur, je rajouterai meme dans la requete un
Code :
|
ou
Code :
|
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 )
Marsh Posté le 08-12-2004 à 14:24:30
+1 pour toi Xav_ !
Optimisé la nickel le LIMIT 0,1
Ca l'fait quand meme mysql_fetch_object();
Marsh Posté le 08-12-2004 à 14:28:57
bob007 a écrit : +1 pour toi Xav_ ! |
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)
Marsh Posté le 08-12-2004 à 14:59:01
Topic instructif
mysql_fetch_object fonctionne donc comme mysql_fetch_array, si ce n'est l'appel des champs par pointeur ?
Marsh Posté le 08-12-2004 à 14:59:46
Fred999 a écrit : Topic instructif |
http://www.nexen.net/docs/php/anno [...] object.php
Marsh Posté le 08-12-2004 à 15:04:49
OK c'est donc du pareil au même, si ce n'est que ça prend moins de caractères pour écrire
Merci beaucoup
Marsh Posté le 08-12-2004 à 15:52:29
Merci les gars pour toutes vos réponses , je vais bosser ça !! thank !
Marsh Posté le 08-12-2004 à 15:54:15
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
Marsh Posté le 08-12-2004 à 16:37:56
arretez les jeunes, je vais finir par rougir...
Marsh Posté le 08-12-2004 à 16:51:15
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
Merci
Marsh Posté le 08-12-2004 à 16:53:49
Abime a écrit : Là j'ai un petit prob, j'ai tapé ça : |
Normal, tu exploses ton curseur $data en faisant une nouvelle requête non?
Marsh Posté le 08-12-2004 à 17:11:26
Xav_ a écrit : arretez les jeunes, je vais finir par rougir... |
ouééééé on fait la ola pour Xav_!!
OOOOOOOOoooollLLLLLLLaaaaAAaAaaa
Marsh Posté le 08-12-2004 à 17:17:16
Xav_ a écrit : arretez les jeunes, je vais finir par rougir... |
On dit
Personne connaît ses smileys par coeur ici ?
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
Marsh Posté le 08-12-2004 à 18:15:56
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....
Marsh Posté le 08-12-2004 à 19:40:12
<?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.
Marsh Posté le 08-12-2004 à 19:45:37
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...
Marsh Posté le 09-12-2004 à 00:23:19
Bha comme marqué dans mon premier message :
id nom
-----------
1 | pomme
2 | poire
3 | abricot
4 | banane
Marsh Posté le 09-12-2004 à 07:51:44
Abime a écrit : Bha comme marqué dans mon premier message : |
Oui, mais quels sont les attributs de tes champs?
Ton ID, ce ne serait pas une clé primaire, par hasard?
Marsh Posté le 09-12-2004 à 08:24:14
Abime a écrit : Là j'ai un petit prob, j'ai tapé ça : |
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);
Marsh Posté le 09-12-2004 à 13:49:39
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
Marsh Posté le 09-12-2004 à 13:54:09
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.
Marsh Posté le 09-12-2004 à 13:54:25
Fait voir un echo $fin; avan le mysql_query et regarde ce qui sort, apres , si c'est qqch de plausible ..
Marsh Posté le 09-12-2004 à 13:55:16
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 .. |
...et ton ID il est de quel type? Chaine de caractères, numérique?
Marsh Posté le 09-12-2004 à 15:13:35
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à.
Marsh Posté le 09-12-2004 à 15:17:48
Un int qui vaut doto? Heureusement que PHP/SQL sont souples, en Java tu te serais au minimum fait decapiter . Bon je pense que le probleme viens de comment tu as configurer ta table (clef unique,...)
Marsh Posté le 09-12-2004 à 15:20:31
Abime a écrit : Salut , |
Tu veux vraiment mettre doto partout?
Je ne pense pas...essaie avec $doto, pour voir.
Marsh Posté le 09-12-2004 à 15:59:49
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.
Marsh Posté le 09-12-2004 à 16:01:19
...et avec $doto, le echo $fin donne quoi?
Marsh Posté le 09-12-2004 à 16:07:43
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 ...
Marsh Posté le 09-12-2004 à 16:08:47
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'
Marsh Posté le 09-12-2004 à 16:10:10
...et t'as pas l'impression d'avoir oublié un truc?
du style
Code :
|
Marsh Posté le 09-12-2004 à 16:17:31
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
boubye !!
Marsh Posté le 08-12-2004 à 01:32:47
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.