8768 sujets

Développement web côté serveur, CMS

Demi quotes et cot-cot !
Bon, soyons un peu sérieux, même si un peu d'humour ne mange pas de pain !
J'ai un problème de syntaxe dans PHP.
Le texte en html :


		<tr class = "table" onclick = "SelectLigne(this)">
			<td class = "tdat">06.01.2020</td>
			<td class = "ttit">Lettre à Elise</td>
		</tr>

Et ça marche très bine, y compris le select.
Mais comme j'ai un assez grand nombre de lignes à afficher, et que j'ai un base de données, j'ai voulu faire ça en PHP.

<?php
	foreach ($dbh->query($sql) as $row)
	echo "<tr class = 'table' onclick = 'SelectLigne(this)'>
			<td class = 'tdat'>".$row['cle']."</td>
			<td class = 'ttit'>". $row['texte']."</td>
		  </tr><br/>\n";
  ?>

Et là ... Boum :
a écrit :

Syntax error, unexpected 'table' (T_STRING), expecting ',' or ';' in C:\WorkSite\EasyPHP-12.1\www\entites.php on line 48

Idée ? N'importe laquelle serait la bien venue
Merci et cordiales salutations
H.
Bonjour, personnellement je code plutôt comme ceci:
<?php
	foreach ($dbh->query($sql) as $row) {
?>
	<tr class="table" onclick="SelectLigne(this)">
		<td class="tdat"><?php echo $row['cle']; ?></td>
		<td class="ttit"><?php echo $row['texte']; ?></td>
	</tr>
<?php
	}
?>
Modérateur
comar91 a écrit :
Bonjour, personnellement je code plutôt comme ceci:

<?php
	foreach ($dbh->query($sql) as $row) {
?>
	<tr class="table" onclick="SelectLigne(this)">
		<td class="tdat"><?php echo $row['cle']; ?></td>
		<td class="ttit"><?php echo $row['texte']; ?></td>
	</tr>
<?php
	}
?>





Tu as beaucoup mieux comme syntaxe. Les accolades fermantes dans une vue, peu pour moi....

<?php foreach ($dbh->query($sql) as $row): ?>
    <tr class="table" onclick="SelectLigne(this)">
        <td class="tdat"><?= $row['cle']; ?></td>
        <td class="ttit"><?= $row['texte']; ?></td>
    </tr>
<?php endforeach; ?>


php est un formidable template engine. Autant exploiter ses avantages.


D'ailleurs, il ne sait faire que ça.... Smiley troll
Modifié par niuxe (01 May 2021 - 11:56)
Meilleure solution
Bonjour, @niuxe, c'est une question de point de vue et d'habitude. Par ailleurs j'ai beaucoup de mal avec les "dictateurs" disant ceci est beaucoup mieux, ou il faut faire comme cela au nom de je ne sais quelle idéologie Smiley cligne
Modérateur
comar91 a écrit :
Bonjour, @niuxe, c'est une question de point de vue et d'habitude. Par ailleurs j'ai beaucoup de mal avec les "dictateurs" disant ceci est beaucoup mieux, ou il faut faire comme cela au nom de je ne sais quelle idéologie Smiley cligne


La syntaxe que j'ai soumise est plus pertinente. Pourquoi ?
Lorsque tu as une série de while/foreach/if/elseif/else, etc. tu ne sais plus à quoi cela correspond . Alors tu es obligé de mettre en commentaire (ex : ceci est la fermeture du if qui permet de .... ). Pour un peu que l'indentation ne soit pas respectée ou que l'indentation ne soit pas la même entres 2 developpeurs, c'est vite un gros bordel. le commentaire rend le fichier surchargé pour rien.

Les reco des PSR n'en parlent pas. Donc, c'est libre. Si tu préfères ton écriture, vas y. Tant que ça fonctionne, pourquoi s'embêter. Je pense que la maintenance 6 mois plus tard sera sexy.
Modifié par niuxe (01 May 2021 - 17:02)
A tous, merci de vos solutions !
Je ne vais pas prendre parti ... les deux solutions sont en fait très proche.
Si je devais absolument donner mon avis, comme débutant, la réponse de comar91 est plus parlante, mais la réponse de niuxe est plus concise.
Donc pour moi, match nul !
Encore merci de vous être donné la peine de vous pencher sur mes petits problèmes
H.
Bonjour, @niuxe "La syntaxe que j'ai soumise est plus pertinente. Pourquoi ? " --> Ce n'est pas ce que tu avais affirmé initialement affirmé: "Tu as beaucoup mieux comme syntaxe" ?? Si tu pouvais être plus objectif je prendrais volontiers tes arguments en considération. Le "Je pense que la maintenance 6 mois plus tard sera sexy" --> Cela fait 40 ans que je programme alors ne fais pas rire sur la maintenabilité qui pour moi est évidemment essentielle. "Les reco des PSR n'en parlent pas" --> Encore des dictateurs ? Dans mon expérience j'ai connu un paquet de de recommandations de "soi-disant" experts, 3 à 5 ans plus tard, il faut tout refaire !!
"Lorsque tu as une série de while/foreach/if/elseif/else, etc. tu ne sais plus à quoi cela correspond . Alors tu es obligé de mettre en commentaire (ex : ceci est la fermeture du if qui permet de .... )" --> Donc si tu codes foreach/endforeach mais imbriqués MAIS PAS BIEN INDENTES c'est plus simple ?? Tu prends les gens pour des devins ?? Pour moi c'est du pareil au même. Je m'arrête ici
Modérateur
Comme je te l'ai dit, si ta syntaxe te plait, vas y fonce. Ta manière de coder tes fichiers permet de rendre ceux-ci très facilement maintenable et scallable, bravo ! Si les autres manières de faire ne te plaisent pas (notamment les PSR), il est où le souci, en fait ? Mes arguments à propos de ma syntaxe ne te conviennent pas, il est où le souci ? Ici, lorsqu'un membre a besoin d'un coup de main, j'essaie de lui donner un coup de main (quand ça en vaut la peine) et je partage ma manière de travailler. Si quelqu'un trouve une meilleure solution, tant mieux. Tu as une manière de coder et tu l'as proposée, c'est bien.

Un gros avantage, Bzhorace a le choix. Il a vu plusieurs manières. Il n'a qu'à choisir celle qui lui convient et il voit de ce fait plusieurs alternatives.
Modifié par niuxe (01 May 2021 - 21:57)