[PHP] pb de concaténation

pb de concaténation [PHP] - PHP - Programmation

Marsh Posté le 26-11-2002 à 15:02:02    

Voilà, j'ai un souci pour concaténer img_up et ma variable comprise dans $ligne->id à cause des "." la concaténation ne se fait pas, que dois-je rajouter pour que cela fonctionne ? (ça me fait des erreus de script dans ie et le roller over n'a pas lieu justement.
 
 
 
 
print "<a href=\"#haut\"onmouseover=\"document.img_up.src='images/up_on.gif'\" onmouseout=\"document.img_up.$ligne->id.src='images/up_off.gif'\"><img src=\"images/up_off.gif\" border=\"0\" name=\"img_up.$ligne->id\"></a>";


---------------
.:: Feed-Back  ::. Choisis un travail que tu aimes, et tu n'auras pas à travailler un seul jour de ta vie.
Reply

Marsh Posté le 26-11-2002 à 15:02:02   

Reply

Marsh Posté le 26-11-2002 à 17:41:34    

Perso j'encapsule jamais mon HTML dans le PHP, c'est plutôt du :
 
if (condition) { ?>
 
<a href="<? echo $mapage; ?>">blablabla...</a>
 
<? } ?>
 
Avec ça, j'évite quasiment tous les soucis de guillemets/apostrophes.
 
Tu vois le truc? :)


Message édité par Fred999 le 27-11-2002 à 10:47:23
Reply

Marsh Posté le 26-11-2002 à 17:44:15    

sinon essaye de fermer les guillemets :
 
print "<a href=\"#haut\"onmouseover=\"document.img_up.src='images/up_on.gif'\" onmouseout=\"document.img_up".$ligne->id."src='images/up_off.gif'\"><img src=\"images/up_off.gif\" border=\"0\" name=\"img_up.".$ligne->id."\"></a>";

Reply

Marsh Posté le 26-11-2002 à 17:44:55    

Fred999 a écrit a écrit :

Perso j'encapsule jamais mon HTML dans le PHP, c'est  lputôt du :
 
if (condition) { ?>
 
<a href="<? echo $mapage; ?>">blablabla...</a>
 
<? } ?>
 
Avec ça, j'évite quasiment tous les soucis de guillemets/apostrophes.
 
Tu vois le truc? :)




 
moi je suis bordélique  :jap: :d
 
je vais essayer d'adapter ta méthode mais j'aurais tellement de page à modifier  :sweat:  
 
merci ;)


---------------
.:: Feed-Back  ::. Choisis un travail que tu aimes, et tu n'auras pas à travailler un seul jour de ta vie.
Reply

Marsh Posté le 26-11-2002 à 17:45:25    

Fred999 a écrit a écrit :

 
Avec ça, j'évite quasiment tous les soucis de guillemets/apostrophes.




 
par contre la lisibilité en prend un coup, c'est pire que les \" je trouve :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 26-11-2002 à 17:46:25    

webmaster PCPRICE a écrit a écrit :

sinon essaye de fermer les guillemets :
 
print "<a href=\"#haut\"onmouseover=\"document.img_up.src='images/up_on.gif'\" onmouseout=\"document.img_up".$ligne->id."src='images/up_off.gif'\"><img src=\"images/up_off.gif\" border=\"0\" name=\"img_up.".$ligne->id."\"></a>";




 
je test ça ce soir, je te tiens au courant, merci !


---------------
.:: Feed-Back  ::. Choisis un travail que tu aimes, et tu n'auras pas à travailler un seul jour de ta vie.
Reply

Marsh Posté le 27-11-2002 à 09:40:15    

alors en fait j'ai réglé le pb en concaténant dans une variable à part, ct plus simple.
 
Merci de votre aide :)
 
 
$imagesource=img_up.$ligne->id;
   print "<center><br><a href=\"#haut\"onmouseover=\"document.$imagesource.src='images/up_on.gif'\"
   onmouseout=\"document.$imagesource.src='images/up_off.gif'\"><img
   src=\"images/up_off.gif\" border=\"0\" name=\"$imagesource\"></a>


---------------
.:: Feed-Back  ::. Choisis un travail que tu aimes, et tu n'auras pas à travailler un seul jour de ta vie.
Reply

Marsh Posté le 27-11-2002 à 10:48:06    

antp a écrit a écrit :

 
 
par contre la lisibilité en prend un coup, c'est pire que les \" je trouve :D
 




 
Là, c'est chacun son staïle ;)
 
Et j'indente toujours bien mon code, ça aide pas mal ;)

Reply

Marsh Posté le 27-11-2002 à 10:50:57    

oué mais tu prends de mauvaise habitude. C'est vrai que le php reconnait des variable dans des chaines de texte genre
 
echo "il fait $temperature degré $lieu, $température_phrase";
 
mais il est plus propre de voir la différence entre du vrai texte et des variables, d'ailleur avec un editeur de texte a colorification syntaxique tu le voit bien
donc ca donne :
 
echo "il fait ".$temperature." degré ".$lieu.", ".$température_phrase;
 
cet exemple parce que pour moi :
"il fait 0 degré dans mon bureau, et je me les pêleeeeeeeeeeeeee!!!!!!!!!!!!!!!!!"

Reply

Marsh Posté le 27-11-2002 à 11:02:01    

webmaster PCPRICE a écrit a écrit :

oué mais tu prends de mauvaise habitude. C'est vrai que le php reconnait des variable dans des chaines de texte genre
 
echo "il fait $temperature degré $lieu, $température_phrase";
 
mais il est plus propre de voir la différence entre du vrai texte et des variables, d'ailleur avec un editeur de texte a colorification syntaxique tu le voit bien
donc ca donne :
 
echo "il fait ".$temperature." degré ".$lieu.", ".$température_phrase;
 
cet exemple parce que pour moi :
"il fait 0 degré dans mon bureau, et je me les pêleeeeeeeeeeeeee!!!!!!!!!!!!!!!!!"




 
j'avais fait ce que tu m'as dit mais ça concatenait avec le point ! genre img_up.id et non img_upid
 
enfin en mettant les guillemets comme tu me l'as indiqué.
 
Y'a trop de point dans ma fonction c'est le bordel :D
 
cela dit je note ta méthode pour d'autres trucs plus simple :)


Message édité par DrWatson le 27-11-2002 à 11:03:31

---------------
.:: Feed-Back  ::. Choisis un travail que tu aimes, et tu n'auras pas à travailler un seul jour de ta vie.
Reply

Marsh Posté le 27-11-2002 à 11:02:01   

Reply

Marsh Posté le 27-11-2002 à 11:03:58    

Mais euh juste une question, pourquoi y a un point dans le nom ? Ca signifie quoi img_up.$ligne->id ?


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 27-11-2002 à 11:06:07    

Taiche a écrit a écrit :

Mais euh juste une question, pourquoi y a un point dans le nom ? Ca signifie quoi img_up.$ligne->id ?




 
le . pour concaténer


---------------
.:: Feed-Back  ::. Choisis un travail que tu aimes, et tu n'auras pas à travailler un seul jour de ta vie.
Reply

Marsh Posté le 27-11-2002 à 11:07:14    

sinon tu as la methode inverse pour les cas delicat cad mettre le php dans le html et pas l'inverse:
 
<?
 toncode
?>
 ton html <?=$variable?> suite html
<?
 ton code
?>
 
c rendu plus facile avec le tag abrégé inspiré de l'asp <%=var%>
plus besoin de faire <? echo var ; ?>

Reply

Marsh Posté le 27-11-2002 à 11:09:03    

DrWatson a écrit a écrit :

 
 
le . pour concaténer




 
Bin OK mais alors img_up, c'est quoi ? C'est pas une variable passke y a pas $ devant. C'est pas du texte, y a pas de guillemets.... y a un truc qui m'échappe :heink:


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 27-11-2002 à 11:15:26    

du javascript?
mais moi non plus je voit pas ou le point d'objet javascript cause pb ,rmq j'ai jamais essayé :D

Reply

