2010-03-29 5 views
0

Il y a un problème dans ce code, je ne peut pas détecterOù est le problème dans ce code PHP?

<?php echo "<a href ='$rows['Link']'> .$rows['UploadName']</a> "; ?> 

Trouvez-vous que vous avez une solution ???

Merci beaucoup.

+1

Que se passe-t-il? Comment savez-vous qu'il y a un problème? – Tom

+7

Quel est le comportement qui suggère qu'il y a un problème? –

+1

Si vous obtenez une erreur, vous devez indiquer quelle erreur. Sinon, vous ne pouvez que deviner (oui, les messages d'erreur ont une raison). –

Répondre

6

Je suppose que votre problème est qu'il n'écrit pas les données dans $rows['Link'] ... si c'est le cas, alors votre solution est de le changer en {$rows['Link']} ... en fait, vous voudrez probablement pour changer les deux, car il semble que vous ayez commencé à faire une concaténation de chaînes et que vous ayez changé à mi-chemin.

Alors:

<?php echo "<a href ='$rows['Link']'> .$rows['UploadName']</a> "; ?> 

devient:

<?php echo "<a href ='{$rows['Link']}'>{$rows['UploadName']}</a> "; ?> 

Voir: Le PHP Manual on Variable Parsing in strings

+0

Oh - bien.Haha je ne savais pas que tu pouvais faire ça. +1 - cela me fera probablement gagner beaucoup de temps. – Cam

+0

ne pas oublier d'assainir vos variables – knittl

+0

@knittl - absolument! En fait, ils devraient être aseptisés ** avant ** ils arrivent à ce point. (C'est pourquoi je l'ai laissé de côté - je suppose que les données qu'il utilise déjà ont été nettoyées pour la sortie html.) –

0

Il y a un problème dans les variables d'analyse syntaxique de la chaîne. Utilisez des accolades papillotes:

<?php echo "<a href ='{$rows['Link']}'> .{$rows['UploadName']}</a> "; ?> 

Jetez un oeil à this php.net page, sous la rubrique "analyse syntaxique variable".

2

Il devrait être:

<?php echo "<a href ='{$rows['Link']}'>{$rows['UploadName']}</a>"; ?> 

Ou:

<?php echo "<a href ='{$rows['Link']}'>" . $rows['UploadName'] . "</a>"; ?> 
+1

Si vous commencez avec ces deux là, il y aurait encore deux autres possibilités;) –

+0

Ouais, je veux dire non doute. Hey, nous pourrions aller avec la route HEREDOC et dire ... echo <<< EOF .... EOF; Mais vous avez raison, "il y a plus d'une façon de le faire.". –

0

Plus alternatives:

<?php echo '<a href ="' . $rows['Link'] . '">' . $rows['UploadName'] . '</a>'; ?>

ou

<?=('<a href ="' . $rows['Link'] . '">' . $rows['UploadName'] . '</a>')?>

+0

Merci à tous Maintenant, le code fonctionne correctement – sandy

0

Une autre alternative (que j'ai tendance à préférer, étant donné que je sais que les deux 'Link' et 'UploadName' sont des indices valides de $row.

<a href="<?=$rows['Link']?>"><?=$rows['UploadName']?></a> 

Je ne suis pas sûr de ce que cela fait pour une meilleure lisibilité pour la plupart des gens, mais IDEs code couleur, il tend à aider, parce que le HTML est non seulement considérée comme une chaîne unique de couleur laid géant.