Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1901 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Erreur sur function()

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] Erreur sur function()

n°669376
KdZ'
Simple®
Posté le 10-03-2004 à 11:23:53  profilanswer
 

:hello:  :hello:  
 
Bon, petit pb, je debute et là je ne comprend pas pk ça ne fonctionne pas correctement (pas de msg d'erreur, c'est juste qu'il me retourne que ' ')
 

Code :
  1. function get_contenu($val)
  2. {
  3.  if($_GET[$val]=='on')
  4.   {
  5.    return('<table border="0" cellpadding="0" cellspacing="0">');
  6.    $sql = mysql_query('SELECT * FROM resultats');
  7.    while($row = mysql_fetch_row($sql))
  8.     {
  9.      $result=$row[$val-1];
  10.      if(!$result) { $result='&nbsp;'; }
  11.      return('<tr>');
  12.      return('<td nowrap="nowrap">'.$result.'</td>');
  13.      return('</tr>');
  14.     }
  15.    return('</table>');
  16.   }
  17.  else { return('&nbsp;'); }
  18. }


 
Y a quelque chose qui va pas ? :D :D :D

mood
Publicité
Posté le 10-03-2004 à 11:23:53  profilanswer
 

n°669380
Hermes le ​Messager
Breton Quiétiste
Posté le 10-03-2004 à 11:27:40  profilanswer
 

echo $_GET[$val] pour voir...

n°669384
anapajari
s/travail/glanding on hfr/gs;
Posté le 10-03-2004 à 11:29:28  profilanswer
 

moi je vote tu te mélanges entre $val paramètre de ta fonction et $_GET['val'] paramètre de ta page ...
C'est après ce genre de boulette que l'on apprend à bien nommer ces variables!

n°669398
jagstang
Pa Capona ಠ_ಠ
Posté le 10-03-2004 à 11:38:33  profilanswer
 

function get_contenu($val)  
   {  
      if($val == 'on')  
 
 
as-tu compris la notion de fonction, passage des paramètre par copie et tout ça ?


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°669400
KdZ'
Simple®
Posté le 10-03-2004 à 11:39:58  profilanswer
 

Anapajari a écrit :

moi je vote tu te mélanges entre $val paramètre de ta fonction et $_GET['val'] paramètre de ta page ...
C'est après ce genre de boulette que l'on apprend à bien nommer ces variables!


 
 
Nanan t'inkiet :)
En fait cette function fonctionne tres bien, enfin, je devrait parler au passé, bref, je l'appel via un while() (si ça peut aider, je me dit que le pb vient de l'appel de la function...)
 

Code :
  1. $i=1;
  2. while($i<=$col)
  3. {
  4.  print('<td class="Contenu">'.get_contenu($i).'</td>');
  5.  $i++;
  6. }

n°669403
Hermes le ​Messager
Breton Quiétiste
Posté le 10-03-2004 à 11:41:34  profilanswer
 

KdZ' a écrit :


 
 
Nanan t'inkiet :)
En fait cette function fonctionne tres bien, enfin, je devrait parler au passé, bref, je l'appel via un while() (si ça peut aider, je me dit que le pb vient de l'appel de la function...)
 

Code :
  1. $i=1;
  2. while($i<=$col)
  3. {
  4.  print('<td class="Contenu">'.get_contenu($i).'</td>');
  5.  $i++;
  6. }




 
Que donnait echo $_GET[$val] ? Comme je te l'ai demandé ?

n°669404
anapajari
s/travail/glanding on hfr/gs;
Posté le 10-03-2004 à 11:41:47  profilanswer
 

ptain j'ai même pas vu mais ......... C'EST N'IMPORTE QUOI :)
 
quand tu fais un return tu sors de ta fonction, le code en dessous est pas executé!!!
 
[edit:]par ailleurs as tu fais ce que te recommandais hermes, a savoir un print de $_GET['val']???
 
[re-edit:]bon j'ai rien dit


Message édité par anapajari le 10-03-2004 à 11:43:53
n°669406
KdZ'
Simple®
Posté le 10-03-2004 à 11:42:09  profilanswer
 

hermes le messager a écrit :

echo $_GET[$val] pour voir...


 
etrange, ça me donne : offoffon
 
Alors que je devrait avoir 'on' ou 'off' 12x  [:wawash]

n°669408
Hermes le ​Messager
Breton Quiétiste
Posté le 10-03-2004 à 11:43:21  profilanswer
 

