Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1037 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Collecte d'info depuis un champ avec un Espace ??

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Collecte d'info depuis un champ avec un Espace ??

n°1824370
Nunu68
Posté le 09-12-2008 à 17:23:01  profilanswer
 

Bonsoir,  
Voila j'ai un petit souci !!!
En fait je voudrai recuperez de ma table des infos, seulement mon champ contient un espace !!! (Oooohh pas bien ! le pourri !  :kaola:  :kaola:  ) mais ! Impossible de la modifier (on peut mais plus rien ne fonctionne apres ! :\ )
 
Voici le code :  
 

Code :
  1. $modele = $donnees['Code Modele'];


 
Voila, comment passez au dela de l'espace ??
Car les infos, où le champ ne contient pas d'espace sont collectés sans probleme, par contre c'est une autre histoire pour ceux avec "espace"...
 
Quelqu'un aurait-il une solution ??
 
Merci !

mood
Publicité
Posté le 09-12-2008 à 17:23:01  profilanswer
 

n°1824385
skeye
Posté le 09-12-2008 à 17:45:18  profilanswer
 

euh.[:pingouino]
Je ne comprends rien du tout à la question.[:dawak]
C'est quoi $donnees? ça vient d'où? Quelle est l'erreur rencontrée? Qu'est-ce qui te force à utiliser une clé de tableau avec un espace? Et depuis quand ça pose problème en php?


---------------
Can't buy what I want because it's free -
n°1824390
Nunu68
Posté le 09-12-2008 à 17:49:52  profilanswer
 

$donnees est la variable de recuperation depuis un fetch_array
 
L'erreur rencontré est que tout simplement ce que contient la table refuse de s'afficher quand le nom de champ contient un espace (Ici "Code Modele", alors qu'avec les autres champs ne contenant pas d'espace tout fonctionne.
 
Ce qui me force a utilisé un champ avec un espace, ce sont ceux qui otn créé le progiciel qui gere la table sous access, et donc impossible a modifier sinon le progiciel ne fonctionne plus :s
 
D'où ma question, comment on fait pour faire comme s'il n'y avait pas d'espace ?
 
:)

n°1824393
skeye
Posté le 09-12-2008 à 17:51:41  profilanswer
 

c'est pas la requête qui est mauvaise, tout simplement? Montre-la!


---------------
Can't buy what I want because it's free -
n°1824398
Nunu68
Posté le 09-12-2008 à 17:54:47  profilanswer
 

Voila le code "complet" :  
 
$c = odbc_connect($dsn, $user, $pass) or die("Impossible de se connecter au serveur ODBC ! " );
$query = "SELECT 'Code Modele', Kilometrage, Puissance, 'Place Assise', 'Annee Modele', 'Prix Vente TTC', Carburant, CheminPhoto, PoidsTC FROM vn" or die ("Probleme d'acces a la table !" );
$reponse = odbc_exec($c, $query);
 
$id_connect = mysql_connect("localhost","root","" ) or die(mysql_error());
$db = mysql_select_db("apimeca" );
$sql = mysql_query("TRUNCATE TABLE neuf" ); //On vide la table d'abord  
while ($donnees = odbc_fetch_array($reponse))
{
  $modele = $donnees['Code Modele'];
  echo "Modele : ";
  echo $modele;
  $Km = $donnees['Kilometrage'];
  $Puiss = $donnees['Puissance'];
  $Places = $donnees['Place Assise'];
  $Annee = $donnees['Annee Modele'];
  $PVTTC = $donnees['Prix Vente TTC'];
  $Carburant = $donnees['Carburant'];
  $photo = $donnees['CheminPhoto'];
  $poids = $donnees['PoidsTC'];
   
  $rep = mysql_query("INSERT INTO neuf VALUES('$modele', '$Km', '$Puiss', '$Places', '$Annee', '$PVTTC', '$Carburant', '$Photo', '$Poids')", $id_connect) or die(mysql_error()); //On réécrit les valeurs
   
}
 
 
 
En gros le Kilometrage, etc... s'affiche correctement, il y a juste "Code Modele", "Place Assise", "Annee Modele", etc... qui n'affiche rien (alors que la table contient qque chose.


Message édité par Nunu68 le 09-12-2008 à 17:55:21
n°1824414
skeye
Posté le 09-12-2008 à 18:19:25  profilanswer
 

print_r($donnees) donne quoi?
Aliaser ces champs dans la requête ça résoud pas le problème?


---------------
Can't buy what I want because it's free -
n°1824791
Nunu68
Posté le 10-12-2008 à 12:13:17  profilanswer
 

Aliaser ? tu veut dire remplacer par  
 
$modele = $donnees['Code_Modele'];  
 
??
 
Mais je cherchai un moyen genre concatenation ou n'importe pour qu'il prenne l'ensemble du mot si vous voyez ce que je veut dire.
 

n°1824792
skeye
Posté le 10-12-2008 à 12:14:25  profilanswer
 

SELECT 'Code Modele' as code_modele ...
 
puis $donnees['code_modele'].


---------------
Can't buy what I want because it's free -
n°1824932
sielfried
Posté le 10-12-2008 à 14:58:36  profilanswer
 

Quand tu fais SELECT 'truc' en SQL il te sélectionne la chaîne truc, normalement. Il faut utiliser un backtick (`) dans ton cas.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1824934
skeye
Posté le 10-12-2008 à 15:00:44  profilanswer
 

sielfried a écrit :

Quand tu fais SELECT 'truc' en SQL il te sélectionne la chaîne truc, normalement. Il faut utiliser un backtick (`) dans ton cas.


ah parce-que access ça marche comme les vrais sgbd?[:joce]


---------------
Can't buy what I want because it's free -
mood
Publicité
Posté le 10-12-2008 à 15:00:44  profilanswer
 

n°1824938
sielfried
Posté le 10-12-2008 à 15:07:28  profilanswer
 

skeye a écrit :


ah parce-que access ça marche comme les vrais sgbd?[:joce]


 
J'voulais dire MySQL en fait, j'ai été trompé par les mysql_ dans son code. :o
 
En Access c'est pas SELECT [champ avec espaces] ou un truc dans le genre ? [:autobot]


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1824942
skeye
Posté le 10-12-2008 à 15:10:08  profilanswer
 

sielfried a écrit :


 
J'voulais dire MySQL en fait, j'ai été trompé par les mysql_ dans son code. :o
 
En Access c'est pas SELECT [champ avec espaces] ou un truc dans le genre ? [:autobot]


si, il me semble aussi, mais bon j'avais supposé qu'il avait testé la requete, au moins...:o


---------------
Can't buy what I want because it's free -
n°2314690
jadu29
Rien de moins que la lumière
Posté le 30-04-2018 à 11:47:32  profilanswer
 

:hello:  :hello:  :hello:  :hello:  
Bref il n'y a pas de solution ?
j'ai ce souci avec une base récupérée en MySql !
mais bon, depuis 2008  :pt1cable:   il y a peut-être quelque chose de nouveau sous le soleil des tropiques, non ?  :lol:  
 
merci  :jap:  de me le dire   :D ;-)


---------------
Prenez bien soin de vous !
n°2314692
MaybeEijOr​Not
but someone at least
Posté le 30-04-2018 à 11:55:04  profilanswer
 

sielfried a écrit :

