[resolu] 2 requête en une, comment faire ?

Mammouth du PHP | 790 Messages

05 oct. 2011, 15:10

Votre requête SQL a été exécutée avec succès
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Mammouth du PHP | 19672 Messages

05 oct. 2011, 15:16

Votre requête SQL a été exécutée avec succès
Pour être franc, je m'y attendais quand même un peu ;)

La question qui reste : est-ce que le résultat obtenu correspond au résultat attendu ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 790 Messages

05 oct. 2011, 15:19

c'est ce que j'été en train de chercher...
dans phpmyadmin je ne pense pas, je n'ai rien vu du moins pas les infos chercher...
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Mammouth du PHP | 790 Messages

05 oct. 2011, 15:20

je viens de tester: SELECT * FROM `chien` WHERE 1 dans phpmyadmin pour voir ce qu'est un résultat et donc non ça ne m'a rien afficher...

si non effectivement merci du conseil pour tester dans phpmyadmin :)
Votre requête SQL a été exécutée avec succès
-- On crée une variable pour définir une valeur identifiant un parent;
SET @p_id_parent =1;# MySQL n'a retourné aucune ligne.
# MySQL n'a retourné aucune ligne.
-- On exécute la requête qui prendra en compte la variable précédente;
SELECT ce.id AS id_parent, ce.nom AS nom_parent, ce.affixe AS affixe_parent, ce.lof_pere AS id_pere_parent, cp.id AS id_enfant, cp.nom AS nom_enfant, cp.affixe AS affixe_enfant, cp.lof_pere AS id_pere_enfant
FROM chien AS ce
LEFT JOIN chien AS cp ON ce.lof_pere = cp.id
WHERE cp.id = @p_id_parent ;# MySQL n'a retourné aucune ligne.
# MySQL n'a retourné aucune ligne.# MySQL n'a retourné aucune ligne.
Modifié en dernier par juliette le 05 oct. 2011, 15:25, modifié 1 fois.
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Mammouth du PHP | 19672 Messages

05 oct. 2011, 15:24

Ok, essaye en remplaçant la valeur « 1 » de la variable par une autre valeur dont tu sais qu'il existe des enfants. C'est là que tu peux utiliser un SELECT * sur la table, tu vas repérer tout de suite les lignes qui ont une valeur dans la colonne lof_pere, tu prends une de ces valeurs au hasard et tu la mets à la place du « 1 », puis tu recommence dans phpMyAdmin pour observer le résultat.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 790 Messages

05 oct. 2011, 15:32

j'ai 3 chien dans cette table: id1 id2 et id3, chacun de ces 3 chien on 2 parents: lof_pere et lof_mere...

j'ai tester les 3 id en tant que enfant a chercher les parents mais dans aucun cas ça ne rend quelque chose...
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Mammouth du PHP | 19672 Messages

05 oct. 2011, 15:42

j'ai 3 chien dans cette table: id1 id2 et id3, chacun de ces 3 chien on 2 parents: lof_pere et lof_mere...
:shock: De la génération spontanée dans le monde canin, waow !

Il doit y avoir un truc : pour qu'un chien ait un parent, père ou mère, il faut que ce(tte) dernier(e) existe.
Pourrais-tu me coller un DESC de la table (requête SQL : « DESC chien; ») et un export des lignes de données, j'ai un sérieux doute...
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 790 Messages

05 oct. 2011, 17:18

ca je na sais pas faire non plus ???
qua veux tu dire pas "waow" ?
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Mammouth du PHP | 790 Messages

05 oct. 2011, 17:27

effectivement les parents des chiens inscrits n'existe pas...
mon but est d'afficher les parents mais si ils existes et si il n'existe pas, on affiche le n° lof qui est 'lof_pere" et "lof_mere"

mais tout d'un coup ca me parait compromis, non ?
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Mammouth du PHP | 19672 Messages

05 oct. 2011, 17:45

Well well well... on est loin de se sortir le cul des ronces.... :-k

