erreur de syntaxe php

Eléphanteau du PHP | 11 Messages

19 déc. 2006, 08:08

Bonjour à tous,

j'ai suivi un tuto php, et j'ai un problème de syntaxe dans l'écriture d'une ligne de tableau et dans la suite de ma progression...
<?
// requête SQL qui compte le nombre total d'enregistrements dans la table et qui
//récupère tous les enregistrements
$select = 'SELECT ref,region,classement,date_insert FROM fiche ORDER BY date_insert DESC';
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);

  // si on a récupéré un résultat on l'affiche.
if($total) {
    
    // lecture et affichage des résultats sur 4 colonnes, 1 résultat par ligne.    
    while($row = mysql_fetch_array($result)) {
       	   // début du tableau
    	echo '<table width="650" id="sample2">'."\n"; echo '<tr>';
        echo '<td width="75">'.$row['ref'].'</td>';
        echo '<td width="166">'.$row['region'].'</td>';
		echo '<td width="95">'.$row['classement'].'</td>';
		echo '<td width="128">'.$row['date_insert'].'</td>';
		[b]echo '<td width="160">'.<img src=\"images/a2.gif\" align=\"middle\" /><a href=\"fiche.php\">Voir sa fiche descriptive</a>.'</td>'; [/b]
        echo '</tr>'."\n";
    echo '</table>'."\n";
    // fin du tableau.
}
else echo 'Pas d\'enregistrements dans cette table...';

// on libère le résultat
mysql_free_result($result);

?>

Pour info c'est un petit site immo où sur ma page 'biens.php' s'affiche les biens de l'agence (max une 10ne) :
Dans cette case en GRAS , je souhaite afficher un lien vers sa fiche descriptive ==> 1) j'ai un problème avec la syntaxe (j'ai intégrer le lien en mettant des antislash aux guillements mais m'est avis que ça doit être plus compliqué!) et 2) quel code php mettre pour fournir ce lien ? (le but est d'ouvrir un popup avec la fiche descriptive=mais comment dire que je veux la fiche correspondant l'id de la ligne ??)



merci pour votre aide :)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

19 déc. 2006, 09:12

Salut

Si tu utilises la coloration syntaxique, tu obtiens :
echo '<td width="160">'.<img src=\"images/a2.gif\" align=\"middle\" /><a href=\"fiche.php\">Voir sa fiche descriptive</a>.'</td>';
Et tu peux voir que le soucis commence dès le début de la balise <img>

Pour est-ce que tu sors cette valeur de la chaine ?
De même, pas besoin de mettre des \ au " présents dans la chaine si le caractère qui entoure la chaine complete est ' ;)

exemple de correction
echo '<td width="160"><img src="images/a2.gif" align="middle" /><a href=\"fiche.php\">Voir sa fiche descriptive</a></td>';
Pour ton second point il faut que
1/ tu regardes du côté de la fonction JS open()
2/ que tu passes l'id de l'annonce à ouvrir dans le lien :
echo '<a href="mapage.php?id_annonce='.$id_annonce.'">'
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 11 Messages

19 déc. 2006, 10:49

Salut, merci pour la réponse, effectivement ... ta correction arrange le probleme
mais en ce qui concerne la variable $id_annonce ou pour moi $id_fiche , comment passer l'id en question ?? comment savoir quand cette page mapage.php s'ouvre que l'id_fiche est le bon ? bon je débute le php, c'est ptet naif comme question ... :(

merci

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

19 déc. 2006, 11:04

l'identifiant que tu doit passer, tu doit le récupérer dans ta requete qui sélectionne les différentes fiches.

Sinon, si ton construit ton lien à partir de ce que je t'ai donné, dans la page cible, cet identifiant sera dans la superglobale $_GET

par exemple, si tu as un lien de la forme
<a href="mapage.php?id_fiche=2">
dans mapage.php, tu récupère l'identifiant de cette manière
$id_fiche = $_GET['id_fiche'];
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 11 Messages

19 déc. 2006, 13:58

<?php
// information pour la connection à le DB
$host = 'mmm';
$user = 'mmm';
$pass = 'mmm';
$db = 'ma_db';

// connection à la DB
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());

// requête SQL qui compte le nombre total d'enregistrements dans la table et qui
//récupère tous les enregistrements
$select = 'SELECT * FROM fiche_hotel WHERE id_fiche=$_GET['id_fiche']'; //ya apparemment deja une erreur là
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);

$id_fiche = $_GET['id_fiche']; 
?>
est cela que je dois mettre dans mon fichier mapage.php ?

de plus je n'arrive pas a faire la connection entre ce que tu me dis et ce que je dois faire ? comment faire pour que mapage.php?id_fiche=2 ?
je comprends le sens général mais pas la methode...