Mysql_fetch_array PHP

Résolu/Fermé
Signaler
-
Messages postés
557
Date d'inscription
mercredi 26 mars 2008
Statut
Membre
Dernière intervention
23 avril 2015
-
Bonjour,

je ne sais pas si c'est possible mais j'aimerais pouvoir appeler une variable d'une table d'une bdd grace a une autre variable ... voici mon code pour plus de compréhension

$reponse3 = mysql_query("SELECT * FROM matable WHERE nom=$logi");
$donnees3 = mysql_fetch_array($reponse3);
$att = $donnees3['$id_attaquant'];


et bien sur $att ne renvoi rien :(
comment faire svp

12 réponses

Messages postés
2138
Date d'inscription
jeudi 29 janvier 2009
Statut
Membre
Dernière intervention
7 mars 2013
511
c'est possible déjà après faudrait, si ton nom est une chaîne de caractère faire
$reponse3 = mysql_query("SELECT * FROM matable WHERE nom='$logi' ");
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41989 internautes nous ont dit merci ce mois-ci

Messages postés
557
Date d'inscription
mercredi 26 mars 2008
Statut
Membre
Dernière intervention
23 avril 2015
93
Ok essayes donc :

$att = $donnees3[$id_attaquant];
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41989 internautes nous ont dit merci ce mois-ci

oui le nom est une chaine de caractere mais ça ne change rien quand je le modifie :( je pense que l'erreur vient plutot de

$donnees3['$id_attaquant']; la le $id_attaquant est un chiffre et je pense qu'il n'arrive pas a lire la donnée correspondante ? est ce que ca pourrait etre un probleme avec le fait d'appeler le "donnees[] avec une variable ?
Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
895
Bonsoir,

$donnees3 = mysql_fetch_array($reponse3);
$att = $donnees3['$id_attaquant'];


quand tu utilises cette methode, $donnees3['champ_table']

la partie entre les [] doit correspondre à un nom de champ de ta table de la base de données, dans ton cas ce doit être id_attanquant je pense

donc $att=$donnees3['id_attaquant'];
en fait pas du tout ... les champs de ma table sont composés de chiffre (1 a 200) par exemple ... mon soucis est que cette fonction est incluse dans une page ou je récupère le $id_attaquant qui dépend de la personne qui appelle cette page et donc qui peut etre variable ... comme je n'ai pas d'autre moyen pour indiquer le champ que je souhaite j'ai donc posé cette question pour savoir s'il était possible d'opérer ainsi c'est a dire mettre une variable pour appeler un champ ...

si c'est possible j'ai surement fait une erreur de syntaxe ...

j'espere que l'un d'entre vous aura une solution a me proposer :(
Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
895
les champs de ma table sont composés de chiffre (1 a 200) ç a fait beaucoup 200 champs pour une table

sinon fais un echo de $id_attaquant pour voir si cette variable a bien une valeur
oui cette variable a bien une valeur et d'ailleurs si je mets un chiffre au lieu de id_attaquant ça marche impeccable ... faut vraiment que j'apprene comment faire pour appeler un champ à partir d'une variable :( ...

peut être des guillemet à mettre ?? j'en sais fichtrement rien j'ai fait des essais mais point concluants :(
Messages postés
557
Date d'inscription
mercredi 26 mars 2008
Statut
Membre
Dernière intervention
23 avril 2015
93
Après ta requete sql :

<?php

echo $id_attaquant.'<br/>';
print_r($donnees3);

?>

Dis nous ce que tu devrais obtenir comme résultats et ce que tu obtiens actuellement.
1
Array ( [0] => Emiliejolienb [nom] => Emiliejolienb [1] => 5 [4] => 0 [2] => 0 [3] => 0 [5] => 0 [7] => 0 [6] => 0 [8] => 0 [9] => 0 [10] => 0 [149] => 0 [150] => 0 [11] => 0 [151] => 0 [12] => 0 [152] => 0 [13] => 0 [155] => 0 [14] => 0 [157] => 0 [15] => 0 [159] => 0 [16] => 0 [158] => 0 [17] => 0 [160] => 0 [18] => 0 [156] => 0 [19] => 0 [161] => 0 [20] => 0 [162] => 0 [21] => 0 [163] => 0 [22] => 0 [164] => 0 [23] => 0 [165] => 0 [24] => 0 [166] => 0 [25] => 0 [167] => 0 [26] => 0 [168] => 0 [27] => 0 [169] => 0 [28] => 0 [170] => 0 [29] => 0 [171] => 0 [30] => 0 [172] => 0 [31] => 0 [173] => 0 [32] => 0 [174] => 0 [33] => 0 [175] => 0 [34] => 0 [176] => 0 [35] => 0 [177] => 0 [36] => 0 [178] => 0 [37] => 0 [179] => 0 [38] => 0 [180] => 0 [39] => 0 [181] => 0 [40] => 0 [182] => 0 [41] => 0 [183] => 0 [42] => 0 [184] => 0 [43] => 0 [185] => 0 [44] => 0 [186] => 0 [45] => 0 [187] => 0 [46] => 0 [188] => 0 [47] => 0 [189] => 0 [48] => 0 [190] => 0 [49] => 0 [191] => 0 [50] => 0 [192] => 0 [51] => 0 [193] => 0 [52] => 0 [194] => 0 [53] => 0 [195] => 0 [54] => 0 [196] => 0 [55] => 0 [197] => 0 [56] => 0 [198] => 0 [57] => 0 [199] => 0 [58] => 0 [200] => 0 [59] => 0 [201] => 0 [60] => 0 [202] => 0 [61] => 0 [203] => 0 [62] => 0 [204] => 0 [63] => 0 [205] => 0 [64] => 0 [206] => 0 [65] => 0 [207] => 0 [66] => 0 [208] => 0 [67] => 0 [209] => 0 [68] => 0 [210] => 0 [69] => 0 [211] => 0 [70] => 0 [212] => 0 [71] => 0 [213] => 0 [72] => 0 [214] => 0 [73] => 0 [215] => 0 [74] => 0 [216] => 0 [75] => 0 [217] => 0 [76] => 0 [218] => 0 [77] => 0 [219] => 0 [78] => 0 [220] => 0 [79] => 0 [221] => 0 [80] => 0 [222] => 0 [81] => 0 [223] => 0 [82] => 0 [224] => 0 [83] => 0 [225] => 0 [84] => 0 [226] => 0 [85] => 0 [227] => 0 [86] => 0 [228] => 0 [87] => 0 [229] => 0 [88] => 0 [230] => 0 [89] => 0 [231] => 0 [90] => 0 [232] => 0 [91] => 0 [233] => 0 [92] => 0 [234] => 0 [93] => 0 [235] => 0 [94] => 0 [236] => 0 [95] => 0 [237] => 0 [96] => 0 [238] => 0 [97] => 0 [239] => 0 [98] => 0 [240] => 0 [99] => 0 [241] => 0 [100] => 0 [242] => 0 [101] => 0 [243] => 0 [102] => 0 [244] => 0 [103] => 0 [245] => 0 [104] => 0 [246] => 0 [105] => 0 [247] => 0 [106] => 0 [248] => 0 [107] => 0 [249] => 0 [108] => 0 [250] => 0 [109] => 0 [251] => 0 [110] => 0 [252] => 0 [111] => 0 [253] => 0 [112] => 0 [254] => 0 [113] => 0 [255] => 0 [114] => 0 [256] => 0 [115] => 0 [257] => 0 [116] => 0 [258] => 0 [117] => 0 [260] => 0 [118] => 0 [259] => 0 [119] => 0 [261] => 0 [120] => 0 [262] => 0 [121] => 0 [263] => 0 [122] => 0 [264] => 0 [123] => 0 [265] => 0 [124] => 0 [266] => 0 [125] => 0 [267] => 0 [126] => 0 [268] => 0 [127] => 0 [269] => 0 [128] => 0 [270] => 0 [129] => 0 [271] => 0 [130] => 0 [272] => 0 [131] => 0 [273] => 0 [132] => 0 [274] => 0 [133] => 0 [275] => 0 [134] => 0 [276] => 0 [135] => 0 [277] => 0 [136] => 0 [278] => 0 [137] => 0 [279] => 0 [138] => 0 [280] => 0 [139] => 0 [281] => 0 [140] => 0 [282] => 0 [141] => 0 [283] => 0 [142] => 0 [284] => 0 [143] => 0 [285] => 0 [144] => 0 [286] => 0 [145] => 0 [287] => 0 [146] => 0 [288] => 0 [147] => 0 [289] => 0 [148] => 0 [290] => 0 [291] => 0 [292] => 0 [293] => 0 [294] => 0 [153] => 0 [295] => 0 [154] => 0 [296] => 0 [297] => 0 [298] => 0 [299] => 0 [300] => 0 [301] => 0 [302] => 0 [303] => 0 [304] => 0 [305] => 0 [306] => 0 [307] => 0 [308] => 0 [309] => 0 [310] => 0 [311] => 0 [312] => 0 [313] => 0 [314] => 0 [315] => 0 [316] => 0 [317] => 0 [318] => 0 [319] => 0 [320] => 0 [321] => 0 [322] => 0 [325] => 0 [323] => 0 [324] => 0 [326] => 0 [327] => 0 [328] => 0 [329] => 0 [330] => 0 [331] => 0 [332] => 0 [333] => 0 [334] => 0 [335] => 0 [336] => 0 [337] => 0 [339] => 0 [338] => 0 [340] => 0 )

ça devrait me donner 5
Messages postés
557
Date d'inscription
mercredi 26 mars 2008
Statut
Membre
Dernière intervention
23 avril 2015
93
Nb : pour alléger tes recherches dans la base sql :

$reponse3 = mysql_query("SELECT * FROM matable WHERE nom=$logi");

Remplacer le * par les champs sur lesquels tu souhaites agir. En l'occurence ici : le champs associé à l'enregistrement sensé te retourner "1".
ah ba tient ça marche ? curieux me semblait vraiment l'avoir essayer en premier ce truc ? par contre j'avais pas mis me semble t il le '$logi' du coup c'est peut être ça qui n'allait pas tout simplement ...


un grand merci pour vos réponses et votre temps ... au plaisir de pouvoir a mon tour aider mon prochain ... bonne soirée à vous et encore merci
Messages postés
557
Date d'inscription
mercredi 26 mars 2008
Statut
Membre
Dernière intervention
23 avril 2015
93
De rien, bonne soirée.