Pb pour récupérer le résultat d'une fonction dans une autre.

Petit nouveau ! | 2 Messages

07 mars 2005, 16:30

Salut,
J'ai 1 soucis qui me bloque depuis 1 semaine. ca va etre long lisez juqu'au bout svp
J'ai une table mysql i-critères (num_critere(int),libelle(varchar 255), valeur(varchar 255)) J'ai un formulaire n'ayant comme champs visible que le libelle et la valeur
<form action="i-choixCritere-trait.php?ajout=<?php echo $ajout; ?>" method="post">
      <table cellpadding="10" align="center" width="80%" border="2" bordercolordark="#336633" bordercolorlight="#00CC66" bordercolor="#009933" frame="border" rules="none">
        <tr>
          <td width="55%" height="36" class="myTitre2">
            Choisissez le libellé :
            <br>
            <?php rechCritereLib();?>
            <select size="1" name="libelle">
              <option value=Inconnu>
              Inconnu
              </option>
              <? while ($val=mysql_fetch_array($res)) { ?>
              <option>
              <? echo $val["libelle"]; ?>
              </option>
              <? } ?>
            </select>
          </td>
        </tr>
        <tr>
          <td height="54" class="myTitre2">
            Choisissez la valeur :
            <br>
            <?php rechCritereVal();?>
            <select size="1" name="valeur">
              <option value=Inconnu>
              Inconnu
              </option>
              <? while ($val=mysql_fetch_array($res)) { ?>
              <option>
              <? echo $val["valeur"]; ?>
              </option>
              <? } ?>
            </select>
          </td>
        </tr>
      </table>
      <br>
      <table cellpadding="10" align="center" width="80%" border="2" bordercolordark="#336633" bordercolorlight="#00CC66" bordercolor="#009933" frame="border" rules="none">
        <tr>
          <td align="center">
            <input type="submit" name="Valider" value="Valider" >
            &nbsp;&nbsp;&nbsp;
            <input type="reset"  value="Effacer" name="Effacer">            
          </td>   
    </form>
<?
	echo"<Form name=\"Fsuppr\" method=\"post\" action=\"supprCritere.php\">
	<input type=\"hidden\" name=\"critSuppr\" value=\"rechCritere().$res['num_critere']\">
  </Form>";

	echo"<td>
	<Input name=\"Supprimer\" type=\"button\" value=\"Supprimer\" onClick='	if(confirm(\"Etes vous sure de vouloir supprimer ce critère ?\")) document.Fsuppr.submit();'>
	</td>";
?> La fonction rechCritere() est censée retourner le numéro du critère et voici sont code
function rechCritere() 
{
	global $link;
	global $res;
	global $libelle;
	global $valeur;
		
	$query="SELECT num_critere FROM i_criteres WHERE (libelle='$libelle' AND valeur='$valeur')";
	$res=mysql_query($query,$link) or die ("erreur fonction rechercherCritere()");
}
Je dois l'utiliser car la fonction suppCritere()
function suppCritere($num_critere)
{
	global $link;
	global $res2;
		$query="DELETE FROM i_criteres WHERE num_critere='$num_critere'";
		print $res2;
		if ($res2==null)
		print "null";
	$res2=mysql_query($query,$link) or die ("erreur fonction suppCritere()");
}
que j'appelle ds supprCritère.php
<?php
//insertion du fichier contenant les requetes
require ("../fonction_req.php3");

//Connection à la base de données
$link=mysql_connect("localhost","root","") or die("Impossible de se connecter".mysql_error());
mysql_select_db("Mycologie", $link) or die("Impossible de se connecter".mysql_error());
suppCritere();
?>
travaille avec ce champ.
Lorsque je clique sur supprimer je n'ai pas de message d'erreur mais rien n'est fait dans la base please help me.

Eléphant du PHP | 413 Messages

07 mars 2005, 17:44

j'ai pas tout lu, mais un truc me paraît bizarre, et c'est peut-être une source d'erreur :
function suppCritere($num_critere)
{
global $link;
global $res2;
$query="DELETE FROM i_criteres WHERE num_critere='$num_critere'";
print $res2;
if ($res2==null)
print "null";
$res2=mysql_query($query,$link) or die ("erreur fonction suppCritere()");
}
la variable $res2 n'étant utilisée nulle part ailleurs dans le code, je ne comprends pas pourquoi elle est globale.
--
Goeb

Invité
Invité n'ayant pas de compte PHPfrance

09 mars 2005, 12:43

Le bon code est(formulaire) :
  ?>
    <br>
    <form action="i-choixCritere-trait.php?ajout=<?php echo $ajout; ?>" method="post" name="formulaire"">
      <table cellpadding="10" align="center" width="80%" border="2" bordercolordark="#336633" bordercolorlight="#00CC66" bordercolor="#009933" frame="border" rules="none">
        <tr>
          <td width="55%" height="36" class="myTitre2">
            Choisissez le libellé :
            <br>
            <?php rechCritereTout();?>
            <select size="1" name="libelle">
              <option value=Inconnu>
              Inconnu
              </option>
              <? while ($val=mysql_fetch_array($res)) {
                echo "<option>".$val["libelle"]."</option>\n";
              } ?>
            </select>
          </td>
        </tr>
        <tr>
          <td height="54" class="myTitre2">
            Choisissez la valeur :
            <br>
            <?php rechCritereValLib()">
              <option value=Inconnu>
              Inconnu
              </option>
              <? while ($val=mysql_fetch_array($res)) { 
              echo "<option value='".$val["num_critere"]."'>".$val["valeur"]."</option>\n"; 
              } ?>