KdZ' a écrit :


 
etrange, ça me donne : offoffon
 
Alors que je devrait avoir 'on' ou 'off' 12x  [:wawash]  


 
Bien, donc corrige déjà ça... ET on parlera du reste plus tard...  :hello:
 
PS : Evidemment, le echo était bien dans le CORPS de la fonction hein ?


Message édité par Hermes le Messager le 10-03-2004 à 11:44:14
n°669409
jagstang
Pa Capona ಠ_ಠ
Posté le 10-03-2004 à 11:43:41  profilanswer
 

Anapajari a écrit :

ptain j'ai même pas vu mais ......... C'EST N'IMPORTE QUOI :))
 
quand tu fais un return tu sors de ta fonction, le code en dessous est pas executé!!!


NON C'EST PAS N'IMPORTE QUOI. C'est toi qui connais pas les fonctions!


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
mood
Publicité
Posté le 10-03-2004 à 11:43:41  profilanswer
 

n°669410
KdZ'
Simple®
Posté le 10-03-2004 à 11:43:43  profilanswer
 

Anapajari a écrit :

ptain j'ai même pas vu mais ......... C'EST N'IMPORTE QUOI :))
 
quand tu fais un return tu sors de ta fonction, le code en dessous est pas executé!!!


A bon, arf, merci  :jap: Effectivement c tout con, et la doc n'y fait pas réference :o
 
Donc là je suis obliger de tout stoker dans une variable et de faire un return de celle-ci ? y a pas plus simple ?

n°669412
KdZ'
Simple®
Posté le 10-03-2004 à 11:44:17  profilanswer
 

Ah j'ai trouvé ça :
 
4.7.13 return
 
Si appelée depuis une fonction, la commande return termine immédiatement la fonction, et retourne l'argument qui lui est passé. return interromp aussi l'exécution de commande eval ou de scripts.


Message édité par KdZ' le 10-03-2004 à 11:46:31
n°669416
jagstang
Pa Capona ಠ_ಠ
Posté le 10-03-2004 à 11:46:30  profilanswer
 

function ispair($n)
    {
    if ($n%2 == 0)
        return true ;
    return false ;
    }
 
pas besoin du else


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°669418
anapajari
s/travail/glanding on hfr/gs;
Posté le 10-03-2004 à 11:46:42  profilanswer
 

JagStang a écrit :


NON C'EST PAS N'IMPORTE QUOI. C'est toi qui connais pas les fonctions!


Citation :


D'après http://fr.php.net/manual/fr/function.return.php:
Si appelée depuis une fonction, la commande return() termine immédiatement la fonction, et retourne l'argument qui lui est passé. return() interromp aussi l'exécution de commande eval() ou de scripts.  

n°669419
jagstang
Pa Capona ಠ_ಠ
Posté le 10-03-2004 à 11:47:20  profilanswer
 

en gros moi. si la doc en fait pas référence, c'est que ça parait tellement logique. au lieu de if imbriqués, tu test l'erreur et tu retourne l'erreur. bref


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°669421
anapajari
s/travail/glanding on hfr/gs;
Posté le 10-03-2004 à 11:48:09  profilanswer
 

JagStang a écrit :

function ispair($n)
    {
    if ($n%2 == 0)
        return true ;
    return false ;
    }
 
pas besoin du else
 


euuuh vas-y explique moi en quoi ça prouve que quand tu fais un return tu sors pas de la fonction, stp!

n°669422
KdZ'
Simple®
Posté le 10-03-2004 à 11:48:26  profilanswer
 

Comment vous feriez alors ?

n°669423
jagstang
Pa Capona ಠ_ಠ
Posté le 10-03-2004 à 11:48:36  profilanswer
 

TU SORS de la fonction : relis le post


Message édité par jagstang le 10-03-2004 à 11:49:29

---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°669430
anapajari
s/travail/glanding on hfr/gs;
Posté le 10-03-2004 à 11:50:51  profilanswer
 

KdZ' a écrit :


Donc là je suis obliger de tout stoker dans une variable et de faire un return de celle-ci ? y a pas plus simple ?


 
Tout stocker dans une variable que tu retournes ensuite est en effet une solution.
 
Mais avant il va falloir que tu trouves pourquoi tu as pas $_GET['val'] à on.

n°669432
anapajari
s/travail/glanding on hfr/gs;
Posté le 10-03-2004 à 11:53:24  profilanswer
 

JagStang a écrit :

TU SORS de la fonction : relis le post


Euuh c'est marrant je crois qu'on dit la même chose et que c'est toi qui a pas lu le post, parce que relis bien ce que tu as quoté la:

JagStang a écrit :


NON C'EST PAS N'IMPORTE QUOI. C'est toi qui connais pas les fonctions!

n°669434
KdZ'
Simple®
Posté le 10-03-2004 à 11:54:53  profilanswer
 

C'est bon maintenant ça fonctionne tres bien ;)
 
function get_contenu($val)
 {
  $str='';
  if($_GET[$val]=='on')
   {
    $str=('<table border="0" cellpadding="0" cellspacing="0">');
    $sql = mysql_query('SELECT * FROM resultats');
    while($row = mysql_fetch_row($sql))
     {
      $result=$row[$val-1];
      if(!$result) { $result='&nbsp;'; }
      $str=($str.'<tr>');
      $str=($str.'<td nowrap="nowrap">'.$result.'</td>');
      $str=($str.'</tr>');
     }
    $str=($str.'</table>');
   }
  else { $str=('&nbsp;'); }
  return $str;
 }
 
alors voila, par contre, que signifie .= en php ?


Message édité par KdZ' le 10-03-2004 à 11:56:08
n°669440
anapajari
s/travail/glanding on hfr/gs;
Posté le 10-03-2004 à 11:58:01  profilanswer
 

bin ça te permet d'eviter le code pas beau que tu as ecrit plus haut ;)

Code :
  1. $str.='</tr>';


ça fait la même chose que ton

Code :
  1. $str=($str.'</tr>');


Message édité par anapajari le 10-03-2004 à 11:58:17
n°669471
jagstang
Pa Capona ಠ_ಠ
Posté le 10-03-2004 à 12:30:46  profilanswer
 

Citation :


ptain j'ai même pas vu mais ......... C'EST N'IMPORTE QUOI    
 
quand tu fais un return tu sors de ta fonction, le code en dessous est pas executé!!!  


 
tu dis que c'est n'importe quoi que return quitte la fonction, et que c'est moi qui me trompe :o
 
sinon pour la fonction, le $_GET est FAUX !
1) la fonction ne sera pas résutilisable
2) la valeur $val passée n'es pas utilisée. (aucun sens)


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°669473
KdZ'
Simple®
Posté le 10-03-2004 à 12:31:24  profilanswer
 

ah vi c'est bien ce qui me semblait, mais j'etait pas sur, merci ;)

n°669476
KdZ'
Simple®
Posté le 10-03-2004 à 12:33:00  profilanswer
 

JagStang a écrit :

Citation :


ptain j'ai même pas vu mais ......... C'EST N'IMPORTE QUOI    
 
quand tu fais un return tu sors de ta fonction, le code en dessous est pas executé!!!  


 
tu dis que c'est n'importe quoi que return quitte la fonction, et que c'est moi qui me trompe :o
 
sinon pour la fonction, le $_GET est FAUX !
1) la fonction ne sera pas résutilisable
2) la valeur $val passée n'es pas utilisée. (aucun sens)


 
Et pk il est faux ?

n°669482
jagstang
Pa Capona ಠ_ಠ
Posté le 10-03-2004 à 12:41:56  profilanswer
 

parce que tu dois utilise la variable de la fonction, et pas le $_GET[''] de la page...  
 
1) comprends-tu le concept de fonction et de passage des paramètres par copie ?
 
avec $_GET tu vas chercher les paramètres de la page, rien à voir avec ceux de la fonction.


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°669496
KdZ'
Simple®
Posté le 10-03-2004 à 12:55:39  profilanswer
 

Je c'est :o
 
En fait ce que je fait, je verifie si $_get[x]=='on' où x correspond a la valeur pasée dans la fonction().
 
Ok ? ;)
 
Edit : x est forcement present dans l'url, car control, else header() avec les bon params dans l'url.
D'ou l'oublie volontaire des isset() or empty() ;)


Message édité par KdZ' le 10-03-2004 à 12:56:56
n°669499
jagstang
Pa Capona ಠ_ಠ
Posté le 10-03-2004 à 12:57:12  profilanswer
 

non. tu dois faire $val pour atteindre la valeur passée dans la fonction :o :o


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°669501
jagstang
Pa Capona ಠ_ಠ
Posté le 10-03-2004 à 12:57:22  profilanswer
 

j'abandonne


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°669508
KdZ'
Simple®
Posté le 10-03-2004 à 13:02:50  profilanswer
 

Donne moi la ligne qui te pose pb.
 
Et voila la page, tu comprendras peut etre mieux : http://www.marathoncotedamour.com/pages/resultats.php

n°669515
jagstang
Pa Capona ಠ_ಠ
Posté le 10-03-2004 à 13:10:19  profilanswer
 

ce qui me pose problème, c'est que ta fonction n'est _PAS_ réutilisable. car elle utilise des paramètres AUTRES que ceux de la fonction elle-même. pour le reste, tu fais ce que tu veux. mais moi j'appelle pas ça une fonction.
 
je comprends très bien que tu utilises les param en GET. mais bon voilà.


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°669521
KdZ'
Simple®
Posté le 10-03-2004 à 13:14:30  profilanswer
 

Ah bon... si tu'ldis ;)

n°669532
anapajari
s/travail/glanding on hfr/gs;
Posté le 10-03-2004 à 13:28:48  profilanswer
 

bon en voyant ta page on comprends mieux ce que tu veux faire, et donc pour moi tu es parti dans une mauvaise direction:
si j'ai tout compris, tu souhaites afficher ou non des colonnes de dans un tableau en fonction de paramètres ( ce tableau étant rempli par des enregistrements d'une bdd).
 
Alors perso:
1- tu changes le nom de tes paramètres à on&off. 1,2,... ça a jamais été des noms de variables valables. ( par exemple col1, col2 ... c'est déjà mieux, temps que tu y es fait commencé par col0)
2- tu conditionnes les champs remontés par ta requete en fonction des paramètres

Code :
  1. $fields=('champs1', 'champs2' ...); // tu remplaces par le nom des colonnes de ta table
  2. // tu tries en fonction des paramêtres
  3. for($i=0; $i<count($fields); $i++)
  4. {
  5.   if ( $_GET['val'.$i] != 'on'){ $fields[$i] = "'&nbsp;'";}
  6. }
  7. // tu fais ta requete
  8. $query = "select".implode(',', $fields)."....";
  9. // et tu fais le même traitement tout le temps à partir de la


pas besoin de fonction rien et c'est plus clair ( à mon sens), mais j'attends l'avis des experts.
 
ps pour JagStang: j'ai toujours pas compris si on était d'accord sur le fait que return sort de la fonction :o


Message édité par anapajari le 10-03-2004 à 13:29:10
n°669600
jagstang
Pa Capona ಠ_ಠ
Posté le 10-03-2004 à 14:17:14  profilanswer
 

>> anapajari : j'ai toujours dit que le return sort de la fct. tu le fait exprès ou quoi?


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°669610
anapajari
s/travail/glanding on hfr/gs;
Posté le 10-03-2004 à 14:20:26  profilanswer
 

JagStang> t'énerves pas, j'ai bien fini par comprendre qu'on disait la même chose, mais toi non ;)
Parce que quand je dit:

Anapajari a écrit :

ptain j'ai même pas vu mais ......... C'EST N'IMPORTE QUOI :)
 
quand tu fais un return tu sors de ta fonction, le code en dessous est pas executé!!!


c'est pourtant clair que "quand tu fais un return, tu sors de la fonction".  
Et sur ce tu me réponds que je connais pas les fonctions, ça me surprend.

n°669617
jagstang
Pa Capona ಠ_ಠ
Posté le 10-03-2004 à 14:23:09  profilanswer
 

je vois la malentendu en effet. tu as l'air tout étonné (!!!) que le code ne soit pas exécuté.


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°669662
KdZ'
Simple®
Posté le 10-03-2004 à 14:38:08  profilanswer
 

Oula, ouai, le pb c'est qu'etant debutant j'ai plein de code, alors  qu'un peu de connaissances, permet de reduire considerablement le code :/
 
J'ose meme pas te montrer de quoi il retourne :D

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Erreur sur function()

 

Sujets relatifs
[PHP] Comment générer une image aléatoirement ?[PHP/MySQL] requete avec "LIKE $a" mais avec si $a='%' ?
comment passer un proxy en s'authentifiant ---> erreur 407Fonction pour augmenter la netteté d'une image sous PHP
[PHP MYSQL] Question simple...[PHP] Actualisation d'une image généréé avec GD,
Free et les fonctions FTP de PHP[PHP] Ptite question --> comment je fais pour incrémenter un compteur?
Performances PHP/MySQLErreur de déclaration: Note& au lieu de Note*
Plus de sujets relatifs à : [PHP] Erreur sur function()


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR