par
Elisa » 19 août 2005, 16:20
A l'origine j'avais repris la requête initiale pour la changer par la requête avec jointure car je voulais optimiser mon script.
Finalement, il s'est avéré que j'étais tout de même obligée de faire une seconde requête pour afficher le groupe auquel appartient la société.
Finalement ça me donne un mixte:
<?php
//Récupération de l'identifiant de l'enregistrement//
$IdSociete = $_POST['IdSociete'];
?>
<!--Formulaire-->
<form action="b_societes_mod3.php" method="post">
<!--Champ caché à transmettre-->
<input type="hidden" name="IdSociete" value="<? echo $IdSociete; ?>">
<?php
//Connection à la base//
$lien = mysql_connect("xx","xx","xx");
mysql_select_db("xx", $lien);
//Selection des champs dans les tables "societes" et "groupes"//
$requete="SELECT IdSociete, NomSociete, AutreNomSociete, NomGroupe, Specialite,
s.Presentation, s.InfCompl, PaysOrigine, Adresse, Tel, Fax, SiteSociete,
NomReprFr, AdresseReprFr, TelReprFr, FaxReprFr
FROM societes s
LEFT OUTER JOIN groupes g ON s.RefGroupe=g.IdGroupe
WHERE IdSociete='".$IdSociete."'";
//Résultat de la requête
$result=mysql_query($requete) or die(mysql_error());
$IdSociete = mysql_result($result,0,'IdSociete');
$NomSociete = mysql_result($result,0,'NomSociete');
$AutreNomSociete = mysql_result($result,0,'AutreNomSociete');
$NomGroupe = mysql_result($result,0,'NomGroupe');
$Specialite = mysql_result($result,0,'Specialite');
$Presentation = mysql_result($result,0,'Presentation');
$InfCompl = mysql_result($result,0,'InfCompl');
$PaysOrigine = mysql_result($result,0,'PaysOrigine');
$Adresse = mysql_result($result,0,'Adresse');
$Tel = mysql_result($result,0,'Tel');
$Fax = mysql_result($result,0,'Fax');
$SiteSociete = mysql_result($result,0,'SiteSociete');
$NomReprFr = mysql_result($result,0,'NomReprFr');
$AdresseReprFr = mysql_result($result,0,'AdresseReprFr');
$TelReprFr = mysql_result($result,0,'TelReprFr');
$FaxReprFr = mysql_result($result,0,'FaxReprFr');
//Fermeture de la base//
mysql_close($lien);
?>
<?php echo '<input type="text" name="NomSociete" size=60 value="'.$NomSociete.'">';?><br>
<?php echo '<input type="text" name="AutreNomSociete" size=60 value="'.$AutreNomSociete.'">';?><br>
Nom du groupe :
<select name="RefGroupe">
<?php
//Connection à la base
$lien = mysql_connect("xx","xx","xx");
mysql_select_db("xx", $lien);
//Selection des champs dans la table groupe//
$requete2="SELECT IdGroupe, NomGroupe, AutreNomGroupe, Presentation, InfCompl FROM groupes";
$RefGroupe = " :?: ";
$result2=mysql_query($requete2);
while ($groupe=mysql_fetch_array($result2))
{
if ($groupe["IdGroupe"] == $RefGroupe)
{
echo '<option value="'.$groupe['IdGroupe'].'" selected="selected">'.$groupe['NomGroupe'].'</option>';
}
else
{
echo '<option value="'.$groupe['IdGroupe'].'">'.$groupe['NomGroupe'].'</option>';
}
}
mysql_close($lien);
?>
</select>
<textarea name="Presentation" rows="8" cols="45"><? echo $Presentation;?></textarea><br>
<textarea name="InfCompl" rows="8" cols="45"><? echo $InfCompl;?></textarea><br>
<?php echo '<input type="text" name="PaysOrigine" value="'.$PaysOrigine.'">';?><br>
<textarea name="Adresse" rows="8" cols="45"><? echo $Adresse;?></textarea>
<br>
<?php echo '<input type="text" name="Tel" value="'.$Tel.'">';?><br>
<?php echo '<input type="text" name="Fax" value="'.$Fax.'">';?><br>
<?php echo '<input type="text" name="SiteSociete" size=60 value="'.$SiteSociete.'">';?><br>
<?php echo '<input type="text" name="NomReprFr" size=60 value="'.$NomReprFr.'">';?><br>
<textarea name="AdresseReprFr" rows="8" cols="45"><? echo $AdresseReprFr;?></textarea><br>
<?php echo '<input type="text" name="TelReprFr" value="'.$TelReprFr.'">';?><br>
<?php echo '<input type="text" name="FaxReprFr" value="'.$FaxReprFr.'">';?><br>
<input type="submit" value="Modifier">
Il faut donc que je revienne à un simple SELECT sans jointure pour ma première requete puisque je n'ai plus besoin de la jointure (puisque je ne peux pas optimiser le tout en une seule requete)?
A l'origine j'avais repris la requête initiale pour la changer par la requête avec jointure car je voulais optimiser mon script.
Finalement, il s'est avéré que j'étais tout de même obligée de faire une seconde requête pour afficher le groupe auquel appartient la société.
Finalement ça me donne un mixte:
[php]<?php
//Récupération de l'identifiant de l'enregistrement//
$IdSociete = $_POST['IdSociete'];
?>
<!--Formulaire-->
<form action="b_societes_mod3.php" method="post">
<!--Champ caché à transmettre-->
<input type="hidden" name="IdSociete" value="<? echo $IdSociete; ?>">
<?php
//Connection à la base//
$lien = mysql_connect("xx","xx","xx");
mysql_select_db("xx", $lien);
//Selection des champs dans les tables "societes" et "groupes"//
$requete="SELECT IdSociete, NomSociete, AutreNomSociete, NomGroupe, Specialite,
s.Presentation, s.InfCompl, PaysOrigine, Adresse, Tel, Fax, SiteSociete,
NomReprFr, AdresseReprFr, TelReprFr, FaxReprFr
FROM societes s
LEFT OUTER JOIN groupes g ON s.RefGroupe=g.IdGroupe
WHERE IdSociete='".$IdSociete."'";
//Résultat de la requête
$result=mysql_query($requete) or die(mysql_error());
$IdSociete = mysql_result($result,0,'IdSociete');
$NomSociete = mysql_result($result,0,'NomSociete');
$AutreNomSociete = mysql_result($result,0,'AutreNomSociete');
$NomGroupe = mysql_result($result,0,'NomGroupe');
$Specialite = mysql_result($result,0,'Specialite');
$Presentation = mysql_result($result,0,'Presentation');
$InfCompl = mysql_result($result,0,'InfCompl');
$PaysOrigine = mysql_result($result,0,'PaysOrigine');
$Adresse = mysql_result($result,0,'Adresse');
$Tel = mysql_result($result,0,'Tel');
$Fax = mysql_result($result,0,'Fax');
$SiteSociete = mysql_result($result,0,'SiteSociete');
$NomReprFr = mysql_result($result,0,'NomReprFr');
$AdresseReprFr = mysql_result($result,0,'AdresseReprFr');
$TelReprFr = mysql_result($result,0,'TelReprFr');
$FaxReprFr = mysql_result($result,0,'FaxReprFr');
//Fermeture de la base//
mysql_close($lien);
?>
<?php echo '<input type="text" name="NomSociete" size=60 value="'.$NomSociete.'">';?><br>
<?php echo '<input type="text" name="AutreNomSociete" size=60 value="'.$AutreNomSociete.'">';?><br>
Nom du groupe :
<select name="RefGroupe">
<?php
//Connection à la base
$lien = mysql_connect("xx","xx","xx");
mysql_select_db("xx", $lien);
//Selection des champs dans la table groupe//
$requete2="SELECT IdGroupe, NomGroupe, AutreNomGroupe, Presentation, InfCompl FROM groupes";
$RefGroupe = " :?: ";
$result2=mysql_query($requete2);
while ($groupe=mysql_fetch_array($result2))
{
if ($groupe["IdGroupe"] == $RefGroupe)
{
echo '<option value="'.$groupe['IdGroupe'].'" selected="selected">'.$groupe['NomGroupe'].'</option>';
}
else
{
echo '<option value="'.$groupe['IdGroupe'].'">'.$groupe['NomGroupe'].'</option>';
}
}
mysql_close($lien);
?>
</select>
<textarea name="Presentation" rows="8" cols="45"><? echo $Presentation;?></textarea><br>
<textarea name="InfCompl" rows="8" cols="45"><? echo $InfCompl;?></textarea><br>
<?php echo '<input type="text" name="PaysOrigine" value="'.$PaysOrigine.'">';?><br>
<textarea name="Adresse" rows="8" cols="45"><? echo $Adresse;?></textarea>
<br>
<?php echo '<input type="text" name="Tel" value="'.$Tel.'">';?><br>
<?php echo '<input type="text" name="Fax" value="'.$Fax.'">';?><br>
<?php echo '<input type="text" name="SiteSociete" size=60 value="'.$SiteSociete.'">';?><br>
<?php echo '<input type="text" name="NomReprFr" size=60 value="'.$NomReprFr.'">';?><br>
<textarea name="AdresseReprFr" rows="8" cols="45"><? echo $AdresseReprFr;?></textarea><br>
<?php echo '<input type="text" name="TelReprFr" value="'.$TelReprFr.'">';?><br>
<?php echo '<input type="text" name="FaxReprFr" value="'.$FaxReprFr.'">';?><br>
<input type="submit" value="Modifier">[/php]
Il faut donc que je revienne à un simple SELECT sans jointure pour ma première requete puisque je n'ai plus besoin de la jointure (puisque je ne peux pas optimiser le tout en une seule requete)?