> Tous les forums > Forum des Webmasters
 probleme de requete sql
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
Gillquessoy
  Posté le 08/03/2011 @ 18:14 
Aller en bas de la page 
Petit astucien

Bonjour à tous

J'ai besoin d'aide sur une requete sql, voila le problème:

j'ai 3 pages:

1-page de saisie: un formulaire avec plusieurs champs (nom, adresse, tel, mail, ect), jusqu'ici tout va bien, tout arrive dans la bd

2-page "partenaires" (avec un lien vers la 3ème page) qui récupère tous les noms saisie dans la page précédente (que les noms, pas les adresses ni tout le reste) là non plus pas de problème!

3-page "cible" sur laquelle je voudrais que s'affiche toutes les informations du partenanire

j'espere que je suis clair

j'ai pas mal consulté le site du zéro mais j'avoue que j'ai su voir la solution

merci d'avance à ceux qui voudrons bien m'aider

Publicité
ndmsp
 Posté le 08/03/2011 à 19:04 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

$reponse = bdd->query('SELECT * FROM ta_table);

while($donnees = $reponse->fetch()){

echo $donnees['nom_du_champ'];

}

Regardes ici.

a+

Gillquessoy
 Posté le 08/03/2011 à 19:37 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

salut ndmsp

merci de me donner un petit coup de main

je crois que j'ai mal expliqué mon problème, je vais disséquer!!

sur ma 2ème page (partenaires) seul arrive la dénomination (du partenaire ex: adapei ou pjj, ect)

je voudrais q'en cliquant sur le nom du partenaire, j'ouvre une page avec toutes les données concernant ce partenaire

j'ai donc ma page "saisie" comme ce qui suit:

<div class="contenu">
<?php
if (isset($_POST['denomination']) AND isset($_POST['adresse']) AND isset($_POST['telephone']) AND isset($_POST['e_mail']) AND isset($_POST['fax']) AND isset($_POST['contact_ime']) AND isset($_POST['horaire'])) // Si les variables existent
{
if ($_POST['denomination'] != NULL AND $_POST['adresse'] != NULL AND $_POST['telephone'] != NULL AND $_POST['e_mail'] != NULL AND $_POST['fax'] != NULL AND $_POST['contact_ime'] != NULL AND $_POST['horaire'] != NULL) // Si on a quelque chose à enregistrer
{
// D'abord, on se connecte à MySQL
mysql_connect("localhost", "root", "mdp");
mysql_select_db("partenaire");

// On utilise les fonctions PHP mysql_real_escape_string et htmlspecialchars pour la sécurité
$denomination = mysql_real_escape_string(htmlspecialchars($_POST['denomination']));
$adresse = mysql_real_escape_string(htmlspecialchars($_POST['adresse']));
$telephone = mysql_real_escape_string(htmlspecialchars($_POST['telephone']));
$e_mail = mysql_real_escape_string(htmlspecialchars($_POST['e_mail']));
$fax = mysql_real_escape_string(htmlspecialchars($_POST['fax']));
$contact_ime = mysql_real_escape_string(htmlspecialchars($_POST['contact_ime']));
$horaire = mysql_real_escape_string(htmlspecialchars($_POST['horaire']));

// Ensuite on enregistre le message
mysql_query("INSERT INTO partenaire VALUES('', '$denomination', '$adresse', '$telephone', '$e_mail', '$fax', '$contact_ime', '$horaire')");

// On se déconnecte de MySQL
mysql_close();
}
}
?>
<form method="post">
<p>Dénomination de la structure : <input type="text" size="30" name="denomination" value="<?php echo $denomination; ?>" /></p>
<p>Adresse : <input type="text" size="30" name="adresse" value="<?php echo $adresse; ?>" /></p>
<p>Téléphone : <input type="text" size="30" name="telephone" value="<?php echo $telephone; ?>" /></p>
<p>E-mail : <input type="text" size="30" name="e_mail" value="<?php echo $e_mail; ?>" /></p>
<p>Fax : <input type="text" size="30" name="fax" value="<?php echo $fax; ?>" /></p>
<p>Contact IME <input type="text" size="30" name="contact_ime" value="<?php echo $contact_ime; ?>" /></p>
<p>Horaire : <input type="text" size="30" name="horaire" value="<?php echo $horaire; ?>" /></p>

<p><input type="submit" value="Envoyer" ></p>
</form>
</div>

puis j'ai ma page partenaires:

<div class="contenu">
<?php
mysql_connect("localhost", "root", "mdp");
mysql_select_db("partenaire");
// On récupère la dénomination
$retour = mysql_query('SELECT * FROM partenaire ORDER BY ID DESC LIMIT 0,100');
// On se déconnecte de MySQL
mysql_close();

// Puis on fait une boucle pour afficher tous les résultats :
while ($donnees = mysql_fetch_array($retour))
{
?>
<a href="cible.php">
<p><?php
// On enlève les éventuels antislash PUIS on crée les entrées en HTML (<br />)
$denomination= nl2br(stripslashes($donnees['denomination']));
echo $donnees['denomination']; ?>
</p>
<?php
} // Fin de la boucle, le script est terminé !
?></a>
</div>

et donc pour finir une page "cible" qui devrait recevoir les infos sur le partenaire sur lequel j'aurioas cliqué sur la page partenaire

voila voila

ndmsp
 Posté le 08/03/2011 à 20:54 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Tu devrais essayer PDO en php, comme sur le lien que je t'ai donné plus haut, ca permet d'éviter les injections sql, possibles avec ton code.

A corriger: Au lieu de mettre $variable != NULL, met: !empty($variable), ca vérifie que la variable n'est pas vide, pour tout type de données.

Ensuite, pour séléctionner les données selon le partenaire: on séléctionne à partir d'une variable définie par l'url (exemple: monsite.com/index.php?partenaire=adapei):

$reponse = $bdd->query('SELECT * FROM partenaires WHERE partenaire = ?')

$reponse->execute(array($_GET['partenaire']));

while($donnees = $reponse->fetch()){

echo $donnees['denomination'];}

Le code est en pdo, c'est bien plus clair ! Sinon, avec ta méthode, ca ferait:

$retour =mysql_query('SELECT * FROM partenaires WHERE partenaire='$_GET['partenaire']' ORDER BY ID DESC LIMIT 0,100')

while($donnees = mysql_fetch_array($retour)){

echo $donnees['denomination'];}

a+

Gillquessoy
 Posté le 08/03/2011 à 21:25 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

ok je mets ça en pratique demain

je te tiens au courant, bonne soiréemerci

Gillquessoy
 Posté le 09/03/2011 à 18:03 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

bonjour

pas beaucoup avancé aujourd'hui!!

j'ai même pas réussis à me connecter en PDO

si j'ai bien comprios je dois mettre:

<?php

$bdd = new PDO('mysql:host=sql.hebergeur.com;dbname=mabase', 'pierre.durand', 's3cr3t');

?>

à la place de :

mysql_connect("localhost", "login", "mdp");
mysql_select_db("ma_base");

ndmsp
 Posté le 09/03/2011 à 18:20 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

C'est exactement ca !! Tu verras, après, ca ira tout seul, et tes requêtes seront pour toi plus lisible et pour le serveur plus rapide !

Bon courage pour la suite !

Gillquessoy
 Posté le 10/03/2011 à 09:59 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour

j'arrive pas à me connecter à ma base de données avec PDO, ça me renvoit cette phrase d'erreur:

Fatal error: Cannot instantiate non-existent class: pdo in /mnt/154/sda/0/7/mauriers/saisie.php on line 19

la ligne 19 étant la ligne

$db = new PDO('mysql:host=sql.free.fr;dbname=nom de la base', 'login', 'mdp');

ndmsp
 Posté le 10/03/2011 à 18:18 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Apparememment, chez Free, il faut activer des options de php, via le panneau d'administration !

Essaie en local, et regarde si ca marche !!

a+

Gillquessoy
 Posté le 10/03/2011 à 18:57 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

je trouve rien chez free qui me permet de faire une manip ayant un rapport avec PDO

et de plus je fais rien en local, je fais tous mes essai directement sur internet donc je crois qu'il va falloir que j'y arrive avec la config actuelle!!

donc pour l'instant j'arrive toujours pas à recuperer, sur ma page "cible.php" les infos du partenaire sur lequel j'ai cliqué sur ma page "partenaire.php"

je rame dur!!

ndmsp
 Posté le 10/03/2011 à 21:22 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Le code que tu as mis est bon, mais le problème vient de la configuration du serveur que tu utilises: la class PDO n'est pas activée dans le php.ini

Du coup, tu peux pas te connecter à la base de donnée !

Gillquessoy
 Posté le 11/03/2011 à 12:36 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bah je fais comment alors!

ogd
 Posté le 11/03/2011 à 14:48 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Hello!

Passage en coup de vent mais si j'ai bien compris ton probleme:

Tu veux cliquer sur le nom d'un partenaire et que ca t'ouvre la page detaillée de ce partanire?

Dans ton while sur ta liste de partenaire, il suffit que tu fasse un lien avec variable du type href = tapagededetail.php?partenaire=$partenaire

et dans ta page de detail tu recupere l'url via get et tu en extrait la variable partenaire

ndmsp
 Posté le 11/03/2011 à 17:03 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

ogd a écrit :

Hello!

Passage en coup de vent mais si j'ai bien compris ton probleme:

Tu veux cliquer sur le nom d'un partenaire et que ca t'ouvre la page detaillée de ce partanire?

Dans ton while sur ta liste de partenaire, il suffit que tu fasse un lien avec variable du type href = tapagededetail.php?partenaire=$partenaire

et dans ta page de detail tu recupere l'url via get et tu en extrait la variable partenaire

Pour l'instant, il ne peut pas se connecter à la base de donnée en PDO sur Free... Il y a normalement une option a activer sur le panneau d'admin !

a+

Gillquessoy
 Posté le 12/03/2011 à 10:19 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

bonjour

une petite question, est ce que posgresql c'est pareil que mysql?

parce que les deux sont proposé par free

Publicité
Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
108,40 €Kit de 32 Go (2 x 16 Go) de mémoire DDR4 Corsair Vengeance LPX 3200 MHz à 108,40 €
145 € -25%

Amazon Allemagne fait une promotion sur le kit de 32 Go (2x16 Go) de mémoire DDR4 Corsair Vengeance LPX 3200 MHz CL16 qui passe à 103,76 €. Comptez 4,64 € pour la livraison en France soit un total de 108,40 € livré alors qu'on le trouve ailleurs à plus de 145 €.


Voir l'offre
34,99 €LEGO Harry Potter 76394 Fumseck, le phénix de Dumbledore à 34,99 €
39,99 € -13%

La Fnac fait une belle promotion sur le set LEGO Harry Potter 76394 Fumseck, le phénix de Dumbledore qui passe à 34,99 € alors qu'on le trouve ailleurs difficelement à partir de 39,99 €. Ce modèle serait à priori retiré en fin d'année (et donc voir son prix exploser sur le marché secondaire).


Voir l'offre
69,99 €SSD Crucial BX500 1 To à 69,99 €
85 € -18%

Amazon propose actuellement le SSD Crucial BX500 1 To à 69,99 €. Ce SSD offre des débits de 540 Mo/s en lecture et 500 Mo/s en écriture. Le SSD est accompagné du logiciel Acronis true image qui vous permettra de transférer tout le contenu de votre ancien disque dur sur le SSD. Il est garanti 3 ans.


Voir l'offre
19,99 €Sac à outils Stanley STMT0-74101 38 pièces à 19,99 €

Cdiscount fait une promotion sur le sac à outils Stanley STMT0-74101 accompagné de 38 pièces et outils qui passe à 19,99 € au lieu de 40 €. Contient : 1 mesure de 3 m, 1 marteau 369 g, 1 pince universelle, 1 pince à bec long, 1 tournevis porte-embout avec 11 embouts, 4 tournevis de précisions, 1 niveau Torpedo, 1 sac souple et 1 jeu de 16 clés mâles.


Voir l'offre

Sujets relatifs
probleme de clauses dans une requete mysql
problème de requète sql
probleme requete sql
Probleme de requete sur deux tables...
Probleme requete mysql
Probleme requete mysql
Probleme de requête
Probleme de mise en ligne de fichier sur un serveur
Requête SQL - PHP via PDO
Problème avec free
Plus de sujets relatifs à probleme de requete sql
 > Tous les forums > Forum Forum des Webmasters