J'ai essayé mais ça ne fonctionne pas. Bizarre tous de même qu'une chose aussi anodine soit aussi difficile à gérer ou du moins aussi peu courante
J'ai essayé mais ça ne fonctionne pas. Bizarre tous de même qu'une chose aussi anodine soit aussi difficile à gérer ou du moins aussi peu courante
Et si tu tentes de mettre \\\\n en tant que séparateur ?
Echapper le caractère qui échape au cas où ce serait interprété.
C'est Android, PAS Androïd, ou Androïde didiou !
Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.
Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.
N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android
Désolé mais j'ai pas bien compris ce que tu as voulu dire
Oui mais je ne comprends pas.... COMMENT la données est arrivée comme ça dans la DB....
Justement le but est de ne PAS escaper le CR
Si quand tu te connectes à la DB par SQL, et que tu fais un select, tu dois *deja* avoir plusieurs lignes si ce n'est pas le cas, les données en DB ne sont pas bonnes...
D'ou ma question comment tu mets en DB les \n ?
(attention, quand on parle de \n on parle bien d'un SEUL caractères pas des deux caractères \ et n !! Le \ disant 'ce qui suit est une caractère de controle' et n 'le caractère de controle correspondant au CR=CarriageReturn')
N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
Et surtout
La BDD je la rempli en allant sur mySQL et en entrant les données à la main, les données sont déjà dans la base. Mais dans un varchar sur mySQL il faut rentrer tout en ligne, c'est à dire je rentre tous sur une ligne mais je souhaite pouvoir insérer un caractère retour à la ligne comme ça quand je les récupères dans le JAVA c'est sur plusieurs lignes et non pas une seul comme quand je l'ai entré à la main dans la BDD
Les données sont donc entrées par l'entremise d'un éditeur...
L'éditeur doit forcément fournir le moyen pour insérer des caractères spéciaux (surtout si la base est UTF-8, comment insérer un Kanji sinon ?), ce qui inclus les CR LF...
Des fois c'est simplement ctrl+return ....
Sinon, il peut y avoir moyen d'uploader depuis un fichier CSV ?
Ce qui est sur, c'est que entrer à la main les 2 caractères \ et n ne marchera pas... ça fera deux caractères \ et n au lieu du caractère de contrôle 0x0A.
Dans JAVA, \n dans une chaîne est interprété par JAVA, et il faut 'escaper' le premier backslash pour que JAVA le considère comme deux caractères: \\n
La solution de dernier recours, est d'imagine un tag (par exemple <br/> pourquoi pas) spécifique qui sera décodé à la lecture... bien moins souple à mon avis qu'avoir de bonnes données d'entrée de jeu.
N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
Et surtout
Ne trouvant pas d'issu j'ai opté pour un champ Text au lieu de Varchar dans la base de données et le je peux entré plusieurs lignes et je les récupères bien dans le .JAVA
Ce topic est donc clos, merci beaucoup à toutes les personnes qui m'ont données de leurs temps.
Tout d'abord désolé pour le double post consécutif mais ma question entre pleinement dans ce topic.
En effet je n'ai toujours pas réussi à encoder le résultat de deux requête en JSON, cette question j'aurais pu la poser dans la partie PHP également mais comme elle fait parti intégrante de ce sujet je la pose ici.
Voici mon fichier PHP simplifié, juste pour que vous comprenez bien ce qui se passe sans que vous aillez à tous décoder, le but n'étant pas de vous faire travailler pour rien
Mais j'ai cette erreur: Parse error : syntax error, T_ARRAY inattendu dans../../../Infos.php en ligne 159
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 $base = mysql_connect ('root', 'root', ''); mysql_select_db ('ma_base', $base); $req = "SELECT * FROM salut"; $reqSuivante = "SELECT * FROM bonjour"; $reqbis = mysql_query($req); $reqSuivantebis = mysql_query($reqSuivante); while($row=mysql_fetch_array($reqbis)) $output[]=$row; while($row=mysql_fetch_array($reqSuivantebis)) $outputSecond[]=$row; //Pour enconder les données en JSON je fais: return json_encode(new array("requete1" => $reqbis, "requete2" => $reqSuivantebis));
la ligne 159 étant le return... Je ne comprend pas. Pourtant c'est ce qu'on m'a conseillé de faire dans ce topic pour retourner 2 requêtes. Mais je m'en fait pas j'ai du faire une erreur quelque part.
Je vous remercie d'avance
Il te faut retourner ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part return json_encode(new array("requete1" => $output, "requete2" => $outputSecond));
ah oui merci, effectivement. Maintenant je rencontre une nouvelle erreur dans le Java.
Voici comment je récupère mes données:
Et j'ai ce message d'erreur:
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 try { HttpClient httpclient = new DefaultHttpClient(); String url = "http://www.truc.com/Infos.php"; HttpPost httppost = new HttpPost(url); nameValuePairs.add(new BasicNameValuePair("nomRestaurant", nomRestaurant)); httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); HttpResponse response = httpclient.execute(httppost); json= new JSONObject(EntityUtils.toString(response.getEntity())); JSONArray jArray1 = json.getJSONArray("requete1"); for(i=0;i<jArray1.length();i++) { json_data = jArray1.getJSONObject(i); String salut; salut = json_data.getString("horaires"); System.out.println("Proutttttttt" + salut); } JSONArray jArray2 = json.getJSONArray("requete2"); for(i=0;i<jArray2.length();i++) { json_data = jArray2.getJSONObject(i); } } catch (Exception ex) { // signaler l'erreur Log.e("MyAppTag","Erreur réception données", ex); Toast.makeText(getBaseContext(),ex.getLocalizedMessage(),Toast.LENGTH_LONG).show(); // ou throw new Exception(); si il faut signaler l'erreur à l'appelant ! }
L'erreur porte sur cette ligne:
Je vous remercie d'avance. Encore chapeau pour la disponibilité sur ce forum.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 json= new JSONObject(EntityUtils.toString(response.getEntity()));
Tu ne reçois rien de ta page php.
Essaie d'afficher ceci dans ton application
Cela peut venir du fait que tu fait un return et non un echo. Essaie aussi de remplacer cela.
Code : Sélectionner tout - Visualiser dans une fenêtre à part EntityUtils.toString(response.getEntity())
J'ai affiché, mais rien ne s'affiche, c'est donc vide je suppose.
Quand je renvoyer avec une requête je faisais un print et non un return.
EDIT:
j'ai fais un print j'ai toujours cette erreur, mais je reçois les données... Faut-il que je résous ce problème tous de même car il risque de poser problème dans certain cas ?
Peux tu nous écrire le résultat produit par ton script .php ?
comment ça ? ce que ça m'affiche quand je clic sur le fichier présent sur le serveur ?
Oui, que produit l’exécution de ton script
null mais c'est nomal car j'envoi une données dans le fichier php, qui vaut null si l'application n'est pas lancé puisque cette donnée compose la requête. Mais bon là j'arrive à récupérer toutes mes données.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager