Probleme syntaxe??

Fermé
ladj59 Messages postés 322 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 29 décembre 2008 - 18 févr. 2008 à 08:58
ladj59 Messages postés 322 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 29 décembre 2008 - 18 févr. 2008 à 13:07
Bonjour,
j'ai un probléme et je crois que c'est un probléme de syntaxe((' " %...??? mais je n'en suis pas sur car j'ai essayé plein de trucs et ca ne marche toujours pas. Voici mon code donc ca m'aiderai bien si quelqu'un trouvait la solution merci:

<?php

mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("physique"); // Sélection de la base coursphp


$sql ="SELECT * FROM base_physique WHERE ";
$sql .="auteur LIKE .%'$_POST['auteur']'%";
$reponse = mysql_query($sql);


while ($donnees = mysql_fetch_array($reponse))
{
if (($donnees['auteur']==$_POST['auteur']) && ($_POST['titre']=='') && ($_POST['année']=='') && ($_POST['journal']=='') && ($_POST['motsclé']==''))
{


ca me met ca : Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING à la ligne $sql .="auteur LIKE .%'$_POST['auteur']'%";

7 réponses

ladj59 Messages postés 322 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 29 décembre 2008 3
18 févr. 2008 à 10:09
please est-ce que quelqu'un peut m'aier c'est urgent...
0
Enax Messages postés 203 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 16 mars 2010 145
18 févr. 2008 à 10:14
"auteur LIKE '%".$_POST['auteur']."%'"

Commande LIKE : http://sql.1keydata.com/fr/sql-like.php
0
ladj59 Messages postés 322 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 29 décembre 2008 3
18 févr. 2008 à 11:02
ok merci enax ca marche mais maintenant j'ai un autre souci
en effet avec le code que je vais mettre ci-dessous cela ne m'affiche que la dernière ligne où l'auteur est celui que j'ai tapé( si dans mon tableau j'ai 2auteurs qui s'appellent albert il ne m'affichera suer le 2éme et pas le premier ) et je ne sais pas pourquoi donc si vous avez une idée....

$sql ="SELECT * FROM base_physique WHERE ";


$sql .="auteur LIKE '%".$_POST['auteur']."%'";
$reponse = mysql_query($sql);
$donnees = mysql_fetch_array($reponse);

if (($donnees['auteur']==$_POST['auteur']) && ($_POST['titre']=='') && ($_POST['année']=='') && ($_POST['journal']=='') && ($_POST['motsclé']==''))
{
while ($donnees = mysql_fetch_array($reponse))
{
?>

<p>

<strong>L'auteur est</strong> : <?php echo $donnees['auteur']; ?><br />
Le titre est : <?php echo $donnees['titre']; ?> et l'année est <?php echo $donnees['année']; ?> <br />
Le journal est : <?php echo $donnees['journal']; ?> et le volume est :<?php echo $donnees['volume']; ?> <br />
La page est :<?php echo $donnees['page']; ?> <br/>
Les mots clé de la recherche sont:<?php echo $donnees['motsclé']; ?> <br/>
<a href="<?php echo $donnees['pdf']?>"> Clique ici pour voir le pdf associé </a>
</p>
0
Utilisateur anonyme
18 févr. 2008 à 11:28
Normal, tu as fait 2 requêtes

1) $donnees = mysql_fetch_array($reponse);

2) while ($donnees = mysql_fetch_array($reponse))
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
18 févr. 2008 à 11:37
Essaye

$sql ="SELECT * FROM base_physique WHERE auteur LIKE '%".$_POST['auteur']."%'";
$reponse = mysql_query($sql);

while ($donnees = mysql_fetch_array($reponse))
{
     if ($donnees['auteur']==$_POST['auteur'] && $_POST['titre']=='' && $_POST['année']=='' && $_POST['journal']=='' && ($_POST['motsclé']=='')
     {
          echo '
<p>

<strong>L'auteur est</strong> : '. $donnees['auteur'].'<br />
Le titre est : '.$donnees['titre'].'  et l'année est '. $donnees['année'].' <br />
Le journal est : '.$donnees['journal'].' et le volume est :'.$donnees['volume'].' <br />
La page est :'.$donnees['page'].' <br />
Les mots clé de la recherche sont: '.$donnees['motsclé'].' <br />
<a href="'.$donnees['pdf'].'"> Clique ici pour voir le pdf associé </a>

</p>';

     }
}


0
ladj59 Messages postés 322 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 29 décembre 2008 3
18 févr. 2008 à 11:39
$sql ="SELECT * FROM base_physique WHERE ";


if (($donnees['auteur']==$_POST['auteur']) && ($_POST['titre']=='') && ($_POST['année']=='') && ($_POST['journal']=='') && ($_POST['motsclé']==''))
{

$sql .="auteur LIKE '%".$_POST['auteur']."%'";
$reponse = mysql_query($sql);


if (($_POST['auteur']=='') && ($donnees['titre']==$_POST['titre']) && ($_POST['année']=='') && ($_POST['journal']=='') && ($_POST['motsclé']==''))
{
$sql .="titre LIKE '%".$_POST['titre']."%'";
$reponse = mysql_query($sql);

while ($donnees = mysql_fetch_array($reponse))
{
?>


probleme: je veux que ca verifie si lauteur que je tape est dans la base de données(dans le champ auteur ou titre..) et ensuite selon le cas la requete est diférente... mais ler probleme c'est que il ne peut pas faire le if car je ne le renseigne pas sur ce que c'est que donnees ( je pensais mettre $donnees = mysql_fetch_array($reponse) au début mais ca marche pas)donc je ne sais pas comment gérer le probléme...
help me plz
0
ladj59 Messages postés 322 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 29 décembre 2008 3
18 févr. 2008 à 13:07
quelqur'un aurait-il une solution?.????
0