Marsh Posté le 27-11-2002 à 11:16:53    

Taiche a écrit a écrit :

 
 
Bin OK mais alors img_up, c'est quoi ? C'est pas une variable passke y a pas $ devant. C'est pas du texte, y a pas de guillemets.... y a un truc qui m'échappe :heink:  




 
c'est le nom de l'objet que je donne à mon image


---------------
.:: Feed-Back  ::. Choisis un travail que tu aimes, et tu n'auras pas à travailler un seul jour de ta vie.
Reply

Marsh Posté le 27-11-2002 à 11:19:13    

webmaster PCPRICE a écrit a écrit :

 
 
echo "il fait ".$temperature." degré ".$lieu.", ".$température_phrase;




 
vaut mieux mettre des ' que des " alors, ça évite les problèmes pour mettre les " du HTML, et ça va plus vite vu que PHP n'interprête pas ce qui est entre ' ' ;)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 27-11-2002 à 11:21:21    

ca a toujours été la grande question pour moi  
 
' ou " tel est la question!
 
et si on se limite a l'utilisation d'un ca evite de s'emmeler le spinceaux.

Reply

Marsh Posté le 27-11-2002 à 11:22:04    

webmaster PCPRICE a écrit a écrit :

ca a toujours été la grande question pour moi  
 
' ou " tel est la question!
 
et si on se limite a l'utilisation d'un ca evite de s'emmeler le spinceaux.




 :heink:

Reply

Marsh Posté le 27-11-2002 à 11:27:15    

DrWatson a écrit a écrit :

 
 
c'est le nom de l'objet que je donne à mon image




 
C'est un objet Javascript, donc. Mais côté PHP c'est vu comme du texte, donc ta ligne $imagesource=img_up.$ligne->id; j'comprends pas pourquoi elle marche :D
 
Je sais chu pénible mais j'ai comme l'impression que soit il manque des guillemets quelque part, soit PHP a pas besoin de guillemets pour savoir que c'est du texte et là ça me pose un problème d'éthique.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 27-11-2002 à 11:37:51    

$imagesource= 'img_up'.$ligne->id;


---------------
...oups kernel error...
Reply

Marsh Posté le 27-11-2002 à 11:40:02    

ethernal a écrit a écrit :

$imagesource= 'img_up'.$ligne->id;




 
Ui là je comprends mieux mais quand DrWatson disait que ça marchait avec ce qu'il avait mis (sans les quotes, cf 7ème post), j'ai eu peur de ne plus rien comprendre au PHP :D


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 27-11-2002 à 11:45:17    

Taiche a écrit a écrit :

 
 
Ui là je comprends mieux mais quand DrWatson disait que ça marchait avec ce qu'il avait mis (sans les quotes, cf 7ème post), j'ai eu peur de ne plus rien comprendre au PHP :D




 
bein ça marche vraiment mon truc !


---------------
.:: Feed-Back  ::. Choisis un travail que tu aimes, et tu n'auras pas à travailler un seul jour de ta vie.
Reply

Marsh Posté le 27-11-2002 à 11:47:01    

DrWatson a écrit a écrit :

 
 
bein ça marche vraiment mon truc !




 
SANS les quotes ou les guillemets ? J'veux dire tu fais $imagesource=img_up.$ligne->id; et pas $imagesource= 'img_up'.$ligne->id; ?


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 27-11-2002 à 12:06:07    

Taiche a écrit a écrit :

 
 
SANS les quotes ou les guillemets ? J'veux dire tu fais $imagesource=img_up.$ligne->id; et pas $imagesource= 'img_up'.$ligne->id; ?



Théoriquement, ca marche.
Comme ce n'est ni une variable (pas de $ devant) ni une fonction (pas de () derrière) ni un mot réservé, il considère ça comme du texte (du moins d'après ce que j'avais lu il y a quelques temps). Seul problème (hors le fait que le code devient vite illisible), c'est que le jour ou un mot réservé suplémentaire est rajouté, il va se chopé sa valeur au lieu du texte et là, il viendra gueulé que ca marche plus sans savoir pourquoi. ;)
Il me semble que j'avais lu ça dans mon bouquin php&mysql (a moins que ca soit dans un tutoriel) mais une chôse est sur, c'est très déconseillé.  
 
EDIT : Ca y est, je me souviens à quelle occasion j'avais lu ça : c'était pour les variable tableau ou $tab[texte] a exactement le même comportement et la même signification que $tab["texte"] tant que texte n'est pas un mot réservé. ;)


Message édité par omega2 le 27-11-2002 à 12:06:50
Reply

Marsh Posté le 27-11-2002 à 12:21:00    

Taiche a écrit a écrit :

 
 
SANS les quotes ou les guillemets ? J'veux dire tu fais $imagesource=img_up.$ligne->id; et pas $imagesource= 'img_up'.$ligne->id; ?




 
j'ai fait $imagesource=img_up.$ligne->id; et ça fonctionne mais l'autre doit fonctionner aussi mais j'ai pas essayé


---------------
.:: Feed-Back  ::. Choisis un travail que tu aimes, et tu n'auras pas à travailler un seul jour de ta vie.
Reply

Marsh Posté le 27-11-2002 à 12:22:02    

omega2 a écrit a écrit :

Théoriquement, ca marche.
Comme ce n'est ni une variable (pas de $ devant) ni une fonction (pas de () derrière) ni un mot réservé, il considère ça comme du texte (du moins d'après ce que j'avais lu il y a quelques temps). Seul problème (hors le fait que le code devient vite illisible), c'est que le jour ou un mot réservé suplémentaire est rajouté, il va se chopé sa valeur au lieu du texte et là, il viendra gueulé que ca marche plus sans savoir pourquoi. ;)
Il me semble que j'avais lu ça dans mon bouquin php&mysql (a moins que ca soit dans un tutoriel) mais une chôse est sur, c'est très déconseillé.  
 
EDIT : Ca y est, je me souviens à quelle occasion j'avais lu ça : c'était pour les variable tableau ou $tab[texte] a exactement le même comportement et la même signification que $tab["texte"] tant que texte n'est pas un mot réservé. ;)




 
donc préférer ' ou " ?


---------------
.:: Feed-Back  ::. Choisis un travail que tu aimes, et tu n'auras pas à travailler un seul jour de ta vie.
Reply

Marsh Posté le 27-11-2002 à 12:35:47    

DrWatson a écrit a écrit :

 
 
donc préférer ' ou " ?



Moi, je préfaire ", ca permet d'utiliser les caractères spéciaux tel que \n quand on en a besoin (avec ' il considère qu'il y a deux caractères le \ et le n et pas un retour à la ligne).

Reply

Marsh Posté le 27-11-2002 à 12:37:08    

omega2 a écrit a écrit :

Théoriquement, ca marche.
 
[...]
 
EDIT : Ca y est, je me souviens à quelle occasion j'avais lu ça : c'était pour les variable tableau ou $tab[texte] a exactement le même comportement et la même signification que $tab["texte"] tant que texte n'est pas un mot réservé. ;)




 
:ouch:
Eh ba bordel, j'savais pas ça, c'est carrément crade. J'comprends pas que ça soit autorisé, c'est un nid à bugs monstrueux.
 
DrWatson : oui, effectivement, je te conseille les " ou les '. Comme le dit omega2, ton code sera plus lisible et t'auras pas de bug si jamais un mot réservé est ajouté.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 27-11-2002 à 12:39:32    

moi c " parceque dans des texte j'utilise plus ' que "
 
exemple:
 
echo "c'est pas la joie";
 
est plus rapide que
 
echo 'c\'est pas la joie'
 
et puis le ' est plus eloigné de mon index que le " ;)

Reply

Marsh Posté le 27-11-2002 à 12:40:30    

Taiche a écrit a écrit :

 
 
:ouch:
Eh ba bordel, j'savais pas ça, c'est carrément crade. J'comprends pas que ça soit autorisé, c'est un nid à bugs monstrueux.
 
DrWatson : oui, effectivement, je te conseille les " ou les '. Comme le dit omega2, ton code sera plus lisible et t'auras pas de bug si jamais un mot réservé est ajouté.



Ca rajoute de la souplesse au langage.  :pt1cable:  
Par contre, c'est sur que pour avoir un code propre, c'est pas le top. ;)

Reply

Marsh Posté le 27-11-2002 à 12:43:42    

omega2 a écrit a écrit :

Ca rajoute de la souplesse au langage.  :pt1cable:  
Par contre, c'est sur que pour avoir un code propre, c'est pas le top. ;)




 
alors je met ' ou " à la place de rien ?
 
 
et si je met des ", ne devrais-je pas mettre \" ?


Message édité par DrWatson le 27-11-2002 à 12:44:02

---------------
.:: Feed-Back  ::. Choisis un travail que tu aimes, et tu n'auras pas à travailler un seul jour de ta vie.
Reply

Marsh Posté le 27-11-2002 à 12:43:52    

omega2 a écrit a écrit :

Ca rajoute de la souplesse au langage.  :pt1cable:  




 
Ah ba ça, la souplesse elle est bien aidée, d'un coup ! Limite contortionniste  [:ddr555]  
J'suggèrerais bien aussi qu'ils virent les ; c'est chiant de les foutre à chaque fin d'ligne  :pt1cable:


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 27-11-2002 à 12:45:38    

Taiche a écrit a écrit :

 
J'suggèrerais bien aussi qu'ils virent les ; c'est chiant de les foutre à chaque fin d'ligne  :pt1cable:  




[+]

Reply

Marsh Posté le 27-11-2002 à 12:51:38    

merci de vos précieuses explications  [:super chinois]


---------------
.:: Feed-Back  ::. Choisis un travail que tu aimes, et tu n'auras pas à travailler un seul jour de ta vie.
Reply

Marsh Posté le 27-11-2002 à 12:55:14    

Taiche a écrit a écrit :

 
 
Ah ba ça, la souplesse elle est bien aidée, d'un coup ! Limite contortionniste  [:ddr555]  
J'suggèrerais bien aussi qu'ils virent les ; c'est chiant de les foutre à chaque fin d'ligne  :pt1cable:  




 
bah tu optiens de l'asp dans ce cas la ;)

Reply

Marsh Posté le 27-11-2002 à 12:57:18    

Taiche a écrit a écrit :

 
 
Ah ba ça, la souplesse elle est bien aidée, d'un coup ! Limite contortionniste  [:ddr555]  
J'suggèrerais bien aussi qu'ils virent les ; c'est chiant de les foutre à chaque fin d'ligne  :pt1cable:  




 
ça marche sans les ; :??:


---------------
.:: Feed-Back  ::. Choisis un travail que tu aimes, et tu n'auras pas à travailler un seul jour de ta vie.
Reply

Marsh Posté le 27-11-2002 à 13:02:15    

DrWatson a écrit a écrit :

 
 
alors je met ' ou " à la place de rien ?
 
 
et si je met des ", ne devrais-je pas mettre \" ?



Si tu mets des ", tu devras mettre un \" à chaque fois que t'en as un dans ton texte.
Mais si tu mets des ', tu devras mettre un '' (il me semble que c'est ça le caractère magique) à chaque fois que t'as un ' dans ton texte.

Reply

Marsh Posté le 27-11-2002 à 13:03:03    

DrWatson a écrit a écrit :

 
 
ça marche sans les ; :??:  



non, sans les ; ca marche pas, faut quand même un minimum de logique dans ce langage. ;)

Reply

Marsh Posté le 27-11-2002 à 13:03:56    

Taiche a écrit a écrit :

 
 
Ah ba ça, la souplesse elle est bien aidée, d'un coup ! Limite contortionniste  [:ddr555]  
J'suggèrerais bien aussi qu'ils virent les ; c'est chiant de les foutre à chaque fin d'ligne  :pt1cable:  



:lol: Bonne idée, et puis aussi qu'ils virent tout les $ et les (), c'est chiant de devoir en mettre partout.  :pt1cable:  :pt1cable:  :pt1cable:  :pt1cable:

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed