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

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Pb pour récupérer le résultat d'une fonction dans une autre.

par jaolan » 11 mars 2005, 00:34

Apparemment plusieurs erreurs

Ta fonction suppCritere($critere) attend un argument que tu n'envois pas
ta requete est donc a chaque fois:

DELETE FROM i_criteres WHERE num_critere='';

D'autre part ta fonction rechCritere() ne retourne rien,
donc rechCritere().$res['num_critere'] est aussi toujours vide.

Enfin dans ta fonction rechCritere(), tu dois apres mysql_query()
recuperer le retour de MYSQL sous forme formatee avec un
mysql_fetch_array() par exemple...

Enfin un programme est toujours sequentiel, une chose est faite apres l'autre ...
donc trace le cheminement de tes variables pour voir ou elles se perdent...

par exemple si dans ta fonction suppCritere, tu ajoutes au debut la ligne
exit("num_critere = ".$num_critere);
tu t'apercois qu'elle est vide, donc que la fonction la recoit pas, donc que pour X raison tu l'as pas envoyee, ou qu'elle a pas ete renseignee...et tu remontes jusqu'a l'endroit et ainsi de suite...

Bon courage.

par goeb » 07 mars 2005, 17:34

salut,
je n'ai pas tout lu, mais j'ai trouvé un truc qui est peut-être une erreur :
echo"<Form name=\"Fsuppr\" method=\"post\" action=\"supprCritere.php\">
<input type=\"hidden\" name=\"critSuppr\" value=\"rechCritere().$res['num_critere']">
</Form>";
est-il normal que le "value" de cet "input" soit le texte "rechCritere().$res['num_critere']" ?

ce texte est-il pour toi une fonction php ? en tous cas ici ça ne sera jamais exécuté, car ce n'est pas inclus dans le flot de commandes PHP, mais dans une simple chaîne de caractères.

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

par Invité » 07 mars 2005, 12:59

Salut,la formation en PHP que j'ai eu n'a durée que 8h l'année dernière alors excusez-moi du côté Bateau de la question.

Voila J'ai une table mysql qui s'appelle "i-criteres"(num_critere(Int),libelle(varchar 255), valeur(varchar 255))

La page "i-choixCritere.php3" contient :
 <?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=\[u]"rechCritere().$res['num_critere']\">[/u]
  </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>";
?>
Comme vous le voyez, le formulaire ne contient que le libellé et la valeur or, pour supprimer un ligne de table par le bouton suprimer, j'appelle "supprCritere.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();
?>
suppCritere() a le code suivant
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()");
}

?>
Donc il faut que trouve le num_critere qui va bien avant de supprimer d'où l'apel a :
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()");
}
or, qd je click rien n'est supprimé je pense qu'aucune clé n'est trouvé
Je bloque depuis 1 semaine pliz help me dslé pr la longueur.