IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

probleme de syntaxe [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 116
    Par défaut probleme de syntaxe
    Bonjour,

    voilà j'ai des problémes pour faire du bon html, mon code php est bon mais à l'arrivée ca colle pas parce que je ne concaténe pas bien. En faite j'ai dans ma base des mots composés et lorsque je veux les faire apparaitre aprés soumission de formulaire ca coince, je ne récupére que un mot sur la chaine.

    Je fais appel à votre aide pour m'éclairer sur la bonne syntaxe. merci

    je vous présente la partie du code qui fait defaut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    print"<table border=5><tr><td><form method=post>
    		Choisissez un titre d'article dans le menu ci-dessous :</td></tr>
    		<tr><td>
    		<form action=$PHP_SELF method=POST>
    		<select name=titre>
    		";
     
    		while($lignetmp=mysql_fetch_array($result))
    				{
    				print"
    				<option value=$lignetmp[titre_articles]>$lignetmp[titre_articles]</option>";
    				}
    				print"</select><br>";
     
    				print"</tr></td><tr><td>";
    				print"<input type=submit name=soum value=envoyer>
    				</form>";			
     
    					print"</tr></td></table>";
     
    }
    else
    	{
    	$connexion=mysql_connect($host, $login, $pass);
    	$base=mysql_select_db($db);		
     
    		$requete="select  * from articles where titre_articles='$_POST[titre]'";		
    		$result=mysql_query($requete);
     
    		print"<center>";
    		print"<table border=5 WIDTH=500>";
    		print"<tr bgcolor=BLACK><td colspan=3><FONT COLOR=white><center>ARTICLE</center></font></td></tr>";				
     
    		while($tableau=mysql_fetch_array($result))
    			{
    			print"<tr bgcolor=#1A571B><td colspan=2><FONT COLOR=WHITE>Titre de l article : 
    			$tableau[titre_articles]</FONT></td></tr>";
    ........................

  2. #2
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    ça pose des problèmes quand tu mets des valeurs de tableaux dans une chaîne entre guillemets, il vaut mieux faire de la concaténation. Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "blabla bla" . $tab[1];
    au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "blabla bla$tab[1]";
    qui ne marchera pas.

  3. #3
    Membre très actif
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Turquie

    Informations forums :
    Inscription : Avril 2005
    Messages : 614
    Par défaut
    et je dirai meme que l'idéal est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo 'mon bla bla '.$ma_variable.' mon blabla';

    sinon évite çà:
    $PHP_SELF
    faut plutot:
    àpres je t'avoue j'ai pas bien saisie ta question

  4. #4
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 116
    Par défaut
    Je comprends pas, ca veut toujours pas me récuperer l'ensemble de mon champ texte. Sur les deux mots que composent mon titre, je ne recupere que le premier mot. J'ai pourtant fait la concaténation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
     
    		while($lignetmp=mysql_fetch_array($result))
    				{
    				print'<option value="'.$lignetmp[titre_articles].'">'.$lignetmp[titre_articles].'</option>';
    				}
    				print"</select><br>";
     
    				print"</tr></td><tr><td>";
    				print"<input type=submit name=soum value=envoyer>
    				</form>";			
     
    					print"</tr></td></table>";
     
    }
    else
    	{
     
    	$connexion=mysql_connect ($host, $login, $pass);
     
    	if(!$connexion)
    	{
    	print"erreur de connexion";
    	exit();
    	}//ferme test connexion
     
    	else
     
    	{//etape2 selection database
     
    	if(!mysql_select_db($db))
    	{
    	print"erreur de selection";
    	mysql_close($connexion);
    	exit();
    	}//ferme test select db
     
    	else
    		{
     
    		$titre = $_POST[titre];
     
    		//print"$titre"; 		
     
    		$requete="select  * from articles where titre_articles='$_POST[titre]'";
     
    		print $requete;
     
     
    		$result=mysql_query($requete);
     
    		print"<center>";
    		print"<table border=5 WIDTH=500>";
    		print"<tr bgcolor=BLACK><td colspan=3><FONT COLOR=white><center>ARTICLE</center></font></td></tr>";				
     
    		while($tableau=mysql_fetch_array($result))
    			{
    			print"<tr BGCOLOR=#DDDDDD><td>";
    			print 'Auteur de l article : '.$tableau[pseudo_articles];
     
    			print"</td><td> Date de redaction : ";
    			print date ('d/m/y', $tableau[timestamp]);
    			print"</td></tr>";
     
    			//print'<tr bgcolor=#1A571B><td colspan=2><FONT COLOR=WHITE>Titre de l article :'			.	
    			//echo 'blabla'.$tableau[titre_articles];
    			print 'mon bla bla '.$tableau[titre_articles].' mon blabla';
    			//</FONT></td></tr>";
     
    			print"<tr bgcolor=#FFFFB7>";		
    			print '<td colspan=3>Contenu de l article :'.$tableau[contenu_articles].'</td></tr>';
     
    			/*print"<td>Validation : ";
    			print date ('d/m/y', $tableau[timestamp_validation]);
    			print"</td>";*/
     
    			$id_articles = $tableau[id_articles];
     
    			print"<tr bgcolor=grey>";		
    			print"<br>";
    			print"</tr>";
    			}

  5. #5
    Membre Expert
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Par défaut
    J'ai pas bien saisi ton souci mais déjà à 1ere vue ya un truc qui me bloque

    ex:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    print"<option value=".$lignetmp[titre_articles].">".$lignetmp[titre_articles]."</option>";
    
    $lignetmp[titre_articles] = 'toto';
    $lignetmp[titre_articles] = 'PROUT';
    -> ca va te donner <option value=toto>PROUT</option>
    Et là c'est le drame, parceque mon navigateur il aime pas trop quand ses balises ont pas leurs options entre doubles-quotes

    Donc si tu pouvais revoir ton code de maniére à avoir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print'<option value="'.$lignetmp[titre_articles].'">'.$lignetmp[titre_articles].'</option>';
    Je sais pas si ça réglera ton souci mais au moins ça fera plaisir à ton navigateur
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

  6. #6
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 116
    Par défaut
    J'ai bien fait ca mais ca donne toujours pas de résultats.

    Je comprends pas, c'est pas un probléme de langage php ? c'est un probléme SGBD ou bien ?

    Mon probléme c'est que j'ai une table article dans ma base avec un champ "titre_aticles" et d'autres champ. Je propose sur ma page de formulaire, un menu déroulant dynamique sur mes titres et une selection d'un de ceux ci permet d'obtenir tous les champs de la base. Mais un print sur ma requete me renvoi pour un titre composé de deux mot juste un mot et du coup fait planter ma requete.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme de syntaxe sql dans VB
    Par njac dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 20/05/2005, 14h41
  2. [VB.NET] Probleme de syntaxe
    Par microthib dans le forum Windows Forms
    Réponses: 4
    Dernier message: 17/03/2005, 13h49
  3. probleme fonction syntaxe
    Par gIch dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 28/02/2005, 09h52
  4. [Débutante] Problèmes de syntaxe
    Par new_wave dans le forum Prolog
    Réponses: 4
    Dernier message: 02/11/2004, 18h39
  5. Problemes de syntaxe
    Par maahta dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 01/10/2003, 13h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo