Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/02/2008, 21h26   #1
Invité de passage
 
Inscription : février 2008
Messages : 9
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 9
Points : 1
Points : 1
Par défaut [SQL] Insertion d'une table à une autre

Bonjour, je commence depuis deux jours à m'intéresser à la programation et j'ai un petit problème que je n'arrive pas à résoudre.

Voilà, j'ai un formulaire qui récupère des données dans une table "boutique", pour afficher avec une seule ligne une liste de déroulante qui affiche donc le nom de l'objet + le prix.

Ce qui donne :

Code :
1
2
3
4
5
6
7
8
9
10
11
<select name=bname>        
        <?php
			for($i=0; $i<mysql_num_rows($sql); $i++)
			{
			mysql_data_seek($sql,$i);
			extract(mysql_fetch_array($sql));
			$fprix=$bprix;
			echo"<option value=$bname>$bname</option>";
		}
		?>
        </select>
bname = le nom de l'objet

Je voudrais que le prix soit envoyé a la deuxième base "commandes".
J'arrive à récuperer le nom donc, facilement, mais je n'arrive pas a récuperer le prix.

Y a t-il une solution ?

Merci d'avance
thoanny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2008, 22h25   #2
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 540
Points : 9 540
Quel est le contenu de ta variable $sql ?

Citation:
Envoyé par thoanny Voir le message
Bonjour, je commence depuis deux jours à m'intéresser à la programation et j'ai un petit problème que je n'arrive pas à résoudre.
Fais un voeux, c'est le premier d'une longue série !
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2008, 22h28   #3
Invité de passage
 
Inscription : mai 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 7
Points : 3
Points : 3
Quel est ta requete que tu utilises ?
Sinon , je pense qu'il y a une meilleure solution avec un :
Code :
1
2
3
4
5
6
$result = mysql_query($requete)
if (mysql_num_rows($result) > 0){
while($enregistrement=mysql_fetch_array($result))
{
...
}
Pour parcourir chaque enregistrement de la table
oxygen240 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2008, 00h35   #4
Invité de passage
 
Inscription : février 2008
Messages : 9
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 9
Points : 1
Points : 1
La requête ?? Désolé...

Voici les lignes de codes

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<?php
if($act=='send'){
@$sql=mysql_query("SELECT * FROM users WHERE fid=$id AND fpassword='$password'");
 
 	if(!mysql_num_rows($sql))
 	{
	echo"<b><font size=4 color=red>&nbsp &nbsp Mot de passe incorrect !</b></font><p>&nbsp &nbsp Veuillez r&eacute;essayer...";
	exit;
	}
else
{
$ma = date("Y-m-d");
@mysql_query("INSERT INTO commandes (fid, fcado, fprix, fnbr, fdate) VALUES ('$fid','$bname','bprix','$fnbr','$ma')");
echo"<b>Votre demande a bien &eacute;t&eacute; envoy&eacute;e !</b>";
}
}
?>
<table width="100%" border="0" cellspacing="0">
  <tr> 
    <td colspan="2"><b>Vous pouvez faire une demande dans la boutique d&egrave;s que votre solde de points est suffisant pour ce faire ! 
     </b></td>
  </tr>
  <tr> 
    <td>
      <p align="center"><b>Merci de compl&eacute;ter ce formulaire :</b><br>
      </p>
      <form name="form1" method="post" action="">
        <table width="80%" border="0" cellspacing="0" align="center" background="images/fon.gif.gif">
        <tr><td>Choissisez le cadeau de la boutique</td>
        <td>
        <?php
		$sql=mysql_query("SELECT * FROM boutik");
		extract(mysql_fetch_array($sql));
		?>
 
            <select name=bname>        
        <?php
			for($i=0; $i<mysql_num_rows($sql); $i++)
			{
			mysql_data_seek($sql,$i);
			extract(mysql_fetch_array($sql));
			$fprix=$bprix;
			echo"<option value=$bname $bprix>$bname $bprix</option>";
		}
		?>
        </select>        
 
        </td></tr>
        <tr><td>Nombre</td><td><select name="fnbr">
        <option value="1">x1</option>
        <option value="2">x2</option>
        <option value="3">x3</option>
        <option value="4">x4</option>
        <option value="5">x5</option>
        <option value="6">x6</option>
        <option value="7">x7</option>
        <option value="8">x8</option>
        <option value="9">x9</option>
        <option value="10">x10</option>
 
 
              </select></td></tr>
          <tr>
            <td width="37%"><b>Votre ID :</b></td>
            <td width="63%">
              <input type="text" name="id">
            </td>
          </tr>
          <tr> 
            <td width="37%"><b>Votre mot de passe:  	
</b></td>
            <td width="63%"> 
              <input type="password" name="password">
            </td>
          </tr>
          <tr> 
            <td colspan="2"> 
              <div align="center">
                <input type="hidden" name="act" value="send">
                <input type="hidden" name="tp" value="user">
                <input type="hidden" name="st" value="redemption">
                <input type="hidden" name="s" value="2">
                <input type="submit" name="Submit" value="Envoyer">
              </div>
            </td>
          </tr>
        </table>
      </form>
      <p>&nbsp; </p>
    </td>
    <td>&nbsp;</td>
  </tr>
</table>
Je voudrais donc afficher "$bprix" de ma table "boutik" dans la liste déroulante "bname" à côté de "$bname" comme j'ai réussi à le faire. Et ces données doivent être transmises dans la table "commandes" à 'fcado' et 'fprix'.

Et je ne trouve pas de moyen ayant très peu de connaissance... J'ai essayé une règle de calcul simple, mais pas de résultat !
thoanny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2008, 15h10   #5
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 540
Points : 9 540
Je ne comprends pas grand-chose... j'ai l'impression que la requête que tu donnes ici n'a rien à voir avec celle qui alimente la liste déroulante de ton premier message.
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2008, 16h43   #6
Invité de passage
 
Inscription : février 2008
Messages : 9
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 9
Points : 1
Points : 1
C'est le code de ma page php !

Et on retrouve dedans la liste déroulante
thoanny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2008, 18h14   #7
Membre éprouvé
 
Homme
Développeur informatique
Inscription : janvier 2005
Messages : 349
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 50
Localisation : Belgique

Informations professionnelles :
Activité : Développeur informatique
Secteur : Conseil

Informations forums :
Inscription : janvier 2005
Messages : 349
Points : 439
Points : 439
Salut,

voilà ce que je te propose :
Code :
1
2
3
4
 
  while($record = mysql_fetch_object($sql)) {
     echo "  <option value=\"$record->bname\">$record->bname $record->bprix</option>\n";
  }
beeboo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2008, 18h40   #8
Invité de passage
 
Inscription : février 2008
Messages : 9
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 9
Points : 1
Points : 1
En fait on vient de me faire comprendre qu'il fallait que je vois ce travail dans la page qui affiche les commandes.

Il faudrait que je compare le nom de l'objet dans les tables "boutik" et "commandes" pour afficher le prix de la table "boutik" si les deux noms sont égaux.

J'ai essayer, mais c'est une catastrophe ... !
thoanny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2008, 23h31   #9
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 540
Points : 9 540
C'est clair comme de l'eau de boudin
On oublie tout et tu reprends doucement depuis le début ?
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2008, 00h00   #10
Invité de passage
 
Inscription : février 2008
Messages : 9
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 9
Points : 1
Points : 1
Excusez ma non-expérience !

En fait mon problème ne vient pas de mon formulaire de commande, il vient de mon tableau des commandes dans la partie administration.

J'arrive à afficher tout les champs mais pas le prix !
Je voudrais que si :
"bname FROM boutik" = "fname FROM commandes" alors on affiche bprix FROM boutik.

Mais je ne sais pas comment l'écrire...
thoanny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2008, 00h13   #11
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 540
Points : 9 540
ok... et quel est le code SQL de la requête dans laquelle tu voudrais ajouter le prix ?
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2008, 00h27   #12
Invité de passage
 
Inscription : février 2008
Messages : 9
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 9
Points : 1
Points : 1
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?
	$sql=mysql_query("SELECT * FROM commandes ORDER BY fnum");
	$rows=mysql_num_rows($sql);
	for($i=0;$i<$rows;$i++)
	{
	mysql_data_seek($sql,$i);
	$arr=mysql_fetch_array($sql);
	extract($arr);
	$totaltotal=$bprix*$fnbr;
	echo"
	<tr><td>$fnum</td><td>$fid</td><td>$fcado</td><td>$bprix</td><td>$fnbr</td><td>$totaltotal</td><td>$fdate</td><td>Accepter / Refuser<tr></tr>
	"
	;}
	?>
La voici, tout les champs sont donc affichés sauf $bprix puisqu'il est dans la table boutik !
thoanny est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h37.


 
 
 
 
Partenaires

Hébergement Web