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

Langage PHP Discussion :

Undefined index: nom_fr


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    381
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Maroc

    Informations forums :
    Inscription : Novembre 2007
    Messages : 381
    Points : 180
    Points
    180
    Par défaut Undefined index: nom_fr
    Bonjour,
    [Undefined index: nom_fr ] Je ne sais pas c'est quoi l'utilité d'indexation, le 'num' est indexé, il s'affiche dans le lien mais le 'nom_fr' non. Par contre avec le mysql_fetch_row y a pas de problème. J'aimerai aussi savoir si c'est la concaténation dans le lien si correcte.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    while($ligne=mysql_fetch_array($rs)){
    			echo "<a href=cat.php?nomcat=$ligne[nom_fr]&numcat=$ligne[num]>"; 
    			echo "$ligne[nom_fr]";
    			echo "</a>";
    		}
    Merci D'avance.

  2. #2
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par debutantasp Voir le message
    Bonjour,
    [Undefined index: nom_fr ] Je ne sais pas c'est quoi l'utilité d'indexation, le 'num' est indexé, il s'affiche dans le lien mais le 'nom_fr' non. Par contre avec le mysql_fetch_row y a pas de problème. J'aimerai aussi savoir si c'est la concaténation dans le lien si correcte.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    while($ligne=mysql_fetch_array($rs)){
    			echo "<a href=cat.php?nomcat=$ligne[nom_fr]&numcat=$ligne[num]>"; 
    			echo "$ligne[nom_fr]";
    			echo "</a>";
    		}
    Merci D'avance.
    C 'est le $rs qui manque pour te comprendre,
    peux tu nous mettre tout les code de ta requete MYSQL (sans mot de passe )

    Et le top serait le dessin de ta table !

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    381
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Maroc

    Informations forums :
    Inscription : Novembre 2007
    Messages : 381
    Points : 180
    Points
    180
    Par défaut
    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
     
    <?php 
    	$cn=mysql_connect("localhost","root","") or die("Connexion Serveur Impossible");
    	$bd=mysql_select_db("boutique",$cn) or die ("Problème de Base de données");
    	$affiche="select * from catalogue";
    	$rs=mysql_query($affiche) or die("PB requête sql");
    	echo "<table width=30% border=1>";
    		while($ligne=mysql_fetch_array($rs)){
    		echo "<tr><td>";
    			echo "<a href=cat.php?nomcat=$ligne[nom_fr]&numcat=$ligne[num]>"; 
    			echo "$ligne[nom_fr]";
    			echo "</a>";
    		}
    		echo "</td></tr>";
    	echo "</table>";
    	?>

  4. #4
    FoxLeRenard
    Invité(e)
    Par défaut
    Ca veut dire que
    nom_fr et num doivent étre des valeurs champs de ta table, est-ce bien le cas ?
    si non, une différence entre les deux méthodes, je n'utilises presque pas celle-ci donc je vais controler

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    381
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Maroc

    Informations forums :
    Inscription : Novembre 2007
    Messages : 381
    Points : 180
    Points
    180
    Par défaut
    Oui Fox, ca marche maintenant, quand je les ai déclarés dans la requête.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select nom_fr,nom_en,num from catalogue
    Mais pourquoi ne marche pas quand je mets le (*), normalement l'étoile doit sélectionner tous les champs de la table, non?

  6. #6
    Membre confirmé
    Avatar de FMaz
    Inscrit en
    Mars 2005
    Messages
    643
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 643
    Points : 640
    Points
    640
    Par défaut
    Quelques conseils:

    #1
    si tu utilise toujours mysql_fetch_array comme un array, et jamais comme un row, tu est mieux d'utiliser mysql_fetch_assoc. Beaucoup plus rapide, et ca changera rien d'autre pour toi.

    #2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "bla bla bla $ligne[nom_fr] bla bla bla";
    ... c'est peut-être ambigue.

    Essaie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "bla bla bla {$ligne[nom_fr]} bla bla bla";
    Ou:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "bla bla bla " . $ligne["nom_fr"] . "bla bla bla";
    Ou (ce que je préfère):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo 'bla bla bla ' . $ligne['nom_fr'] . 'bla bla bla';
    Effectivement, ca devrait fonctionner avec SELECT *... je crois que ta facon de faire joue peut-être un peu sur les limites de l'interprétation de PHP.


    #3:
    Tu ouvre pleins de <tr><td> dans ton while, mais tu ne ferme que les derniers APRÈS ta boucle.

    #4:
    Ne met pas en string ce qui ne doit pas l'être
    devrait pas être en string. Met juste:

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    381
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Maroc

    Informations forums :
    Inscription : Novembre 2007
    Messages : 381
    Points : 180
    Points
    180
    Par défaut
    Hello,
    Même mysql_fetch_assoc ne marche pas avec le select * from table. Je ne sais pas pourquoi.

  8. #8
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Bonjour,
    En reprenant les conseils donnés par Fmaz, essaye ce code :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php 
    	$cn = mysql_connect("localhost","root","") or die("Connexion Serveur Impossible");
    	$bd = mysql_select_db("boutique",$cn) or die ("Problème de Base de données");
    	$affiche = "SELECT * FROM catalogue";
    	$rs = mysql_query($affiche,$cn) or die("PB requête sql");
    	echo "<table width=30% border=1>";
    	while($ligne = mysql_fetch_assoc($rs)) {
    		echo "<tr><td>";
    		echo "<a href=cat.php?nomcat=".$ligne['nom_fr']."&numcat=".$ligne['num'].">"; 
    		echo $ligne['nom_fr'];
    		echo "</a>";
    		echo "</td></tr>";
    	}
    	echo "</table>";
    ?>

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    381
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Maroc

    Informations forums :
    Inscription : Novembre 2007
    Messages : 381
    Points : 180
    Points
    180
    Par défaut
    Bonjour,
    J'ai copié/collé votre code, mais ne marchait pas Je ne sais pas si je dois indexé tous les champs de ma table ou quoi.
    Erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Notice: Undefined index: nom_fr in c:\program files\easyphp1-8\www\boutique\test1.php on line 20

  10. #10
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Re,
    Pourtant je fais le test et j'obtiens ceci :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <table width=30% border=1><tr><td><a href=cat.php?nomcat=Test1&numcat=1>Test1</a></td></tr><tr><td><a href=cat.php?nomcat=Test2&numcat=2>Test2</a></td></tr><tr><td><a href=cat.php?nomcat=Test4&numcat=4>Test4</a></td></tr><tr><td><a href=cat.php?nomcat=Test4&numcat=4>Test4</a></td></tr></table>

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    381
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Maroc

    Informations forums :
    Inscription : Novembre 2007
    Messages : 381
    Points : 180
    Points
    180
    Par défaut
    ça marche pas chez moi, même si j'ai indexé tous les champs
    je dois toujours déclarer les champs que je veux récupérer.
    Erreur : Undefined index: nom_fr
    j'ai un autres souci avec les liens, quand un lien contient une valeur avec des espaces il prend pas le reste.

  12. #12
    Membre confirmé
    Avatar de FMaz
    Inscrit en
    Mars 2005
    Messages
    643
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 643
    Points : 640
    Points
    640
    Par défaut
    Peux-tu essayer ceci et me dire ce qu'il retourne ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?php 
    	$cn = mysql_connect("localhost","root","") or die("Connexion Serveur Impossible");
    	$bd = mysql_select_db("boutique",$cn) or die ("Problème de Base de données");
    	$affiche = "SELECT * FROM catalogue";
    	$rs = mysql_query($affiche,$cn) or die("PB requête sql");
     
    	$ligne = mysql_fetch_assoc($rs);
     
    	var_dump($ligne);

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    381
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Maroc

    Informations forums :
    Inscription : Novembre 2007
    Messages : 381
    Points : 180
    Points
    180
    Par défaut
    Ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    array(3) { ["num"]=> string(1) "1" ["Nom_Fr"]=> string(8) "Pop-Rock" ["Nom_En"]=> string(8) "Pop-Rock" }

  14. #14
    Membre confirmé
    Avatar de FMaz
    Inscrit en
    Mars 2005
    Messages
    643
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 643
    Points : 640
    Points
    640
    Par défaut
    PHP est un language sensible à la case.

    Selon ce que tu me donne comme information:

    devrait être:

    Voilà !

  15. #15
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Re,
    +1 FMaz

  16. #16
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    381
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Maroc

    Informations forums :
    Inscription : Novembre 2007
    Messages : 381
    Points : 180
    Points
    180
    Par défaut
    Merci FMAZ, c'est résolu c'était problème de la case maintenant me reste une petite réponse sur les liens, quand un lien contient une valeur avec des espaces il prend pas le reste.
    Exemple :
    <a href=cat.php?nomcat=Test 1&numcat=1> donne cat.php?nomcat=Test
    ce qui est après l'espace est ignoré.

  17. #17
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par debutantasp Voir le message
    Merci FMAZ, c'est résolu c'était problème de la case maintenant me reste une petite réponse sur les liens, quand un lien contient une valeur avec des espaces il prend pas le reste.
    Exemple :
    <a href=cat.php?nomcat=Test 1&numcat=1> donne cat.php?nomcat=Test
    ce qui est après l'espace est ignoré.
    Tu dois mettre

  18. #18
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Re,
    Tu peux utiliser str_replace() :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    $chaine = "Test 1";
    $chaine = str_replace(' ', '', $chaine);
    echo $chaine;
    ?>

  19. #19
    Membre confirmé
    Avatar de FMaz
    Inscrit en
    Mars 2005
    Messages
    643
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 643
    Points : 640
    Points
    640
    Par défaut
    Comme je n'aime pas faire les choses à demi, je préfère suggérer d'encoder tout les caractères pouvant potentiellement causer problème plutôt que d'encoder uniquement les espaces:

    http://ca.php.net/rawurlencode

    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
     
    <?php 
    	$cn = mysql_connect("localhost","root","") or die("Connexion Serveur Impossible");
    	$bd = mysql_select_db("boutique",$cn) or die ("Problème de Base de données");
    	$affiche = "SELECT * FROM catalogue";
    	$rs = mysql_query($affiche,$cn) or die("PB requête sql");
    	echo "<table width=30% border=1>";
    	while($ligne = mysql_fetch_assoc($rs)) {
    		echo "<tr><td>";
    		$url = rawurlencode("cat.php?nomcat=" . $ligne['Nom_Fr'] . "&numcat=" .$ligne['num']);
    		echo "<a href=\"{$url}\">"; 
    		echo $ligne['nom_fr'];
    		echo "</a>";
    		echo "</td></tr>";
    	}
    	echo "</table>";

    Je remarque aussi que ton code donne:
    <a href=cat.php?nomcat=Test 1&numcat=1> donne cat.php?nomcat=Test

    Alors qu'il devrait au moins contenir la valeur de l'attribut href entre des guillemet double tel que je l'ai fait dans le code ci-haut.

  20. #20
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    381
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Maroc

    Informations forums :
    Inscription : Novembre 2007
    Messages : 381
    Points : 180
    Points
    180
    Par défaut
    Merci pour vous d'être là pour nous aider, nous les débutants
    j'ai commencé d'apprendre le php et j'essaie de convertir un petit projet de asp vers php. Mais je trouve beaucoup de difficultés et erreurs.
    fonctions.asp
    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
     
    sub affichercd(n)
    set rs=server.CreateObject("adodb.recordset")
    sql="select * from cd where numcatalogue=" & n
    rs.open sql,cn
    response.Write("<table width=""80%"" align=""center"">")
    	do while not rs.eof
    	response.Write("<tr>")
    	response.Write("<td>")
    	response.Write(rs("artiste"))
    	response.Write("</td>")
    	response.Write("<td>")
    	response.Write("<a href =""cat.asp?numcat=" & nc & "&nomcat=" & nomcatalogue & "&refcd=" & rs("ref") & "&artiste=" & rs("artiste") & "&titre=" & rs("titre") & """>")
    	response.Write(rs("titre"))
    	response.Write("</a>")
    	response.Write("</td>")
    	response.Write("<td>")
    	response.Write(rs("prix") & "&nbsp;Dh</td>")
    	response.Write("</tr>")
    	rs.movenext
    	loop
    	rs.close
    	set rs=nothing
    	response.Write("</table>")	
    end sub
    cat.asp
    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
     
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
     
    <!-- #include file="lang_test.asp" -->
    <!-- #include file="connect.asp" -->
    <!--#include file="fonctions.asp" -->
    <%
    nomcatalogue=request.QueryString("nomcat")
    nc=request.QueryString("numcat") 
    if nomcatalogue="" then response.Redirect("default.asp")
    %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>boutique cd</title>
    </head>
     
    <body>
    <p align="center"><b><%=Titre%></p>
    <p align="center"><b><%=cat_titre%>&nbsp;<%=nomcatalogue%>
    </p>
    <hr />
    <%
    affichercd nc
    %>
    <hr />
    fonctions.php
    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
     
    function affichercd($n)
    {
    $affiche=("select artiste,ref,num_cat,titre,prix from cd where num_cat=$n");
    $rs=mysql_query($affiche) or die("PB requête sql");
    echo "<table width=80% align=center>";
    	while($row=mysql_fetch_array($rs,MYSQL_ASSOC)){
    	echo "<tr>";
    	echo  "<td>";
    	echo "$row[artiste]";
    	echo  "</td>";
    	echo  "<td>";
    	$url = rawurlencode("cat.asp?numcat=".$n."&nomcat=".$nomcatalogue."&refcd=".$row['ref']."&artiste=".$row['artiste']."&titre=".$row['titre']);
    	echo "<a href=\"{$url}\">";
    	echo "$row[titre]";
    	echo "</a>";
    	echo "</td>";
    	echo "<td>";
    	echo "$row[prix]" . "&nbsp;Dh</td>";
    	echo "</tr>";
    	}
    	echo "</table>";	
    mysql_close();
    }
    ?>
    cat.php
    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
     
    <?PHP
    include("connect.php");
    include("lang_test.php");
    include("fonctions.php");
    $nomcatalogue=@$_GET["nomcat"];
    $nc=@$_GET["numcat"];
    if($nomcatalogue==""){
    header('location:index.php');
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Boutique CD</title>
    </head>
    <body>
    <p align="center"><b><? echo $titre; ?></p>
    <p align="center"><b><? echo $cat_titre; ?>&nbsp;<? echo $nomcatalogue; ?>
    </p>
    <hr />
    <?PHP
    $retour=affichercd($nc);
    echo $retour;
    ?>
    <hr />
    voila ce qu'affiche cat.php
    Telephone
    Notice: Undefined variable: nomcatalogue in c:\program files\easyphp1-8\www\boutique\fonctions.php on line 65
    Un autre monde 120 Dh
    Duke Elinggton
    Notice: Undefined variable: nomcatalogue in c:\program files\easyphp1-8\www\boutique\fonctions.php on line 65
    Soul Call 140 Dh
    Ella Fizgzrajd
    Notice: Undefined variable: nomcatalogue in c:\program files\easyphp1-8\www\boutique\fonctions.php on line 65
    All That Jazz 150 Dh
    Je ne sais pas comment définir la variable nomcatalogue

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. erreur undefined index
    Par istreen dans le forum Langage
    Réponses: 8
    Dernier message: 06/01/2006, 13h09
  2. [Librairies] PHPMVC : Undefined index
    Par Benat64 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 30/12/2005, 09h27
  3. [Noob] Undefined index: id
    Par Devil666 dans le forum Langage
    Réponses: 4
    Dernier message: 08/12/2005, 13h00
  4. Undefined index
    Par sebduduf dans le forum Langage
    Réponses: 5
    Dernier message: 02/11/2005, 12h13
  5. Erreur de "Undefined index" sur HTTP_REFERER
    Par guy2004 dans le forum Langage
    Réponses: 4
    Dernier message: 12/10/2005, 12h21

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