Bien, tu vas ouvrir un client MySQL en ligne de commande : normalement, tu as un lien direct, soit si tu utilises WAMP dans la barre des tâche après un clic droit sur le logo de WAMP, soit dans le menu Démarrer sous le menu MySQL, soit, en dernier recours en faisant : Démarrer > Exécuter, taper ensuite « cmd » dans la boite de dialogue qui s'ouvre, ensuite, tu vas saisir ce qui suit :
C:\>mysql -u root -p test
Enter password: ********
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1543
Server version: 5.0.45-community-nt-log MySQL Community Edition (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>
Remplace « test » de la première ligne par le nom de ta base de données; Ensuite, la seconde ligne te demande ton mot de passe : si tu accèdes à MySQL sans mot de passe, alors écris la première ligne sans le « -p »
Tu devrais donc ensuite voir s'afficher ce que j'ai mis ensuite à partir de la troisième ligne.

Si tu n'es pas dans la bonne base mais que tu t'es bien connecté, utilise la commande USE nom-nouvelle-table : exemple, je vais changer de base et me connecter à ma base nommée « girafe » :
mysql> USE girafe;
Database changed
mysql>
Ce n'est pas plus compliqué que ça. Ensuite, tu vas utiliser la commande DESC pour avoir une vue synthétique de la table, vision que tu pourras copier et coller ici dans un bloc avec [SQL] pour garder la mise en forme. Exemple que je fais chez moi sur la table t_pays_pay de ma bas test, ça donne ceci :
mysql> DESC t_pays_pay;
+---------------+--------------------------------+------+-----+---------+----------------+
| Field         | Type                           | Null | Key | Default | Extra          |
+---------------+--------------------------------+------+-----+---------+----------------+
| pay_id        | int(10) unsigned               | NO   | PRI | NULL    | auto_increment |
| pay_libelle   | varchar(128)                   | NO   |     |         |                |
| pay_insee     | mediumint(5) unsigned zerofill | NO   |     | 00001   |                |
| pay_longitude | float(11,8)                    | YES  |     | NULL    |                |
| pay_latitude  | float(11,8)                    | YES  |     | NULL    |                |
+---------------+--------------------------------+------+-----+---------+----------------+
5 rows in set (0.36 sec)

mysql>
Et comme tu vois, ça affiche un descriptif suffisamment détaillé de la table : fais la même chose en remplaçant le nom de la table par ta table « chien ». Ensuite, envoie une nouvelle requête : SELECT * FROM chien et copie/colle le résultat ici, toujours dans un bloc SQL pour garder la mise en forme.

NOTE : pour un copier/coller en ligne de commande sous Windows, clic-droit sur le point de départ, et en conservant appuyée la touche [Majuscule], cliquer sur l'autre coin de la zone à copier. Ensuite, un click droit sur la zone mise en surlignage, c'est copié, il ne reste qu'à faire coller dans un Notepad++ ou un éditeur de texte ou de code quelconque.

Allez, tu es capable, faut juste pas stresser, tu vas y arriver ;)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 790 Messages

05 oct. 2011, 17:49

avant de commencer tes teste, je dois te dire qu'effectivement, j'ai créer les parents de mon chien et mysql, avec ton premier code me rend la table de l'id du chien ch1
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

05 oct. 2011, 17:53

le mieux c'est de fournir la structure des tables (le DESC que demande Cyrano) et si possible une jeux de données permettant de tester la requête ;)
pour cela tu peux demander à phpmyadmin un export de la table avec les données et les coller sur le forum ;)


@+
Il en faut peu pour être heureux ......

Mammouth du PHP | 790 Messages

05 oct. 2011, 18:00

bon pour l'instant, j'opte pour le solution de moogli car je n'ai pas encore trouvé comment ouvrir mysql en ligne de commende.
-- phpMyAdmin SQL Dump
-- version 3.3.9
-- http://www.phpmyadmin.net
--
-- Serveur: localhost
-- Généré le : Mer 05 Octobre 2011 à 15:36
-- Version du serveur: 5.5.8
-- Version de PHP: 5.3.5

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Base de données: `malivote`
--

-- --------------------------------------------------------

--
-- Structure de la table `chien`
--

CREATE TABLE IF NOT EXISTS `chien` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `lof_pere` int(20) NOT NULL,
  `lof_mere` int(20) NOT NULL,
  `race` varchar(255) NOT NULL,
  `nom` varchar(32) NOT NULL,
  `affixe` varchar(40) NOT NULL,
  `sex` varchar(11) NOT NULL,
  `lof` varchar(32) NOT NULL,
  `puce` varchar(50) NOT NULL,
  `photo` varchar(50) NOT NULL,
  `nee` varchar(32) NOT NULL,
  `taille` varchar(32) NOT NULL,
  `poids` varchar(32) NOT NULL,
  `description` text NOT NULL,
  `d_inscription` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

--
-- Contenu de la table `chien`
--

INSERT INTO `chien` (`id`, `lof_pere`, `lof_mere`, `race`, `nom`, `affixe`, `sex`, `lof`, `puce`, `photo`, `nee`, `taille`, `poids`, `description`, `d_inscription`) VALUES
(1, 1, 2, 'Berger belge Malinois', 'Vatan', 'de la Cite des Foucault', '(M)', '00254855-00254', '000022558885122', '<Img src="images/vatan.PNG">', '12/12/2006', '63 cm', '33 Kg', 'Erat autem diritatis eius hoc quoque indicium nec obscurum nec latens, quod ludicris cruentis delectabatur et in circo sex vel septem aliquotiens vetitis certaminibus pugilum vicissim se concidentium perfusorumque sanguine specie ut lucratus ingentia laetabatur.', 0),
(2, 752, 27, 'Berger belge Malinois', 'vaBimbo', 'des deux sabres', '(F)', '2', '', '<Img src="images/bimbo.PNG">', '', '', '', '', 0),
(3, 588, 58, 'bbm', 'vaTop Gun', 'des Plaines de Thierache', '(M)', '1', '', '', '', '', '', '', 0);

si non, j'utilise wamp 2.1 mais je ne trouve pas les infos que tu demande Cyrano même avec un clic droit sur le logo...
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Mammouth du PHP | 790 Messages

05 oct. 2011, 18:23

je pense que j'ai trouve: wamp-> mysql -> mysql console... mais il me demande un password, du quel sagit il ?
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Mammouth du PHP | 790 Messages

05 oct. 2011, 18:40

j'ai trouver le panneau de commande sql mais il demande un mdp que je n'ai pas, je fais entrer sans rien mettre et j'optient:

Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 643
Server version: 5.5.8-log MySQL Community Server (GPL)

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

puis j'entre

C:\>mysql -u root malivote mais la il me propose une nouvelle ligne d’écriture:
->

et quand je passe par cmd: il me dis que mysql n'est pas reconu en tant que commande interne ou autre fichier exécutable...

le suicide me guette #-o
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.