Erreur sur function() [PHP] - PHP - Programmation
Marsh Posté le 10-03-2004 à 11:29:28
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!
Marsh Posté le 10-03-2004 à 11:38:33
function get_contenu($val)
{
if($val == 'on')
as-tu compris la notion de fonction, passage des paramètre par copie et tout ça ?
Marsh Posté le 10-03-2004 à 11:39:58
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 ... |
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 :
|
Marsh Posté le 10-03-2004 à 11:41:34
KdZ' a écrit :
|
Que donnait echo $_GET[$val] ? Comme je te l'ai demandé ?
Marsh Posté le 10-03-2004 à 11:41:47
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
Marsh Posté le 10-03-2004 à 11:42:09
hermes le messager a écrit : echo $_GET[$val] pour voir... |
etrange, ça me donne : offoffon
Alors que je devrait avoir 'on' ou 'off' 12x
Marsh Posté le 10-03-2004 à 11:43:21
KdZ' a écrit : |
Bien, donc corrige déjà ça... ET on parlera du reste plus tard...
PS : Evidemment, le echo était bien dans le CORPS de la fonction hein ?
Marsh Posté le 10-03-2004 à 11:43:41
Anapajari a écrit : ptain j'ai même pas vu mais ......... C'EST N'IMPORTE QUOI ) |
NON C'EST PAS N'IMPORTE QUOI. C'est toi qui connais pas les fonctions!
Marsh Posté le 10-03-2004 à 11:43:43
Anapajari a écrit : ptain j'ai même pas vu mais ......... C'EST N'IMPORTE QUOI ) |
A bon, arf, merci Effectivement c tout con, et la doc n'y fait pas réference
Donc là je suis obliger de tout stoker dans une variable et de faire un return de celle-ci ? y a pas plus simple ?
Marsh Posté le 10-03-2004 à 11:44:17
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.
Marsh Posté le 10-03-2004 à 11:46:30
function ispair($n)
{
if ($n%2 == 0)
return true ;
return false ;
}
pas besoin du else
Marsh Posté le 10-03-2004 à 11:46:42
JagStang a écrit : |
Citation : |
Marsh Posté le 10-03-2004 à 11:47:20
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
Marsh Posté le 10-03-2004 à 11:48:09
JagStang a écrit : function ispair($n) |
euuuh vas-y explique moi en quoi ça prouve que quand tu fais un return tu sors pas de la fonction, stp!
Marsh Posté le 10-03-2004 à 11:48:36
TU SORS de la fonction : relis le post
Marsh Posté le 10-03-2004 à 11:50:51
KdZ' a écrit : |
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.
Marsh Posté le 10-03-2004 à 11:53:24
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 : |
Marsh Posté le 10-03-2004 à 11:54:53
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=' '; }
$str=($str.'<tr>');
$str=($str.'<td nowrap="nowrap">'.$result.'</td>');
$str=($str.'</tr>');
}
$str=($str.'</table>');
}
else { $str=(' '); }
return $str;
}
alors voila, par contre, que signifie .= en php ?
Marsh Posté le 10-03-2004 à 11:58:01
bin ça te permet d'eviter le code pas beau que tu as ecrit plus haut
Code :
|
ça fait la même chose que ton
Code :
|
Marsh Posté le 10-03-2004 à 12:30:46
Citation : |
tu dis que c'est n'importe quoi que return quitte la fonction, et que c'est moi qui me trompe
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)
Marsh Posté le 10-03-2004 à 12:31:24
ah vi c'est bien ce qui me semblait, mais j'etait pas sur, merci
Marsh Posté le 10-03-2004 à 12:33:00
JagStang a écrit :
|
Et pk il est faux ?
Marsh Posté le 10-03-2004 à 12:41:56
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.
Marsh Posté le 10-03-2004 à 12:55:39
Je c'est
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()
Marsh Posté le 10-03-2004 à 12:57:12
non. tu dois faire $val pour atteindre la valeur passée dans la fonction
Marsh Posté le 10-03-2004 à 12:57:22
j'abandonne
Marsh Posté le 10-03-2004 à 13:02:50
Donne moi la ligne qui te pose pb.
Et voila la page, tu comprendras peut etre mieux : http://www.marathoncotedamour.com/pages/resultats.php
Marsh Posté le 10-03-2004 à 13:10:19
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à.
Marsh Posté le 10-03-2004 à 13:28:48
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 :
|
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
Marsh Posté le 10-03-2004 à 14:17:14
>> anapajari : j'ai toujours dit que le return sort de la fct. tu le fait exprès ou quoi?
Marsh Posté le 10-03-2004 à 14:20:26
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 |
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.
Marsh Posté le 10-03-2004 à 14:23:09
je vois la malentendu en effet. tu as l'air tout étonné (!!!) que le code ne soit pas exécuté.
Marsh Posté le 10-03-2004 à 14:38:08
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
Marsh Posté le 10-03-2004 à 11:23:53
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 ' ')
Y a quelque chose qui va pas ?