begin process at 2012 05 31 13:57:52
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

Récupérer les valeurs de la première colonne d'une table dans un tableau


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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 zodiacJe 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

1 2

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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,624 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales