Accueil > Forum > > > > Récupérer les valeurs de la première colonne d'une table dans un tableau
Récupérer les valeurs de la première colonne d'une table dans un tableau
vendredi 14 mai 2010 à 00:52:35 |
Récupérer les valeurs de la première colonne d'une table dans un tableau

etincelle01
|
Bonsoir,
Dans PHP, il y a la fonction mysql_fetch_array() qui place les enregistrements résultats d'une requête dans un tableau.
Mais il n'y a pas de fonction qui récupère les colonnes résultats de la requête.
J'aimerais récupérer les éléments de la première colonne de ma table dans un tableau (array) mais je suis bloquée.
J'ai écrit le code suivant:
Code PHP :
$select = 'SELECT * from table';
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
while($row = mysql_fetch_array($result)) {
?>
<tr>
<td><b><?php echo $row["identifiant"] ?></b></td>
<td><b><?php echo $row["Designation"] ?></b></td>
<td><b><?php echo $row["Prix"] ?></b></td>
</tr>
<?php }
Après j'ai compté le nombre de lignes et j'ai mis ce nombre dans la variable $total.
Code PHP :
$total = mysql_num_rows($result);
L'idée m'est venue de faire une boucle mais je sais pas trop comment faire.
Pouvez-vous m'aider?
|
|
vendredi 14 mai 2010 à 02:37:29 |
Re : Récupérer les valeurs de la première colonne d'une table dans un tableau

uaip
|
Salut,
Le problème ne vient pas de php.
Avant d'exécuter des requètes SQL, ça serait chouette d'apprendre le SQL.
SELECT * FROM ... WHERE ... récupère toutes les "colonnes" (ou domaines) de ta table.
Si ta table contient par exemple les colonnes prout, pipi, caca, pour récupérer uniquement la première colonne, un bête SELECT prout FROM ... WHERE ... suffit.
Et si jamais tu souhaites récupérer toutes tes colonnes via SQL mais pouvoir les traiter séparément en php, alors $row["colonne"] est là pour toi (dans mon exemple $row["prout"]).
Cordialement, uaip.
________________________________________________________________________
Tu es musicien, dessinateur, écrivain, poète ou fan de cinéma et tu cherches à te faire connaître ?
Rejoins notre communauté d'artistes sur winky !
|
|
vendredi 14 mai 2010 à 02:56:50 |
Re : Récupérer les valeurs de la première colonne d'une table dans un tableau

uaip
|
Au temps pour moi, j'avais lu ton code en diagonale.
Alors du coup, la seule solution que je vois est une boucle, comme tu as fait, mais je pense qu'il y a bien plus élégant !
Cordialement, uaip.
________________________________________________________________________
Tu es musicien, dessinateur, écrivain, poète ou fan de cinéma et tu cherches à te faire connaître ?
Rejoins notre communauté d'artistes sur winky !
|
|
vendredi 14 mai 2010 à 04:14:44 |
Re : Récupérer les valeurs de la première colonne d'une table dans un tableau

devil_may_cry
|
Réponse acceptée !
tu pourra omettre la boucle et utiliser juste mysql_result($result,0,'champs1');
mysql_result($result,0,'champs2');
|
|
mardi 18 mai 2010 à 19:15:25 |
Re : Récupérer les valeurs de la première colonne d'une table dans un tableau

etincelle01
|
Merci devil_may_cry, j'ai fait une boucle qui met les valeurs de la première colonne dans un tableau.
Code PHP :
$tableau[]=array();
for ($i=0; $i<$total; $i++)
{
$tableau[] = mysql_result($result,$i);
}
Maintenant, j'ai une table ligne_commande qui contient deux colonnes: num_commande et id_produit.
J'ai par exemple récupéré 3 valeurs dans mon tableau $tableau:
1,2 et 3.
J'aimerai enregistrer les valeurs de $tableau dans ma table ligne_commande comme suit:
num_commande | id_produit
1 | 1
1 | 2
1 | 3
Pouvez-vous m'aider?
|
|
mercredi 19 mai 2010 à 02:58:28 |
Re : Récupérer les valeurs de la première colonne d'une table dans un tableau

devil_may_cry
|
la solution que je vais te proposer ne marche que si num_comande n'est pas un index ou clef primaire de la table avec tu peut essayer ca
for ($i=0; $i<$total; $i++)
{
$tableau[] = mysql_result($result,$i);
}
//
for($i=1; $i<$total+1;$i++) {
//test si c'est la premiere fois
//qu'on entre dans la boucle
if($i==1) {
mysql_query("INSERT INTO ligne_commande(num_commande,id_produit) values ('','".$tableau[$i]."');
} else {
// on recuperer le dernier insert_id
$lastid = mysql_insert_id();
mysql_query("INSERT INTO ligne_commande(num_commande,id_produit) values ('".lastid."','".$tableau[$i]."');
}
}
voila j'espere que tu y trouvera une soluce
|
|
mercredi 19 mai 2010 à 12:47:42 |
Re : Récupérer les valeurs de la première colonne d'une table dans un tableau

etincelle01
|
En fait la table ligne_commande a deux clés primaires: num_commande et id_produit.
Et l'enregistrement se fait dans une autre page où id_produit est un nombre généré aléatoirement avec la fonction rand().
Mais je vais faire simple et supposer que je travaille sur la même page car c'est pas là mon problème.
Donc j'ai fait le code suivant:
Code PHP :
$j=rand();
for ($i=0; $i<$total; $i++)
{
$tableau[] = mysql_result($result,$i);
}
for($k=1; $k< $total+1;$k++) {
$select="INSERT INTO ligne_commande ( num_commande, id_produit) values ($j,'". $tableau[$k]."')";
$result= mysql_query($select,$link)or die("Erreur lors de l'enregistrement");
}
Mais rien ne se produit.
J'ai donc modifié mon code pour tester:
Code PHP :
$j=rand();
for ($i=0; $i<$total; $i++)
{
$tableau[] = mysql_result($result,$i);
}
for($k=1; $k< $total+1;$k++) {
$select="INSERT INTO ligne_commande ( num_commande, id_produit) values ($j,$k)";
$result = mysql_query($select,$link)or die("Erreur lors de l'enregistrement");
}
Mais pas d'enregistrement non plus et même l'erreur n'apparaît pas.
La requête est correcte, je l'ai testée.
|
|
mercredi 19 mai 2010 à 17:25:12 |
Re : Récupérer les valeurs de la première colonne d'une table dans un tableau

devil_may_cry
|
1 | 1
1 | 2
1 | 3
si tu veut enregistrer de cette maniere au moins num_commande ne peut etre une cle primaire tu vois bien qu'elle est en double ici puis qu'elle n'est pas unique mysql te signalera une erreur mais tu peut crrer un autre champs id qui sera lui la clef primaire et tester ce code
Code PHP : //
for($i=1; $i<$total+1;$i++) {
//test si c'est la premiere fois
//qu'on entre dans la boucle
if($i==1) {
mysql_query("INSERT INTO ligne_commande(num_commande,id_produit) values ('','".$tableau[$i]."');
} else {
// on recuperer le dernier insert_id
$lastid = mysql_insert_id();
mysql_query("INSERT INTO ligne_commande(num_commande,id_produit) values ('".lastid."','".$tableau[$i]."');
}
}
sinon fait moi un print_r de ton tableau pour voir comment il est disposer
|
|
jeudi 20 mai 2010 à 00:41:39 |
Re : Récupérer les valeurs de la première colonne d'une table dans un tableau

etincelle01
|
Je crois qu'on peut avoir deux clés primaires: num_commande et id_produit, il suffit que chaque couple de ces valeurs soit unique.
La preuve: J'ai exécuté la requête sql directement sur phpMyAdmin et elle marche, j'ai répété les valeurs de num_commande et id_produit et il n'y a pas de problème car j'ai défini ces deux champs comme clés primaires au début.
Par contre il y a un problème au niveau du code car le print_r du tableau m'affiche:
Array ( [0] => Array ( ) [1] => 45HFFDU6776 )
Array ( [0] => Array ( ) [1] => 45HFFDU6776 [2] => 45JDK455 )
Array ( [0] => Array ( ) [1] => 45HFFDU6776 [2] => 45JDK455 [3] => 5465FF667 )
|
|
jeudi 20 mai 2010 à 02:42:45 |
Re : Récupérer les valeurs de la première colonne d'une table dans un tableau

devil_may_cry
|
El zodiac Je crois qu'on peut avoir deux clés primaires: num_commande et id_produit, il suffit que chaque couple de ces valeurs soit unique. j'ai pas dit le contraire mais avec cette disposiion que tu m'a faite 1 | 1
1 | 2
1 | 3 avec celle ci mysql n'acceptera pas puisque tu aura deux enregistrement avec num_commande qui est egale a 1 c'est ce que je veux dire et pour le tableau j'ai bien mis
Code PHP : for($i=1; $i<$total+1;$i++) je saute le array 0 teste le code que je t'ai fournit et si ne marche pas on verra d'autre soluce
|
|
Cette discussion est classée dans : table, code, php, mysql, tableau
Répondre à ce message
Sujets en rapport avec ce message
update une table mysql via php [ par kaddouremna28 ]
salut à tous, j'ai un problème de mise a jour d'une table mysql via php et voici le code :UPDATE table SET num='$num', nom='$nom' WHERE code='$code'j'
recherche bdd et mise a jour dans la table [ par Jarod1980 ]
Bonjour, Je suis en train de mettre en place une petite application permettant de rechercher une personne dans ma base de données. Une fois la person
Aide codage formulaire php pour base de données, toutes les données ne sont pas enregistrées. [ par sebing ]
Bonjour, Je redemande votre aide, je veux améliorer mon formulaire, mais celui ne fonctionne plus. En effet une seule donnée est enregistrée dans la
Réalisation d'une map de déplacement en php avec interraction mySQL [ par monoski ]
Bonjour tout le monde, J'ai récemment repris le coding en php que j'ai abandonné il y a bien longtemps et pour me remettre en jambe je suis quelques
Prob avec formulaire PHP [ par kindking ]
Bonjour, suis nouveau en php et mysql. J'ai un formulaire en html avec les champs suivants issus de 3 tables différentes: nom (de la table info) act
Vérification formulaire livre d'or [ par Danamel ]
Bonjour à tous J'ai actuellement sur mon site un livre d'or qui fonctionne mais désirant le modifier afin de changer sa présentation je fait un s
php mysql html [ par hela31 ]
je travaille sur un site web dans mes etude gestion d une residence j ai table client table tarifs table disponibilite dans une page j ai un tableau q
php/sql join query [ par theunknown0o ]
Bonjour tout le monde,j'essaie d'executer une requete 'join' sql dans un fichier php, mais a chaque fois j'ai une erreur,au niveau de la connexion au
Tableau PHP MySQL [ par titoutoufou1 ]
Bonjour tout le monde, Petit probleme avec mon tableau PHP, il me manque un enregistrement et un seul! J'ai 4 enregistrements dans ma bdd, mais seul
php mysql sous linux [ par kate1910 ]
Bonjour tout le monde , je suis débutante en php et mySQL et j'ai une application à faire , je travail sous linux j'ai essayé d'installer php,mysql et
Livres en rapport
|
Derniers Blogs
ROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGEROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGE par Matthieu MEZIL
Si vous utilisez Roslyn et que vous vous voulez vous simplifier le code du code rewriter, je vous conseille d'installer mon NuGet package RoslynHelper ....(read more) ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|