IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Affichage de requête SQL


Sujet :

PHP & Base de données

  1. #21
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 098
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 098
    Points : 8 207
    Points
    8 207
    Billets dans le blog
    17
    Par défaut
    Il faut accéder au champ noSerieDoc de la même manière que tu l'as fait pour le champ nom.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  2. #22
    Membre du Club Avatar de StephBretagne
    Femme Profil pro
    Inscrit en
    Mars 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 147
    Points : 69
    Points
    69
    Par défaut
    Oui bien sûr !

    Alors, ça avance, mais c tjs pas ça :

    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
    <?php
    $req = "(SELECT nomDoc_fr AS nom, noSerieDoc AS numero, idSerieDoc FROM documentaire WHERE idSerieDoc IS NULL)
    		UNION 
    		(SELECT nomSerieDoc_fr AS nom, nbDocsSerie AS nombre, idSerieDoc FROM serieDoc)
    		ORDER BY nom ASC ;";
     
    $result = mysql_query($req);
     
    if ( $result === FALSE ) {
    echo 'DEBUG : ', $req, ' // ', mysql_error( ) ;
    // Arrêter traitement, rediriger, etc.
    }
     
    while($rows = mysql_fetch_assoc($result)){
    	$numero = $rows['numero'];
    	$nombre = $rows['nombre'];
    	if ($numero != 0){
    	echo '<p>'.$rows['nom'].'série de 1 à '.$rows['nombre'].'</p>'; 
    	//print_r ($rows);
    	}
    	else {
    	}
    }
    ?>
    me dit "Undefined index: nombre in ... "

    ça ne m'étonne qu'à moitié vu que le print_r n'affichait pas nbDocsSerie...

  3. #23
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 098
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 098
    Points : 8 207
    Points
    8 207
    Billets dans le blog
    17
    Par défaut
    UNION va nommer les champs selon la 1re requête, peu importe la suite.
    Il faut imaginer un tableau dont les titres des colonnes sont fixés et qu'on ne peut plus toucher par la suite.

    Avec ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    (SELECT nomDoc_fr AS nom, noSerieDoc AS numero, idSerieDoc FROM documentaire WHERE idSerieDoc IS NULL)
    UNION 
    (SELECT nomSerieDoc_fr AS nom, nbDocsSerie AS nombre, idSerieDoc FROM serieDoc)
    Le champ nombre ne sera jamais défini car la colonne n° 2 s'appellera numero (par contre tu peux accéder aux valeurs via numero).

    Pour dissocier aux mieux les enregistrements documents/séries tu peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    (SELECT noSerieDoc, NULL AS nbDocsSerie FROM ...)
    UNION
    (SELECT NULL, nbDocsSerie FROM ...)
    Ainsi tu auras dans tous les enregistrements des champs noSerieDoc et nbDocsSerie, l'astuce étant que le champ impertinent de l'enregistrement vaudra NULL.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  4. #24
    Membre du Club Avatar de StephBretagne
    Femme Profil pro
    Inscrit en
    Mars 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 147
    Points : 69
    Points
    69
    Par défaut
    Je m'étais compliqué la vie ...

    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
    <?php
    $req = "(SELECT nomDoc_fr AS nom, noSerieDoc AS numero, idSerieDoc FROM documentaire WHERE idSerieDoc IS NULL)
    		UNION 
    		(SELECT nomSerieDoc_fr AS nom, nbDocsSerie AS nombre, idSerieDoc FROM serieDoc)
    		ORDER BY nom ASC ;";
     
    $result = mysql_query($req);
     
    if ( $result === FALSE ) {
    echo 'DEBUG : ', $req, ' // ', mysql_error( ) ;
    // Arrêter traitement, rediriger, etc.
    }
     
    while($rows = mysql_fetch_assoc($result)){
    	$numero = $rows['numero'];
    	if ($numero != 0){
    	echo '<p>'.$rows['nom'].' (série de 1 à '.$rows['numero'].')</p>'; 
    	}
    	else {
    	echo '<p>'.$rows['nom'].'</p>'; 
    	}
    }
    ?>
    ça a l'air de marcher

    Je revérifierai demain matin avec la tête plus claire.

    Et puis la suite, réussir à mettre des liens vers les pages de présentation des films et séries, pages que je ne sais pas encore créer à la volée depuis ma BDD

    En tous cas, un super merci pour tout et peut-être à demain !

    Bonne fin de soirée

  5. #25
    Membre du Club Avatar de StephBretagne
    Femme Profil pro
    Inscrit en
    Mars 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 147
    Points : 69
    Points
    69
    Par défaut
    Ta réponse est arrivée entre-temps

    Je la regarde avec + d'attention demain.

    Encore merci

  6. #26
    Membre du Club Avatar de StephBretagne
    Femme Profil pro
    Inscrit en
    Mars 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 147
    Points : 69
    Points
    69
    Par défaut
    Salut Seb

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    (SELECT noSerieDoc, NULL AS nbDocsSerie FROM ...)
    UNION
    (SELECT NULL, nbDocsSerie FROM ...)
    Bon, j'ai beau relire ce que tu as écrit hier soir, je comprends pas tout .

    Nickel pour le début, l'explication parfaitement claire sur UNION, mais dans la 1ère ligne de code, comment on peut avoir nbDocsSerie puisqu'il ne fait pas partie de la table documentaire ?

  7. #27
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 098
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 098
    Points : 8 207
    Points
    8 207
    Billets dans le blog
    17
    Par défaut
    mais dans la 1ère ligne de code, comment on peut avoir nbDocsSerie puisqu'il ne fait pas partie de la table documentaire ?
    Justement, dans la 1re requête du UNION on crée un champ nbDocsSerie qui vaudra toujours NULL pour la 1re requête uniquement. Cela permet d'avoir dans le jeu final de résultats 1 champ pour noSerieDoc et un autre pour nbDocsSerie, les valeurs ne sont pas mélangées.

    C'est un peu comme si on faisait simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT 'bonjour' AS nomDeChampQuelconque ;
    Malgré qu'il n'y ait pas de table et de FROM cette petite requête est valide, elle retourne un et un seul enregistrement, $row['nomDeChampQuelconque'] vaut toujours "bonjour".

    Colle les requêtes dans phpMyAdmin et tu comprendras mieux.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  8. #28
    Membre du Club Avatar de StephBretagne
    Femme Profil pro
    Inscrit en
    Mars 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 147
    Points : 69
    Points
    69
    Par défaut
    Bon, après un petit détour sympa et obligatoire par les scripts photoshop et le traitement d'images par lots (enfin un truc que je maîtrise ), me revoilà.

    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
    <?php
     
    	$req = "(
    	SELECT nomDoc_fr AS nom, noSerieDoc, NULL AS nbDocsSerie, idDoc
    	FROM documentaire
    	WHERE idSerieDoc IS NULL
    	)
    	UNION (
    
    	SELECT nomSerieDoc_fr, NULL , nbDocsSerie, idSerieDoc
    	FROM serieDoc
    	)
    	ORDER BY  `nom` ASC;
    	";
     
    	$result = mysql_query($req);
     
    	if ( $result === FALSE ) {
    	echo 'DEBUG : ', $req, ' // ', mysql_error( ) ;
    	// Arrêter traitement, rediriger, etc.
    	}
     
    	while($rows = mysql_fetch_assoc($result)){
    		$nbDocsSerie = $rows['nbDocsSerie'];
    		if ($nbDocsSerie != 0){
    		echo '<p>'.strtoupper($rows['nom']).' (série de 1 à '.$rows['nbDocsSerie'].')</p>'; 
    		}
    		else {
    		echo '<p>'.fullUpper($rows['nom']).'</p>'; 
    		//fullUpper : fonction qui permet d'avoir des maj accentuées avec strtoupper et utf-8
    		}
    	}
    ?>
    Ça marche nickel en effet, merciiiii !!!
    Par contre, va me falloir certainement du tps pour intégrer ça vraiment je crois, malgré toutes tes explications et les nombreux tests sur phpMyAdmin, ça ne m'est pas encore naturel !

    Et bien maintenant, j'ai bien ma liste de titres, parfaitement ordonnés... mais ce n'était qu'un début car il faut à présent que je parvienne à mettre des liens sur tous ces titres pour accéder à la page (non faite) où il y aura toutes les infos sur le film, ou, en cas de série : la série + ts les films dont elle est composée.

    Aucun idée de par où prendre ça... Je ne sais même pas trop comment s'appelle ce que je veux faire. Aurais-tu une idée d'où je pourrai trouver des infos à ce sujet ou un tuto ?

  9. #29
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 098
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 098
    Points : 8 207
    Points
    8 207
    Billets dans le blog
    17
    Par défaut
    Par contre, va me falloir certainement du tps pour intégrer ça vraiment je crois, malgré toutes tes explications et les nombreux tests sur phpMyAdmin, ça ne m'est pas encore naturel !
    Alors attention à la question piège de l'examinateur, perso si je voyais ça je m'y engouffrerais (niark niark)

    Points à retenir :
    1. Un UNION nomme les champs du jeu de résultats final selon les noms fournis dans la 1re requête
    2. Tu peux fixer une valeur de ton choix dans le SELECT (ex. SELECT 'bonjour' ; ou SELECT NULL ;)
    => En découle la requête obtenue qui sépare pertinemment les données des 2 tables dans leurs champs respectifs (mélanger des titres de docs et de séries ça passe, un nombre de docs et un identifiant de série non)

    Et bien maintenant, j'ai bien ma liste de titres, parfaitement ordonnés... mais ce n'était qu'un début car il faut à présent que je parvienne à mettre des liens sur tous ces titres pour accéder à la page (non faite) où il y aura toutes les infos sur le film, ou, en cas de série : la série + ts les films dont elle est composée.
    C'est le plus facile !

    Aucun idée de par où prendre ça... Je ne sais même pas trop comment s'appelle ce que je veux faire. Aurais-tu une idée d'où je pourrai trouver des infos à ce sujet ou un tuto ?
    Doit bien y avoir des tutos mais je n'en connaîs pas.

    Si j'étais toi je ferais 2 pages :

    documentaire.php : présente le doc dont l'identifiant est passé en paramètre dans le lien, exemple mesdocs.com/documentaire.php?id=1234

    serie.php : présente la série dont l'identifiant est passé en paramètre, exemple mesdocs.com/serie.php?id=12

    Dans les 2 cas tu récupères l'ID avec la variable $_GET['id'], ensuite il ne reste qu'à requêter MySQL et présenter les infos.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  10. #30
    Membre du Club Avatar de StephBretagne
    Femme Profil pro
    Inscrit en
    Mars 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 147
    Points : 69
    Points
    69
    Par défaut
    Merci encore pour le cours sur UNION !!!

    Si j'étais toi je ferais 2 pages :

    documentaire.php : présente le doc dont l'identifiant est passé en paramètre dans le lien, exemple mesdocs.com/documentaire.php?id=1234

    serie.php : présente la série dont l'identifiant est passé en paramètre, exemple mesdocs.com/serie.php?id=12

    Dans les 2 cas tu récupères l'ID avec la variable $_GET['id'], ensuite il ne reste qu'à requêter MySQL et présenter les infos.
    Ecrit comme ça, ça dédramatise bien car, même pour moi, ça semble accessible. Je m'y mets tout de suite car ça risque de me prendre pas mal de tps vu le nombre d'infos qu'il y a dans un film et ma lenteur habituelle

    Je te tiens au courant

  11. #31
    Membre du Club Avatar de StephBretagne
    Femme Profil pro
    Inscrit en
    Mars 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 147
    Points : 69
    Points
    69
    Par défaut
    Bonjour Seb

    Je n'y arrive pas

    Après un break de début de we, je m'y suis remise et, si j'arrive bien à afficher les données simples (nomDoc_fr, nomRea...), rien à faire pour l'image qui doit pourtant figurer en tout premier sur la page doc_fr.php...

    Alors, j'ai stocké :
    - le nom des images en BDD dans la table imgDocSerie dans une colonne nommée img1.
    - les images elles-mêmes dans un répertoire nommé $repImg = 'images/3-docEtSerie/';

    Le code qui ne passe pas :

    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
    <?php
    	$req = "SELECT idDoc, img1
    	FROM documentaire
    	INNER JOIN imgDocSerie ON documentaire.idImg = imgDocSerie.idImg
    	WHERE idDoc=1;";
     
    	$result = mysql_query($req);
     
    	if ( $result === FALSE ) {
    	echo 'DEBUG : ', $req, ' // ', mysql_error( ) ;
    	// Arrêter traitement, rediriger, etc.
    	}
     
    	while ($val = mysql_fetch_assoc($result)) {
     
    		if ($val['img1'] != "") { 
    			echo '<img alt="" scr = "<php?$repImg.$val['img1']?>"/>';
    		} 
    	}	
    ?>
    Le message d'erreur : Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /home/lieurac/public_html/doc_fr.php on line 62

    La line 62, c'est celle de l'echo dans laquelle j'ai essayé de rajouter un ; après la fermeture de la balise php mais c'est pas ni (ni les dizaine d'autres choses que j'ai essayé ).

    Qu'est-ce que j'ai mal fait à ton avis ?

  12. #32
    Membre du Club
    Inscrit en
    Octobre 2011
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 50
    Points : 66
    Points
    66
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo 'DEBUG : '.$req.'//'.mysql_error( );
    C'est pas plutôt ça ?

  13. #33
    Membre du Club Avatar de StephBretagne
    Femme Profil pro
    Inscrit en
    Mars 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 147
    Points : 69
    Points
    69
    Par défaut
    Non, KstorTroy, ce ne sont pas les lignes permettant d'afficher en clair des erreurs de syntaxe SQL qui provoquent le bug.

    En l’occurrence, ma requête est bonne, je l'avais d'ailleurs testée dans phpMyAdmin.

    C'est bien l'affichage de l'image, l'echo, qui pose problème.

  14. #34
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 098
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 098
    Points : 8 207
    Points
    8 207
    Billets dans le blog
    17
    Par défaut
    Gros problème ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<img alt="" scr = "<php?$repImg.$val['img1']?>"/>';
    Réécris l'instruction en partant de rien.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  15. #35
    Membre du Club
    Inscrit en
    Octobre 2011
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 50
    Points : 66
    Points
    66
    Par défaut
    Il va falloir m'éclairer sur 2 choses moi aussi alors ! ^^
    Si cette syntaxe est bonne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo 'DEBUG : ', $req, ' // ', mysql_error( ) ;
    --> je viens d'apprendre que je pouvais mettre des ',' au lieu de '.' pour les chaines de caract

    Cette ligne là me pose problème aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<img alt="" scr = "<php?$repImg.$val['img1']?>"/>';
    Pourquoi dans un code php insérer '<php?' et '?>'
    cela signifie que l'echo va renvoyer au navigateur:'<img alt="" scr = "<php?$repImg.$val['img1']?>'
    et donc '<php?$repImg.$val['img1']?>' ne sera pas interprêté par le serveur.
    En vérifiant ton code html, tu vas trouver du php dedans.

    J'aurais écrit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<img alt="" scr = ".$repImg.$val['img1'].'"/>';
    et avec ce que je viens d'apprendre aujourd'hui, j'aurais meme pu écrire ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<img alt="" scr = ",$repImg.$val['img1'],'"/>';
    mais je ne l'aurais pas fait car je réserve les virgules pour les paramètres de fonction ou au req sql. Si je mets des virgules partout, je vais pas m'en sortir.

  16. #36
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 098
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 098
    Points : 8 207
    Points
    8 207
    Billets dans le blog
    17
    Par défaut
    --> je viens d'apprendre que je pouvais mettre des ',' au lieu de '.' pour les chaines de caract
    echo accepte plusieurs arguments, ici la virgule est un séparateur d'arguments. Tu affiches les chaînes les unes après les autres, sans concaténation.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  17. #37
    Membre du Club Avatar de StephBretagne
    Femme Profil pro
    Inscrit en
    Mars 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 147
    Points : 69
    Points
    69
    Par défaut
    KstorTroy, ce que tu proposes donne exactement la même erreur que ce que j'avais écrit.

    Seb, j'ai fait plusieurs essais infructueux, mais je ne peux pas continuer car je me suis bloqué le dos cet aprèm (sans doute que je stresse pas assez ) et je dois donc retourner m'allonger en espérant que ça ira mieux demain.

    Merci pour vos conseils à tous les deux

  18. #38
    Membre du Club
    Inscrit en
    Octobre 2011
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 50
    Points : 66
    Points
    66
    Par défaut
    Ah !!! Pardon de pourrir ton post Steph ! ^^
    Ce sont des arguments, ils ont donc une utilité différente.

    Mais l'effet produit est le même dans ce cas-ci.
    Y'a pas de "concatiniquination", je cherchais le mot tout à l'heure ! ^^
    Y'as pas de concaténation quand on fait un écho.
    La différence est un peu vague dans mon esprit.

    Je m'en vais me renseingner...

    Merci !

    EDIT: Je viens de tilter.
    --> il va le con-ca-ti-ni-ser avant de l'envoyer et envoyer 1 seul morceau au lieu d'en envoyer plusieurs morceaux.
    Si j'en place 10.000 des comme ça. Lequel sera le plus rapide ?
    C'est un bon plan d'optimisation si c'est vraiment plus rapide.
    Mais qui affiche 10k lignes sans pagination ?
    C'est bon à savoir quand meme !


    J'avais oublié un '
    Celui-ci marche chez moi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $repImg = '11';
    $val['img1'] ='12';
    echo '<img alt="" scr = "'.$repImg.$val['img1'].'"/>';

  19. #39
    Membre du Club Avatar de StephBretagne
    Femme Profil pro
    Inscrit en
    Mars 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 147
    Points : 69
    Points
    69
    Par défaut
    Bonjour Seb

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<img alt="" scr = "'.$repImg.$val['img1'].'"/>';

    1) Si la syntaxe de KstorTroy permet de ne plus avoir d'erreur php, elle ne permet malheureusement pas d'afficher l'image

    Pourtant, la requête est bonne, avec l'idDoc1, sur mySql, je vois :
    idDoc :1
    img1 : 1-lucinda.jpg

    et l'image 1-lucinda.jpg est bien dans mon répertoire windows ($repImg) 'images/3-docEtSerie/'.

    Que manque t'il pour que l'image s'affiche ?


    2) Alors, si j'arrive bien à afficher toutes les infos sur mon film documentaire en écrivant en utilisant comme ci-dessous WHERE idDoc=x, je n'arrive pas à utiliser la méthode $_GET['id']

    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
    <?php
     
    $req = "SELECT idDoc, nomProd, nomParticip, txtDoc_fr
    	FROM documentaire
    	WHERE idDoc=37;";
     
     
    	$result = mysql_query($req);
     
    	if ( $result === FALSE ) {
    	echo 'DEBUG : ', $req, ' // ', mysql_error( ) ;
    	// Arrêter traitement, rediriger, etc.
    	}
     
    	while($rows = mysql_fetch_assoc($result)){
     
    		$nomProd = $rows['nomProd'];
    		$nomParticip = $rows['nomParticip'];
    		$txtDoc_fr = $rows['txtDoc_fr'];
     
    		echo 'PRODUCTION : '.$rows['nomProd'].'</br> PARTICIPATION : '.$rows['nomParticip'].'<br/><p> '.$rows['txtDoc_fr'].'<p/>'; 
    	}
     
    ?>
    J'ai essayé plusieurs choses, voici la dernière ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    if (isset($_GET['idDoc'])) {
    	$idDoc = intval($GET['idDoc']);
     
    	$req = "SELECT idDoc, nomDoc_fr, datCopyright, nomRea, nomAut, nomChore 
    	FROM documentaire
    	WHERE idDoc="'.$idDoc.'";"					
    ?>
    Et ça donne une erreur SQL sur la ligne du WHERE : unexpected T_CONSTANT_ENCAPSED_STRING in /home/lieurac/public_html/doc_fr.php on line 204

    J'imagine que ça doit encore être une histoire de ' ou de "...

  20. #40
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 098
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 098
    Points : 8 207
    Points
    8 207
    Billets dans le blog
    17
    Par défaut
    Que manque t'il pour que l'image s'affiche ?
    Assure-toi que le SRC du IMG est correctement construit.
    Pour cela tu peux afficher la source HTML de la page.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $req = "SELECT idDoc, nomDoc_fr, datCopyright, nomRea, nomAut, nomChore 
    	FROM documentaire
    	WHERE idDoc="'.$idDoc.'";"
    La chaîne de caractères commence avec " juste avant le SELECT
    Finit avec " juste après le =
    Ensuite le ' rouvre une nouvelle chaîne, ce qui est incorrect car 2 chaînes ne peuvent pas se suivre ainsi sans concaténation (opérateur .)

    Tu peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $req = "SELECT idDoc, nomDoc_fr, datCopyright, nomRea, nomAut, nomChore 
    	FROM documentaire
    	WHERE idDoc=$idDoc" ;
    Ou :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $req = 'SELECT idDoc, nomDoc_fr, datCopyright, nomRea, nomAut, nomChore 
    	FROM documentaire
    	WHERE idDoc=' . $idDoc ;
    Doc sur les chaînes de caractères à lire http://fr2.php.net/manual/fr/language.types.string.php
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

Discussions similaires

  1. [MySQL] Affichage de requêtes SQL
    Par Mouchh dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 03/08/2011, 15h20
  2. [MySQL] Affichage résultat requête SQL dans page HTML comme un tableau
    Par joxbl dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 14/03/2011, 14h26
  3. Affichage résultat requête SQL
    Par Shankara dans le forum Composants
    Réponses: 7
    Dernier message: 10/06/2010, 21h21
  4. Affichage de requête SQL
    Par bibipsi dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 15/05/2009, 20h49
  5. [SQL] Soucis d'affichage de requête SQL
    Par kilkikou dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 06/06/2006, 16h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo