Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/11/2010, 14h39   #1
Membre du Club
 
Inscription : juin 2006
Messages : 228
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 228
Points : 51
Points : 51
Par défaut aligner le resultat d'une requete

bonjour,

j'aimerais mettre le résultat de cette requête sous forme de colonne alors que la ça m'affiche tout sur une seule ligne. il s'agit d'un scripte qui interroge un webservice google pour afficher des adresses à partir de latitude / longitude.

voila le code

Code :
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
82
83
84
85
86
87
88
89
90
<?php require_once('base.php'); ?>
<?php
 
 
$maxRows_reversegeo = 400;
$pageNum_reversegeo = 0;
if (isset($_GET['pageNum_reversegeo'])) {
  $pageNum_reversegeo = $_GET['pageNum_reversegeo'];
}
$startRow_reversegeo = $pageNum_reversegeo * $maxRows_reversegeo;
 
$colname_reversegeo = "-1";
if (isset($_GET['nom'])) {
  $colname_reversegeo = (get_magic_quotes_gpc()) ? $_GET['nom'] : addslashes($_GET['nom']);
}
mysql_select_db($database_accesville, $accesville);
$query_reversegeo = "SELECT * FROM services ORDER BY nom ASC";
$query_limit_reversegeo = sprintf("%s LIMIT %d, %d", $query_reversegeo, $startRow_reversegeo, $maxRows_reversegeo);
$reversegeo = mysql_query($query_limit_reversegeo, $accesville) or die(mysql_error());
$row_reversegeo = mysql_fetch_assoc($reversegeo);
 
if (isset($_GET['totalRows_reversegeo'])) {
  $totalRows_reversegeo = $_GET['totalRows_reversegeo'];
} else {
  $all_reversegeo = mysql_query($query_reversegeo);
  $totalRows_reversegeo = mysql_num_rows($all_reversegeo);
}
$totalPages_reversegeo = ceil($totalRows_reversegeo/$maxRows_reversegeo)-1;
$query_reversegeo = "SELECT * FROM services";
$reversegeo = mysql_query($query_reversegeo, $accesville) or die(mysql_error());
$row_reversegeo = mysql_fetch_assoc($reversegeo);
$totalRows_reversegeo = mysql_num_rows($reversegeo);
 
function getAdresse($lat=0,$lon=0){
    $apiKey = "DEMO";//Indiquez ici votre cl&eacute; Google maps !
    $url = "http://maps.google.com/maps/geo?q=".$lat.",".$lon."&output=csv&key="
.$apiKey;
    $csv = file($url);
    $code = substr($csv[0],0,3);
    $precision = substr($csv[0],4,1);
    $adresse = substr($csv[0],7,strlen($csv[0])-8);
    switch($code){
        case "620" : return 
"Erreur, trop de requete aujourd'hui pour la cl&eacute;e donn&eacute;e, r&eacute;-&eacute;ssayez demain";
        case "610" : return "Cl&eacute; API incorrecte !";
        case "603" : return "Adresse indisponible";
        case "602" : return "Adresse introuvable";
        case "601" : return "Erreur de requete";
        case "500" : return "Erreur serveur inconnue !";
        case "200" : //succ&egrave;s 
        default : 
            return "Adresse : ".$adresse
            ." - Pr&eacute;cision : ".getPrecision($precision)."";
    } 
}
 
/**
 * Convertit le chiffre de la pr&eacute;cision en texte
 */
function getPrecision($num){
    switch($num){
        case 0 : case "0" : return "Inconnue";
        case 1 : case "1" : return "Pays";
        case 2 : case "2" : return "R&eacute;gion (&eacute;tat, province, pr&eacute;fecture,...)";
        case 3 : case "3" : return "Sous-r&eacute;gion (municipalit&eacute;s,...) " ;
        case 4 : case "4" : return "Ville";
        case 5 : case "5" : return "Code postale";
        case 6 : case "6" : return "Rue";
        case 7 : case "7" : return "Carrefour";
        case 8 : case "8" : return "Adresse compl&egrave;te";
        case 9 : case "9" : return "Maximale (nom du batiment,...)";
    }
}
 ?>
 
 
