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 :

[Tableaux] définition variable PHP


Sujet :

Langage PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 50
    Par défaut [Tableaux] définition variable PHP
    Bonjours,

    j'ai un message retour php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Notice: Undefined variable: search in d:\weblocal\optiquemovie\index.php on line 98
    je ne comprend pas pourquoi, puisqu'il n'est pas necessaire de definir une variable en php ...

    je vous donne le bout de code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    
    require("conf/cfg-inc.php3");
    
    $res = @mysql_connect($cfgHote,$cfgUser,$cfgPass) or die ("probleme connexion"); 
    @mysql_select_db($cfgBase,$res) or die ("probleme dans selection base");
    
    $x = strlen($search); <---la ligne 98
    
    if ($x != 0)
    {
         if ($res <> 0)
        { 
    ...
    D'apres ce que j'ai lu, une variable est formaté en fonction de ce qu'elle recoit.
    si elle recoit une chaine de caractere, elle le devient ... non?!...

    Si quelqu'un a une idée ... c'est une notice, ca ne devrais pas bloquer l'exectution du script ?!...

    Merci d'avance pour vos réponses
    jeremy

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 50
    Par défaut
    je sais maintenant que c'est $search qui n'est pas definit.
    c'est le resultat resultat d'une recherche precedement effectué, je vous fournit le code (meme page:index.php, juste au dessus du code 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
    <FORM action=index.php method=post>
        <table width="75%" border="0" cellspacing="0" cellpadding="0" align="center">
          <TR> 
     
            <td> 
              <div align="center"> 
                <input name=search> //le nom de ma variable
                <input type=submit value=Chercher name=submit>
              </div>
            </td>
     
          </tr>
        </table>
      </FORM>
    je ne vois rien d'étrange pourtant

    quand je force la variable a une valeur prédefinie, l'erreur disparait et me donne correctement mon tableau en fonction de la valeur forcée ...

    pourquoi la valeur de ma recherche a t'elle disparu ?

    merci pour votre aide, je suis bloqué la ...du coup

    jeremy

  3. #3
    Membre éclairé Avatar de Pahcixam
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 289
    Par défaut
    Salut,

    ta variable provient d'un formulaire.

    Essaye comme ça:

    $_POST['search']

    @+

  4. #4
    Membre Expert

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 50
    Par défaut
    merci pour l'info, je vais tester ca des que possible
    jeremy

  6. #6
    Membre Expert
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Par défaut
    De plus tu pourrais utiliser les doubles quotes pour nommer tes balises html

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input name="search"> //le nom de ma variable
                <input type="submit" value="Chercher" name="submit">
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

  7. #7
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    Citation Envoyé par guitou12
    De plus tu pourrais utiliser les doubles quotes pour nommer tes balises html
    Simple et double quotes sont autorisés.

  8. #8
    Membre Expert
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Par défaut
    Citation Envoyé par Eusebius
    Simple et double quotes sont autorisés.
    Je sais mais dans le cas présent il n'en utilise pas du tout sur certaines champs alors bon..
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

  9. #9
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    Citation Envoyé par guitou12
    Je sais mais dans le cas présent il n'en utilise pas du tout sur certaines champs alors bon..
    OK, réagi trop vite, sorry.

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 50
    Par défaut
    Merci pour vos réponses,
    j'ai ajouté les quotes ... effectivement ca n'etait pas propre.
    j'ai remplacé &search par la superglobale, c'est bon, la valeur issu du formulaire est bien rerouvé, mais ma fonctionnalité est perdu.

    j'ai ce code pour ma recherche sur base en fonction de la valeur re,tré via le formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if ($search != "*")
    		{
    			$sql  = " SELECT nom, tel1, tel2, tel3, email, equipe, image, date_nais from php_trombino";
    			$sql .= " where nom like '%$search%' OR tel1 like '%$search%' OR equipe like '%$search%' OR date_nais like '%\/$search\/%' ";
    			$sql .= " order by 1";
    		}
    		else
    		{
    			$sql  = " SELECT nom, tel1, tel2, tel3, email, equipe, image, date_nais from php_trombino order by 1";
    		}
    j'ai donc remplacé aussi &search par &_POST[search], mais la je me retrouve avec des erreurs. la variable est defini comme chaine de caractere, et nombre et ... ce qui me donne un parse erreur.
    je comprend l'erreur, mais je ne sais pas comment corriger

    merci devotre aide
    jeremy

  11. #11
    Membre Expert
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Par défaut
    C'est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_POST['search'] et non &_POST[search]
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 50
    Par défaut
    oui oui, j'ai fait l'erreur dans l'explication, pas dans mon code ...
    désolé.
    dans mon code je n'utilise que du 'copier coller' pour éviter, les erreurs de syntaxe.
    donc j'ai bien écrit $_POST['search'] dans le code et ca ne marche pas.

    merci de votre aide
    jeremy
    PS: sur certain clavier, le $ se trouve a la place du & ...

  13. #13
    Membre Expert
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Par défaut
    Affiche nous le message d'erreur exacte ça pourra peut etre nous guider !
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 50
    Par défaut
    Bonjour,
    donc pour résumer, je récupere la valeur d'un 'formulaire' de recherche par:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if( !empty($_POST['search']) ) { ...
    par la suite je lance ma requete comme ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sql  = " SELECT nom, tel1, tel2, tel3, email, equipe, image, date_nais from php_trombino";
    			$sql .= " where nom like '$_POST['search']' OR tel1 like '$_POST['search']' OR equipe like '$_POST['search']' OR date_nais like '$_POST['search']' ";
    			$sql .= " order by 1";
    ou comme ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sql  = " SELECT nom, tel1, tel2, tel3, email, equipe, image, date_nais from php_trombino";
    			$sql .= " where nom like '%$_POST['search']%' OR tel1 like '%$_POST['search']%' OR equipe like '%$_POST['search']%' OR date_nais like '%\/$_POST['search']\/%' ";
    			$sql .= " order by 1";
    voila le message d'erreur pour les deux syntaxes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in d:\weblocal\optiquemovie\index.php on line 128
    merci pour l'aide
    jeremy

  15. #15
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    quand tu mets des éléments de tableau dans une chaîne entre guillemets doubles, mets-les entre accolades :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $string = "blabla{$_POST['machin']}blabla";

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 50
    Par défaut
    Bonjour,
    apres avoir fait les modifications proposées, mon message d'erreur a disparu OURA !!
    merci bien.
    en revanche, un autre probleme s'est posé.
    Quand je lance une requete autre que "*" rien ne s'affiche, "j'ai une erreur requete"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo "$sql"; //je place un mouchard ici
    	$id = @mysql_query($sql, $res) or die ("problème dans la requête"); //je veux recupérer $id pour :
    la variable $id est utilisee dans al boucle de fetch...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $row = 0 ;
     
    	while (@mysql_fetch_row($id))
    	{    
    			$nom		= mysql_result ($id, $row, 0);
    			$tel1		= mysql_result ($id, $row, 1);
    			$tel2		= mysql_result ($id, $row, 2);
    			$tel3		= mysql_result ($id, $row, 3);
    			$email	= mysql_result ($id, $row, 4);
    			$equipe	= mysql_result ($id, $row, 5);
    			$image	= mysql_result ($id, $row, 6);
    			$date_nais	= mysql_result ($id, $row, 7);
    je recupere apres execution de mon code:
    SELECT nom, tel1, tel2, tel3, email, equipe, image, date_nais from php_trombino
    where nom like chauvel OR tel1 like chauvel OR equipe like chauvel OR date_nais
    like chauvel order by 1 //mon mouchard echo...

    problème dans la requête//le probleme requete
    $res ne devrais pas etre problematique puisque validé avant ... (d'ailleur peut etre inutile ...)
    j'en conclu que l'erreur provient de $sql, mais le mouchard ne me montre pas de probleme.

    une idée ?... please
    merci d'avance
    jeremy

  17. #17
    Membre Expert
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Par défaut
    Tu fais une recherche sur une chaine de caractéres sans mettre de quotes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT nom, tel1, tel2, tel3, email, equipe, image, date_nais from php_trombino
    where nom like 'chauvel' OR tel1 like 'chauvel' OR equipe like 'chauvel' OR date_nais
    like 'chauvel' order by 1
    De plus like te permet de spécifier la partie de la chaine sur laquelle tu veux rechercher à l'aide du signe %, mais je te laisser chercher son utilité
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

  18. #18
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    Le conseil du jour : dans ton "or die" (qui suit le mysql_query), tu mets un echo de ta requête (ton premier mouchard), et tu rajoutes mysql_error(), qui te donne l'erreur spécifique retournée par MySQL.

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 50
    Par défaut
    Guitou12
    Donc si je comprend bien ma requeste doit etre de cette forme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql .= " where nom like '{$_POST['search']}' OR tel1 like '{$_POST['search']}' OR ...
    Eusebius
    Pour connatre mon erreur precisement je rajoute ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query($requete) or die("$requete - " . mysql_error());
    je test ca au plus vite merci

    jeremy
    PS: je vais utiliser le % partout sauf pour les num de tel ...

  20. #20
    Membre Expert
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Par défaut
    Dis nous ou tu en es
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

Discussions similaires

  1. [Tableaux] Insérer script php dans une variable
    Par Hydrae dans le forum Langage
    Réponses: 4
    Dernier message: 27/09/2007, 21h35
  2. [Tableaux] Variable PHP dans tableau HTML
    Par Mut dans le forum Langage
    Réponses: 5
    Dernier message: 14/08/2007, 17h26
  3. [Tableaux] contenu page php dans variable
    Par Clorish dans le forum Langage
    Réponses: 10
    Dernier message: 06/06/2007, 12h13
  4. [Tableaux] passer une variable php dans une url
    Par griese dans le forum Langage
    Réponses: 27
    Dernier message: 12/06/2006, 09h02
  5. Réponses: 2
    Dernier message: 09/02/2006, 19h06

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