#1 Le 10/05/2008, à 17:58
- guywii
Besoin d'aide en php svp!!
Slt tout le monde
Dernière modification par guywii (Le 18/05/2017, à 20:23)
Hors ligne
#2 Le 10/05/2008, à 18:02
- Keldath
Re : Besoin d'aide en php svp!!
Je ne sais pas si cette section est la plus appropriée pour ça (y'a une section Programmation !), mais tu peux toujours déposer tes scripts (balise [ code ] s'ils ne sont pas trop long ou les mettre en téléchargement, encore mieux).
Dernière modification par Keldath (Le 10/05/2008, à 18:03)
Hors ligne
#3 Le 10/05/2008, à 18:26
- seb24
Hors ligne
#4 Le 10/05/2008, à 18:39
- Keldath
Re : Besoin d'aide en php svp!!
Ça devrait aller, au pire tu nous fournis le schéma de tes tables.
Note : UNIX n'est pas un langage Et la section Programmation traite de tout ce qui a attrait à la programmation (bash, python, c, c++, php, perl...)
EDIT : Donne nous le schéma relationnel complet des tables de ta base de données. Le langage SQL te permet d'extraire les données de tes tables très simplement.
Dernière modification par Keldath (Le 10/05/2008, à 18:41)
Hors ligne
#5 Le 10/05/2008, à 18:48
- seb24
Re : Besoin d'aide en php svp!!
Et met les erreurs qui sortent.
Et vire le mot de passe lol
Mini PC NUC avec Ubuntu: ebay
Hors ligne
#6 Le 10/05/2008, à 19:11
- Keldath
Re : Besoin d'aide en php svp!!
<html>
<head>
<title>Liste des gîtes</title>
<link rel="stylesheet" media="screen" type="text/css" title="action" href="http://jean_guy.fournier.club.fr/action.css"/>
</head>
<body>
<?php
$connexion=mysql_connect ('localhost','pseudo','MDP') or die ("erreur de connexion");
mysql_select_db("gdvertige2008",$connexion) or die ("erreur de connexion àa la base de données");
$chercher=mysql_query("SELECT * FROM gite") ;
?>
<div id="en_tete2" style="text-align: center"><u><h1>Liste des gîtes</h1></u></div>
<div id="tableau">
<table>
<tr><td><b>Cucugnan</b></td>
<td><b>padern</b></td>
<td><b>tuchan</b></td></tr>
</table>
</div>
<div id="menu2">
<u><h2><i><div align="center">Menu</div></i></h2></u>
<ul>
<li><a href="http://jean_guy.fournier.club.fr/acceuil.html">Accueil</a></li>
</br>
<li><a href="http://jean_guy.fournier.club.fr/listedesgites.html">Liste des Gîtes</a></li>
</br>
<li><a href="http://jean_guy.fournier.club.fr/conditiondelocation.html">Condition de location</a></li>
</br>
<li><a href="http://jean_guy.fournier.club.fr/trsf.0.0.htm">Réservation</a></li>
</br>
<li>Tarifs</li>
</br>
<li><a href="http://jean_guy.fournier.club.fr/GDV/cathares.html">Histoire des cathares</a></li>
</br>
<li><a href="mailto:gites.du.vertige@free.fr" style="text-decoration: blink">Nous contacter</a></li>
</br>
</ul>
</div>
<div id="corps3">
<table border="all">
<?php
while ($valeur = mysql_fetch_object($chercher)) {
//On prépare le code HTML
$chaine = '<tr>';
$chaine.= '<td><p align="center"><u>Gite n° '.($valeur->NoGite).' : </u> M.Richardson<br /><br />';
$chaine.= ($valeur->RueGite).'<br />';
$chaine.= ($valeur->CPGite).' '.($valeur->VilleGite).'<br />';
$chaine.= 'Tel: 04 68 45 41 18<br />';
$chaine.= 'Mail: richardson@free.fr</p></td>';
$chaine.= '<td><img src="http://jean_guy.fournier.club.fr/images.jpg"></td>';
$chaine.= '<td><p>Nombre de places : '.($valeur->NbPlaces).'<br />';
$chaine.= 'Nombres de chambres : '.($valeur->NbChambres).'<br />';
$chaine.= 'Surface(en m²) : '.($valeur->Surface).'</p></td>';
$chaine.= '</tr>';
//On génère le code HTML
echo $chaine;
}
?>
</table>
</div>
</body>
</html>
Quelque chose comme ça (je n'ai retouché que ta boucle). Tu n'as pas besoin de fermer/ouvrir en permanence les balises PHP !
Par contre, je vois qu'il y a des données brutes dans ta page telle que "M.Richardson", je suppose que ces données existent dans une table de ta base, et tu aimerai pouvoir les extraire ? Si oui, il nous faudrait le schéma de tes tables (leur nom + leurs champs).
EDIT : petite correction dans la concaténation de la chaîne.
Dernière modification par Keldath (Le 10/05/2008, à 19:23)
Hors ligne
#7 Le 10/05/2008, à 19:32
- Keldath
Re : Besoin d'aide en php svp!!
Alors :
$chaine = "Bon";
donne la valeur "Bon" à la variable $chaine, ça c'est okay
$chaine.= "jour";
est équivalent à
$chaine = $chaine + "jour";
Ça concatène (ça colle) la valeur de $chaine avec la valeur indiquée après le =. Ici, ça donnera la valeur "Bonjour" à la variable $chaine.
Tu retrouves la même chose dans les calculs :
$chiffre+=1;
est équivalent à
$chiffre = $chiffre + 1;
qui est même équivalent à
$chiffre++; // Incrémentation de $chiffre de 1
Je te conseille tout de même la méthode que je t'ai donné plus haut, afin d'éviter cette ouverture/fermeture des balises PHP (ça ne rendra ton code que plus clair à la relecture !).
EDIT : Vais me répéter Il nous faut le schéma de tes tables, savoir comment tu as organisé ta base de données.
Dernière modification par Keldath (Le 10/05/2008, à 19:38)
Hors ligne
#8 Le 10/05/2008, à 19:37
- Keldath
Re : Besoin d'aide en php svp!!
On ne peut pas télécharger un fichier .php de cette manière (le code PHP est exécuté par le serveur, du coup on ne voit rien du code). Compresse le pour éviter ça
Avant de commencer à coder tu dois bien concevoir ta base de données.
Apparemment tu as deux entités : les gites et les propriétaires.
Quelle est la relation entre ces deux entités ? Un propriétaire peut posséder plusieurs gites je présume ?
Dernière modification par Keldath (Le 10/05/2008, à 19:44)
Hors ligne
#9 Le 10/05/2008, à 19:45
- Keldath
Re : Besoin d'aide en php svp!!
Ah ben si tu as modélisé sur papier, c'est impec' Je veux bien voir oui.
Pour la compression, je parlais juste de ton lien pour télécharger le script : si tu ne compresses pas ou si tu ne changes pas l'extension de ton fichier php, le code est interprêté par le serveur et personne ne peut donc le lire.
Dernière modification par Keldath (Le 10/05/2008, à 19:47)
Hors ligne
#10 Le 10/05/2008, à 19:51
- Keldath
Re : Besoin d'aide en php svp!!
Je t'ai envoyé un e-mail avec mon adresse
Hors ligne
#11 Le 10/05/2008, à 20:22
- Keldath
Re : Besoin d'aide en php svp!!
<?php
$connexion=mysql_connect ('localhost','pseudo','MDP') or die ("erreur de connexion");
mysql_select_db("gdvertige2008",$connexion) or die ("erreur de connexion àa la base de données");
//On prépare la requête SQL
$sql = "SELECT g.CdProprio,NomProprio,TelProprio,MelProprio ";
$sql.= "NoGite,RueGite,CPGite,VilleGite,NbPlaces,NbChambres,Surface ";
$sql.= "FROM GITE g, PROPRIO p ";
$sql.= "WHERE g.CdProprio = p.CdProprio ";
$sql.= "ORDER BY NoGite";
//On execute la requête SQL
$chercher=mysql_query($sql) ;
?>
<?php
while ($valeur = mysql_fetch_object($chercher)) {
//On prépare le code HTML
$chaine = '<tr>';
$chaine.= '<td><p align="center"><u>Gite n° '.($valeur->NoGite).' : </u> '.($valeur->NomProprio).'<br /><br />';
$chaine.= ($valeur->RueGite).'<br />';
$chaine.= ($valeur->CPGite).' '.($valeur->VilleGite).'<br />';
$chaine.= 'Tel: '.($valeur->TelProprio).'<br />';
$chaine.= 'Mail: '.($valeur->MelProprio).'</p></td>';
$chaine.= '<td><img src="http://jean_guy.fournier.club.fr/gite_'.($valeur->NoGite).'.jpg"></td>'; //Parcours des fichiers images gite_1.jpg (gite n°1), gite_2.jpg...
$chaine.= '<td><p>Nombre de places : '.($valeur->NbPlaces).'<br />';
$chaine.= 'Nombres de chambres : '.($valeur->NbChambres).'<br />';
$chaine.= 'Surface(en m²) : '.($valeur->Surface).'</p></td>';
$chaine.= '</tr>';
//On génère le code HTML
echo $chaine;
}
?>
Dernière modification par Keldath (Le 10/05/2008, à 20:46)
Hors ligne
#12 Le 10/05/2008, à 22:05
- Elzen
Re : Besoin d'aide en php svp!!
Qu'est-ce qui plante ?
Évite de laisser un pseudo et un mot de passe en clair sur le forum Sait-on jamais.
Elzen : polisson, polémiste, polymathe ! (ex-ArkSeth)
Un script pour améliorer quelques trucs du forum.
La joie de t'avoir connu surpasse la peine de t'avoir perdu…
timezone[blocklist]
Hors ligne
#13 Le 10/05/2008, à 22:34
- Elzen
Re : Besoin d'aide en php svp!!
Ce qui signifie que ton $chercher ne contient pas de résultats. Vu que tu utilises MySQL, je suppose que ça doit venir d'une erreur sur la requête... Essaye de remplacer
$chercher=mysql_query($sql);
par
$chercher=mysql_query($sql) or die(mysql_error());
Qu'on voit ce qui ne lui plait pas.
C'est pas hyper-propre, comme code (j'irais même jusqu'à dire que ce qui est basé sur du "or die()" est assez moche), mais en phase de débuggage, ça aide bien
Elzen : polisson, polémiste, polymathe ! (ex-ArkSeth)
Un script pour améliorer quelques trucs du forum.
La joie de t'avoir connu surpasse la peine de t'avoir perdu…
timezone[blocklist]
Hors ligne
#14 Le 10/05/2008, à 22:43
- Elzen
Re : Besoin d'aide en php svp!!
Eh bien, c'est bien une erreur purement SQL, apparemment ^^ Requête mal formée. Par contre, j'ai pas fait de SQL depuis un moment et j'ai mal au crâne, donc je saurais pas dire ce que c'est comme ça. Essaye de créer ta variable $sql en une seule fois (inutile de faire plusieurs concaténations/affectations pour si peu ), ça t'aidera peut-être à trouver le soucis.
Elzen : polisson, polémiste, polymathe ! (ex-ArkSeth)
Un script pour améliorer quelques trucs du forum.
La joie de t'avoir connu surpasse la peine de t'avoir perdu…
timezone[blocklist]
Hors ligne
#15 Le 10/05/2008, à 23:17
- Keldath
Re : Besoin d'aide en php svp!!
Reuh guywii,
J'viens ptet d'avoir une idée quant à la requête SQL foireuse. Essaie ça :
$sql = "SELECT g.CdProprio,NomProprio,TelProprio,MelProprio ";
$sql.= "NoGite,RueGite,CPGite,VilleGite,NbPlaces,NbChambres,Surface ";
$sql.= "FROM GITE g, PROPRIO p ";
$sql.= "WHERE g.CdProprio = p.CdProprio ";
$sql.= "GROUP BY NoGite ";
$sql.= "ORDER BY NoGite";
Ou bien :
$sql = "SELECT DISTINCT g.CdProprio,NomProprio,TelProprio,MelProprio ";
$sql.= "NoGite,RueGite,CPGite,VilleGite,NbPlaces,NbChambres,Surface ";
$sql.= "FROM GITE g, PROPRIO p ";
$sql.= "WHERE g.CdProprio = p.CdProprio ";
$sql.= "ORDER BY NoGite";
J'ai un doute, chui plus très frais
Hors ligne
#16 Le 10/05/2008, à 23:21
- Elzen
Re : Besoin d'aide en php svp!!
Je répète encore une fois, inutile de multiplier les concaténations ou les affectations pour si peu... Si c'est pour avoir des sauts de lignes pour la lisibilité du code, ce genre de choses
$chose = "machin".
"truc"
."bidule";
fonctionne très bien, et ce genre-là
$chose = "machin
truc
bidule";
également (dans ce dernier cas, les sauts de lignes sont inclus dans la chaine de caractère, mais je crois bien que ça ne dérange pas le serveur SQL). Le "gain" en opérations n'est certes pas des plus importants, mais c'est plus propre... et plus lisible aussi. Non ?
Dernière modification par ArkSeth (Le 10/05/2008, à 23:23)
Elzen : polisson, polémiste, polymathe ! (ex-ArkSeth)
Un script pour améliorer quelques trucs du forum.
La joie de t'avoir connu surpasse la peine de t'avoir perdu…
timezone[blocklist]
Hors ligne
#17 Le 11/05/2008, à 00:10
- Elzen
Re : Besoin d'aide en php svp!!
Les deux bouts de code que j'ai donné dans le dernier post ? C'est équivalent à
$chose = "machin";
$chose .= "truc";
$chose .= "bidule";
L'opérateur "." peut être utilisé directement au milieu d'une chaine, même avec des retours à la ligne, et tu peux aussi faire une chaine de caractère sur plusieurs lignes, quoi Une ligne de code ne s'arrête que quand on rencontre le ; final, en gros.
Elzen : polisson, polémiste, polymathe ! (ex-ArkSeth)
Un script pour améliorer quelques trucs du forum.
La joie de t'avoir connu surpasse la peine de t'avoir perdu…
timezone[blocklist]
Hors ligne
#18 Le 11/05/2008, à 11:05
- Keldath
Re : Besoin d'aide en php svp!!
En effet, contrairement à VB (que tu connais aussi), tu peux très bien écrire tout ton script sur une seule ligne, tant que chaque opération est séparée par des ; et les blocs par des {}, etc.
Alors rien ne t'empêche de couper ton code en mettant des retours lignes où tu en as envie comme le conseille ArkSeth (à éviter dans les chaînes de caractères toute fois) :
$sql = "SELECT g.CdProprio,NomProprio,TelProprio,MelProprio,"
."NoGite,RueGite,CPGite,VilleGite,NbPlaces,NbChambres,Surface "
."FROM GITE g, PROPRIO p "
."WHERE g.CdProprio = p.CdProprio "
."GROUP BY NoGite "
."ORDER BY NoGite";
Tout comme
$i = 1 + 1;
Est équivalent à
$i = 1
+
1;
Ça ne change rien pour l'interpréteur de PHP
Concernant ton erreur maintenant, vérifie bien que tu te connectes à la bonne base de données MySQL (gdvertige2008 ?), et vérifie que ta table porte bien ce nom là (GITE ?).
EDIT : J'viens de créer les deux tables PROPRIO et GITE, identiques à ton schéma, puis rajouté des données bidons, et j'ai lancé cette requête (via PHPMyAdmin) :
SELECT *
FROM GITE g, PROPRIO p
WHERE g.CdProprio = p.CdProprio
ORDER BY 5
Et ça marche très bien... (les autres requêtes avec l'énumération complète dans le SELECT et le GROUP BY fonctionnent également, elles renvoient le même résultat). L'erreur viendrait de ton côté... ?
Dernière modification par Keldath (Le 11/05/2008, à 11:34)
Hors ligne
#19 Le 11/05/2008, à 12:19
- Keldath
Re : Besoin d'aide en php svp!!
//On prépare la requête SQL
$sql = "SELECT g.CdProprio,NomProprio,TelProprio,MelProprio, ";
Il manquait une virgule après le champ MelProprio (pour séparer MelProprio de NoGite de la ligne suivante).
Tu peux supprimer la ligne echo "test".$chercher."truc"; aussi.
Dernière modification par Keldath (Le 11/05/2008, à 12:19)
Hors ligne
#20 Le 11/05/2008, à 12:37
- Softnux
Re : Besoin d'aide en php svp!!
Il ne faut pas mettre de virgule juste avant le FROM
Dernière modification par Softnux (Le 11/05/2008, à 12:38)
Hors ligne
#21 Le 12/05/2008, à 15:00
- Yann
Re : Besoin d'aide en php svp!!
Déplacé dans programmation
Et pourtant moi, jsuis pas du genre délicat,
Dans un coin de la musse, j'ai posé mon matelas - Paulo Anarkao
Hors ligne
#22 Le 14/05/2008, à 13:44
- yohann
Re : Besoin d'aide en php svp!!
//On prépare le code HTML
$chaine= '<tr>';
$chaine.= '<td><p align="center"><u>Gite n° '.($valeur->NoGite).' : </u> '.($valeur->NomProprio).'<br /><br />';
$chaine.= ($valeur->RueGite).'<br />';
$chaine.= ($valeur->CPGite).' '.($valeur->VilleGite).'<br />';
$chaine.= 'Tel: '.($valeur->TelProprio).'<br />';
$chaine.= 'Mail: '.($valeur->MelProprio).'</p></td>';
$chaine.= '<td><img src="images_gites/gite_'.($valeur->NoGite).'.jpg"></td>'; //Parcours des fichiers images gite_1.jpg (gite n°1), gite_2.jpg...
$chaine.= '<td><p>Nombre de places : '.($valeur->NbPlaces).'<br />';
$chaine.= 'Nombres de chambres : '.($valeur->NbChambres).'<br />';
[b] if ($valeur->jardin == 1)
$chaine.= 'Il y a un jardin'<br />';[/b]
$chaine.= 'Surface(en m²) : '.($valeur->Surface).'</p></td>';
$chaine.= '</tr>';
j.vachez, le génie du net | Soirées jeux sur Lyon | 441
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.
Hors ligne
#23 Le 14/05/2008, à 20:23
- Keldath
Re : Besoin d'aide en php svp!!
Yep guywii,
Si tu regardes bien le code que t'as donné yohann, il y a un [ b ] et un [ /b ], c'est ce qui te fait planter
Il ne l'a pas fait exprès, juste voulu mettre sa modification en gras pour que tu le vois bien sur le forum, mais ces balises ne sont pas reconnus dans les balises [ code ][ /code ]
... faut regarder ce qu'on te fournit, un peu ! (et surtout lire les messages d'erreur de PHP !)
Dernière modification par Keldath (Le 14/05/2008, à 20:24)
Hors ligne
#24 Le 14/05/2008, à 20:39
- Keldath
Re : Besoin d'aide en php svp!!
Parse error: syntax error, unexpected '[' in /listedesgites.php on line 94
Tout est indiqué : arrivé à la ligne 94, il ne comprend pas le caractère '[' (le début de [ b])
Maintenant, il t'affiche ceci (je viens d'aller faire un tour sur ton site) :
Parse error: syntax error, unexpected '>' in /listedesgites.php on line 95
Si on regarde la ligne 95, on voit ceci :
$chaine.= 'Il y a un jardin'<br />';
Tu ne vois pas l'erreur dont il te parle, par rapport au caractère '>' ? (indice : ta chaîne de caractères est "cassée").
PS : moi non plus je ne disais pas ça méchamment ! Je soulignais juste le fait que les erreurs, en les lisant bien, nous mettent souvent sur la bonne voie pour trouver l'origine du problème
c'est juste que j'en ai marre de passer autant de temps sur un simple truc....!!
C'est le métier qui rentre
Dernière modification par Keldath (Le 14/05/2008, à 20:48)
Hors ligne
#25 Le 14/05/2008, à 21:22
- Keldath
Re : Besoin d'aide en php svp!!
Réponse
$chaine.= 'Il y a un jardin'<br />';
Une chaîne de caractères doit se former avec des "" ou des ' ' (quote) comme tu le sais. Si on regarde la chaîne 'Il y a un jardin'<br />';, on voit que la quote entre jardin et <br /> va poser problème : quand l'interpréteur PHP arrive à la fin du mot jardin, il rencontre la quote qui pour lui signifie que c'est la fin de la chaîne et que ce qui suit ensuite est du code. Hors on veut que <br /> (qui n'est pas reconnu par PHP, c'est pour ça qu'il râle) fasse partie de la chaîne, il faut donc écrire :
$chaine.= 'Il y a un jardin<br />';
Un long discours pour pas grand chose j'avoue, mais c'est pour t'expliquer ce qu'il se passe
Hors ligne