<table width="500" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <?php do { ?>
      <td><?php
echo getAdresse($row_reversegeo['lat'],$row_reversegeo['lng']); 
echo "<br>" ;
 ?></td>
      <?php } while ($row_reversegeo = mysql_fetch_assoc($reversegeo)); ?>
  </tr>
</table>
<?php mysql_free_result($reversegeo);?>
je pense qu'il s'agit de placer un br au bon endroit mais je vois pas

merci de votre aide
serna est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2010, 14h48   #2
Membre du Club
 
Inscription : novembre 2003
Messages : 86
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : novembre 2003
Messages : 86
Points : 40
Points : 40
Envoyer un message via Skype™ à Dom_the_quaker
salut, ca se passe au niveau de l'affichage de ton tableau, la gestion des colonne se fait par <tr> et non <td>
++
__________________
Au début j'avais pensé à une énorme tapette à souris géante...
Dom_the_quaker est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2010, 15h19   #3
Membre régulier
 
Inscription : octobre 2010
Messages : 101
Détails du profil
Informations personnelles :
Localisation : France, Seine Maritime (Haute Normandie)

Informations forums :
Inscription : octobre 2010
Messages : 101
Points : 71
Points : 71
oui ton tableau est mal gérer ...

donne nous un exemple du format sous lequel tu voudrais tes résultats ?

plutot : resultat1 resultat2 resultat3 ....

OU

resultat1
resultat2
resultat3
proxichou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2010, 16h17   #4
Membre du Club
 
Inscription : juin 2006
Messages : 228
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 228
Points : 51
Points : 51
oui j'aimerais que ça s'affiche comme ça

resultat1
resultat2
resultat3

alors que ça s'affiche comme ça

resultat1 resultat2 resultat3 ....
serna est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2010, 16h56   #5
Membre régulier
 
Inscription : octobre 2010
Messages : 101
Détails du profil
Informations personnelles :
Localisation : France, Seine Maritime (Haute Normandie)

Informations forums :
Inscription : octobre 2010
Messages : 101
Points : 71
Points : 71
met un

Code :
1
2
do{ ?> <tr><td><?php
echo getAdresse($row_reversegeo['lat'],$row_reversegeo['lng']); ?></td></tr><?php while(....) ?>
a le place de :

Code :
1
2
3
4
5
6
7
8
9
10
11
<tr>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <?php do { ?>
      <td><?php
echo getAdresse($row_reversegeo['lat'],$row_reversegeo['lng']); 
echo "<br>" ;
 ?></td>
      <?php } while ($row_reversegeo = mysql_fetch_assoc($reversegeo)); ?>
  </tr>
proxichou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2010, 17h34   #6
Membre du Club
 
Inscription : juin 2006
Messages : 228
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 228
Points : 51
Points : 51
merci,
mais ça ne marche pas j'ai une parse error à la dernière ligne du code. j'ai du faire un pougnac dans la syntaxe etc..

ce n'est pas bien grave car quant je copie le résultat affiché par la page web dans un fichier texte ça me les alignes correctement

si je voulais au lieu d'un echo du résultat , envoyer par fopen pour qu'il m'écrive dans un fichier texte, que dois je faire ?

encore merci
serna est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2010, 17h49   #7
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
En plus ta boucle est a l'envers :
Code :
1
2
3
4
5
6
7
<?php
while ($row_reversegeo = mysql_fetch_assoc($reversegeo)) {
   echo '<tr>
                <td>' . getAdresse($row_reversegeo['lat'],$row_reversegeo['lng']) .'
               </td>
          </tr>';
}
Citation:
envoyer par fopen pour qu'il m'écrive dans un fichier texte, que dois je faire ?
tu fais un fwrite à la place du echo.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2010, 08h40   #8
Membre régulier
 
Inscription : octobre 2010
Messages : 101
Détails du profil
Informations personnelles :
Localisation : France, Seine Maritime (Haute Normandie)

Informations forums :
Inscription : octobre 2010
Messages : 101
Points : 71
Points : 71
oui désolé pour ma syntaxe elle n'est pas parfaite j'étais un peu pressé ...

c'était juste pour te montrer que tu devais faire

Code :
<tr><td> resultat </td></tr>
pour avoir tes résultats comme tu le souhaites.
proxichou est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h19.


 
 
 
 
Partenaires

Hébergement Web