Quand tu fais SELECT 'truc' en SQL il te sélectionne la chaîne truc, normalement. Il faut utiliser un backtick (`) dans ton cas.


 
N'est-ce point la réponse? Il faut utiliser le ` et non le single quote '.


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°2314717
jadu29
Rien de moins que la lumière
Posté le 30-04-2018 à 17:09:25  profilanswer
 

ma question est sans doute un peu différente alors !
c'est au moment de l'affichage du "title" que ça ne='affiche que le premier mot de la chaine ( ça s'arrête à l'espace)

Code :
  1. try {
  2.   $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
  3.   // set the PDO error mode to exception
  4.   $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  5.   $sql = "SELECT * FROM litho_donnees ORDER BY photo_litho ASC";
  6.   foreach ($conn->query($sql)as$col)
  7.    {
  8.    $c++;
  9.    $glo='<img src=../litho/imageslit/cristaux/'.utf8_encode($col[1]).' alt='.utf8_encode($col[2]).' title='.utf8_encode($col[2]).' width="90px" height="90px" />';
  10.    echo '<a href="prepavoir.php?cristal='.utf8_encode($col[2]).'">"'.$glo.'</a>';
  11.    }
  12.   }
  13.  catch(PDOException $e) {echo "Error: " . $e->getMessage(); }
  14.  $conn = null;


 
et ensuite l'affichage du echo' <a href ....   donne ceci  http://harmonieuniverselle.bzh/litho/liste2.php
en passant sur " jaspe brun" " jaspe léopard "  "jaspe rouge" l'affichage n'est que "JASPE"
C'est dommâââage !
 
merci d'une indication de possible correctif  :)  
 
 :hello:  

n°2314719
pluj
Posté le 30-04-2018 à 18:38:32  profilanswer
 

Lu,
 
c'est normal, faute de délimiter la valeur de l'attribut title avec des quotes, il [le navigateur] va s'arrêter au premier espace. Par exemple pour title=foo bar, c'est interprété comme title="foo" bar, bar étant un autre attribut.
 
La bonne démarche :

Code :
  1. echo '<a href="prepavoir.php?cristal='. htmlspecialchars($col[2]) . '"><img src="../litho/imageslit/cristaux/' . urlencode($col[1]) . '" alt="' . htmlspecialchars($col[2]) . '" title="' . htmlspecialchars($col[2]) . '" width="90px" height="90px" /></a>';


Et on utilise htmlspecialchars pour que les double quotes que pourraient contenir tes données ne produisent pas le même effet (troncage similaire, étant substituées par l'entité HTML correspondante) plus urlencode pour ce qui finit dans l'URL.
 
Et changer :

Code :
  1. $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);


En :

Code :
  1. $conn = new PDO("mysql:host=$servername;dbname=$dbname;charset=utf8", $username, $password);


Non seulement ça t'évite ces "sales" utf8_encode mais si les données étaient initialement encodées en UTF-8, tu perds tout caractère non latin, ce qui, au final, rend l'usage d'Unicode/UTF-8 complètement inutile.


Message édité par pluj le 30-04-2018 à 18:46:03
n°2314803
jadu29
Rien de moins que la lumière
Posté le 02-05-2018 à 12:05:40  profilanswer
 

:jap:  :jap:  :jap:  
Merci beaucoup !
 
Je suis à me recycler en JAVA.
Mais je pense que je vais aussi me recycler en PHP-HTML-CSS-MySql
ça bouge beaucoup aussi.
De mieux en mieux c'est sûr mais il faut sans arrêt essayer de suivre les évolutions. :pt1cable:  
Le malheur c'est qu'il faudrait refaire tout dans chaque site tous les ans presque !  :pt1cable:  
Comme ce n'est pas possible  :ange:  : donc j'adapte au fur et à mesure. :(  
 
Merci donc de ces informations que je vais dès à présent intégrer au mieux dans les relations MySql-PHP-et affichages HTML !
 
bien cordialement  :hello:  :hello:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Collecte d'info depuis un champ avec un Espace ??

 

Sujets relatifs
[WORD/code champ] modifier nombre de pages d'un docboîte de dialogue qui demande une info
[HTML+Javascript]Lier un champ texte à une checlboxStocker un espace dans chaine de caractère
mise a jour d'un champ input avec une liste deroulantemodifier un champ de texte
[SQL] Faire ressortir une liste de donnée en fonction d'un champ[resolu]Verification 'variable || contenu champ table mysql'
ACTIONSCRIPT : Problème bouton/récupération champ textetester la présence d'un espace dans une chaine.
Plus de sujets relatifs à : Collecte d'info depuis un champ avec un Espace ??


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR