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 :

conseil pour l'intégration d'une fonction


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2012
    Messages : 170
    Par défaut conseil pour l'intégration d'une fonction
    Bonjour,

    Sur un site de vente de produits, j'essaye d'insérer sur la page du produit le nom de la personne qui a posté l'offre, genre "Ce produit est proposé par monsieur.." (visible ci dessous par le code "php echo BY"). Sur la page d'accueil du site, cela s'affiche sur le visuel du produit avec le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?php  $user = $this->home_model->get_user_detail($rs->user_id); ?>
           <p><?php echo BY; ?> <?php echo anchor('member/'.$rs->user_id,$user['user_name']); ?></p>
    avec le code qu'on peut trouver sur le model de la page d'accueil:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function get_user_detail($id)
    {
        $query=$this->db->getwhere("user",array("user_id"=>$id));
        return $query->row_array();
    }
    Cependant si je place par exemple le même code dans le model de la page du produit, ça ne fonctionne pas, il affiche que qu'il ne trouve pas les variables user, rs, user name.

    Donc faut il dans la page du produit directement intégrer un code du genre pour lui dire de chercher l'info dans la base de données ? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $link = mysql_connect("localhost") or die('Connexion impossible : ' . mysql_error());
                              $db = mysql_select_db("admin", $link) or die('Sélection database impossible : ' . mysql_error());
                              $query = mysql_query("select * from user") or die('Query impossible : ' . mysql_error());
    et comment alors rédiger ce code car je ne l ai jamais fait ?

    Je précise que je veux publier le nom complet de la personne qui a publié l'offre du produit se trouve dans la table "user>user_name". La personne est aussi identifiée avec un "user_id" sous forme de chiffre dans la même table "user>user-id" ainsi que dans la table correspondant à la fiche du produit "produit>user-id"

    Merci d'avance pour votre aide

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Il faudrait que tu regardes d'ou vient $rs.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2012
    Messages : 170
    Par défaut
    justement je ne trouve nul part $rs

  4. #4
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 334
    Par défaut
    bonjour,
    il faut comprendre la portée des variables
    http://www.php.net/manual/fr/languag...bles.scope.php

    si je place par exemple le même code dans le model de la page du produit
    les variables dans la page produits n'existent pas dans la méthode du modèle !!

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2012
    Messages : 170
    Par défaut
    j ai compris pourquoi je le trouvais pas. Sur la page d'accueil le bloc qui contient la liste des produits a son propre code séparé du reste de la page entière.

    Voici la partie du code de la page où est intégré le bloc fiche_produit. On y voit le $rs
    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
    				<link rel="stylesheet" type="text/css" href="<?php echo base_url(); ?>js2/skin.css" />
    				<div id="SlideItMoo_items">
    				<?php  	if($result)
                                {
                                    foreach($result as $rs)
                                    {
                                            $data['site_setting'] = $site_setting; 
                                            $data['rs'] = $rs;
                                            $this->load->view('fiche_produit',$data);
    								  ?>
                              <?php } ?>
    					  <?php } else{  ?>
                             <p>
                              <h3><?php echo NO_RESULT_FOUND; ?></h3>
                            </p>
    				  <?php
                        }
                      ?>
                      <div id="last_msg_loader"></div>
                    <div class="clear"></div>					
                </div>
    et voilà le code complet de fiche_produit qui est sur une autre page php. La ligne qui nous intéresse est ligne 121 et 122:
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
     
    <?php
    //var_dump($rs->image);
    $off = $offset + $limit;
    $rs->amount = str_replace($site_setting['currency_symbol'], "", $rs->amount);
    						if($rs->amount == '0' or $rs->amount == '')
    						{
    						$w = 0;
    						}else{
    							if($rs->amount_get>=$rs->amount)
    							{
    								$w=100;
    							}
    							else
    							{
    								$w = ($rs->amount_get/$rs->amount)*100;
     
    								if($w>0 && $w<1)
    								{
    									$w=1;
    								}
     
     
    			}
    	}
     
    ?>
    <script type="text/javascript">
    	$(document).ready(function() {
     
    		$('#<?php echo $rs->project_id.'_'.$off; ?>').mouseover(function() {
    			$('#card_desc_<?php echo $rs->project_id;?>').show();
    		});
    		$('#<?php echo $rs->project_id.'_'.$off; ?>').mouseout(function() {
    			$('#card_desc_<?php echo $rs->project_id;?>').hide();
    		});
     
    	});
    </script>
     
    <div class="slider_div" id="<?php echo $rs->project_id.'_'.$off; ?>">
        <?php if(1 == $rs->is_back) {?>
        <div style="position:absolute;z-index:1000;top:135px;right:8px;background:url(/images/rubon_financial_miniature.png) top left no-repeat;width:110px;height:20px;"><p style="font:normal 14px US101;color:white;margin-top:2px;"><?php echo FINANCIAL_REWARDS;?><p></div>
        <?php } ?>
        <div>
    			<?php if(is_file("upload/thumb/".$rs->image)){ 
     
    	   echo anchor('projects/'.$rs->project_url,'<img class="project_img" src="'.base_url().'upload/thumb/'.$rs->image.'" alt="" title="'.ucfirst($rs->project_title).'" />'); 		  
     
    	  } else{ 
     
    	 $get_gallery=$this->project_model->get_all_project_gallery($rs->project_id);
     
    							$grcnt=1;
     
    							if($get_gallery)
    							{
    								foreach($get_gallery as $glr)
    								{
     
    									if($glr->project_image!='' && is_file('upload/thumb/'.$glr->project_image) && $grcnt==1 )
    									{
     
    									echo anchor('projects/'.$rs->project_url,'<img class="project_img" src="'.base_url().'upload/thumb/'.$glr->project_image.'" alt="" title="'.ucfirst($rs->project_title).'" />');
     
     
    										$grcnt=2;
    									}
     
    								}
    							}
    							elseif($grcnt==1)
    							{							
    								 echo anchor('projects/'.$rs->project_url,'<img class="project_img" src="'.base_url().'images/no_img.jpg" alt="" title="'.ucfirst($rs->project_title).'" />');
    							}
    							else
    							{
    							 echo anchor('projects/'.$rs->project_url,'<img class="project_img" src="'.base_url().'images/no_img.jpg" alt="" title="'.ucfirst($rs->project_title).'" />');
    							}
     
     
     
     
     
    	  }
    	  ?>
     
          <?php 
    	  //echo $rs->amount; echo '123';echo $rs->amount_get; die;
    	  if($rs->amount > 0)
    	  {
    		  if($rs->amount <= $rs->amount_get)
    			{
    	?>
        <div class="funded_img"></div>
     
        <?php
     
    		}	  
    	} 
    	  ?>
     
    	 </div>
         <?php $category=mysql_fetch_array(mysql_query("select * from project_category where project_category_id='".$rs->category_id."'"));?>
         <div class="project_cat"><img src="<?php echo base_url();?>images/red-bg.jpg" alt="" style="margin-right:5px;" /><?php if($_SESSION['lang_code'] == 'en') { echo anchor('project/category/'.$rs->category_id,substr(ucfirst($category['project_category_name']),0,25)); } else  { echo anchor('project/category/'.$rs->category_id,substr(ucfirst($category['project_category_name_fr']),0,25)); }?></div>
    	<h3><?php 
    					/*$str_name=$rs->project_title;
    					if(strlen($str_name)<25)$lenght=strlen($str_name);
    					else $lenght=25;
    					//echo "<br>".$lenght;
    					
    					$pos = strpos($str_name, ' ', $lenght);
    					if ($pos !== false) {
    						$str_name= substr($str_name, 0, $pos);
    					}*/
    	$str_name = substr(ucfirst($rs->project_title),0,35);
    	//$str_name = wordwrap(substr(strip_tags($rs->project_title),0,20),20, "\n",true); 
    	echo anchor('projects/'.$rs->project_url,$str_name,'style="text-decoration:none;"'); ?></h3>
     
     
    	 <?php  $user = $this->home_model->get_user_detail($rs->user_id); ?>
    	 	<p><?php echo BY; ?> <?php echo anchor('member/'.$rs->user_id,$user['user_name']); ?></p>		
     
     
     
    		<!--<div id="flag_div">
     
    						<div id="flagsr" style="float:left;"><img src="<?php //echo base_url(); ?>images2/flag.png" border="0" /></div>
    						<div id="flag_detailsr"><small style="text-align:left; font-style:italic; color:#999999; font-weight:normal;"><span style="text-transform:capitalize;"><?php	//if($rs->project_city=='' and $rs->project_country==''){  echo 'N/A';  } else { if($rs->project_city==''){ echo 'N/A'; } else{ echo $rs->project_city; } ?></span>,<span style="text-transform:capitalize;"><?php //if($rs->project_country==''){ echo 'N/A'; } else{ echo $rs->project_country;  } } ?></span></small>&nbsp;</div>
     
    						</div>-->
    		<?php	$backers=$this->project_model->get_all_backers($rs->project_id);?>
     
    			<div class="funded_div">
            <div class="funded" style="width:68px;"><img src="<?php echo base_url();?>images/man_img.png" alt="" />
              <span>
                <strong><?php if($backers){ echo count($backers); } else{  echo '0';  }?></strong>
              </span>
            </div>       
    				<?php
    					/*$date1 = $rs->end_date;
    					$date2 = date("Y-m-d");
    					$diff = abs(strtotime($date2) - strtotime($date1));
    					$test = floor($diff / (60*60*24));
    					echo ($rs->end_date!="0000-00-00")?$test." ".DAYS_LEFT:"0 ".DAYS_LEFT;*/
    					if($rs->unlimited_days != 1)
    					{
    					?>
              <div class="funded">
                <img src="<?php echo base_url();?>images/clock.png" alt="" />
                <span>
                  <strong>
    					<?php	echo $this->project_model->get_days_left($rs->end_date);	?>
                  </strong>
                </span>
              </div>
              <?php 
              }
              ?>
              <div class="funded" style="float:right;"><strong><?php echo round($w); ?>%</strong></div>
                </div>
                <div class="gray_bar">
                	<div class="fund_txt">
    					<?php if($w=='0') 
    						{ 
    							echo "0".$site_setting['currency_symbol'];
                       		} 
                            else 
                            { 
                             	 if($rs->amount_get=='')	
                                 {
                             		echo "0".$site_setting['currency_symbol'];
    							  }
    							  else
    							  {
    							  	echo number_format(round($rs->amount_get),0,'',' ').$site_setting['currency_symbol'];
    							  }
    						}
    						?>
                             <span style="font-size:14px;font-weight:normal;">/<?php if($rs->amount == '0' or $rs->amount == '') { echo '0'.$site_setting['currency_symbol']; } else { echo number_format($rs->amount,0,'',' ').$site_setting['currency_symbol'];}?></span></div>
                    <div class="red_bar" style="width:<?php echo $w + 2; ?>%;max-width:100%;"></div>
                </div>
     
              <a href="<?php echo site_url('projects/'.$rs->project_url);?>"><div class="card_desc" id="card_desc_<?php echo $rs->project_id;?>"><?php if($rs->project_summary!='') { 
    					//echo wordwrap(substr(strip_tags($rs->project_summary),0,95),26, "\n",true); 
     
     
    					$str_name=$rs->project_summary;
    					if(strlen($str_name)<120)$lenght=strlen($str_name);
    					else $lenght=120;
    					//echo "<br>".$lenght;
     
    					$pos = strpos($str_name, ' ', $lenght);
    					if ($pos !== false) {
    						$str_name= substr($str_name, 0, $pos);
    					}
    					echo $str_name;
     
     
    					 } ?>
                     </div></a>
     
     
                    </div>
    Du coup je sais pas comment adapter cela pour intégrer juste le nom du vendeur à la page du produit, différente bien sûr de la page d'accueil.

  6. #6
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 334
    Par défaut
    il ne nous manque pas le model de la page du produit avec cette nouvelle méthode et l'appel a cette méthode (et d'ou ce fait l'appel) ?

  7. #7
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2012
    Messages : 170
    Par défaut
    Il y a bien un model pour gérer la page produit. Il faudrait alors intégrer les mêmes codes dans le model de la page du produit ?

  8. #8
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 334
    Par défaut
    si je place par exemple le même code dans le model de la page du produit, ça ne fonctionne pas
    Il faudrait alors intégrer les mêmes codes dans le model de la page du produit ?
    Comprends + rien, je pensais que c'était dèjà fait ? que c'était le but de ce post ?

  9. #9
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2012
    Messages : 170
    Par défaut
    J'avais déjà essayé d'intégrer le code pour la fonction dans la page model de la fiche produit mais ça affichait toujours que les variables étaient introuvables.
    Je vois bien que j'ai du oublier quelque chose mais je manque d'expérience.

  10. #10
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 334
    Par défaut
    Il fallait juste essayer de passer ces paramètres a la méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function xxxx( $user, $rs ) { ... }

  11. #11
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2012
    Messages : 170
    Par défaut
    papajoker, peux tu être plus précis car je sais pas du tout comment rédiger cette fonction. Merci à tous pour votre aide

  12. #12
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 334
    Par défaut
    Désolé, mais tout dépend du framework php que tu utilises.

    Et celui-ci, inconnu pour moi (je pense que tu l'as jamais dit...)

  13. #13
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2012
    Messages : 170
    Par défaut
    Il s'agit d'un CMS avec Codeigniter. J'ai fini par trouver le bon code, c'était plus simple que je le pensais.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <p><?php echo BY; ?><?php echo $user_name; ?></p>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Conseil pour la modification d'une fonction
    Par cedrus dans le forum Langage
    Réponses: 7
    Dernier message: 30/10/2013, 10h27
  2. demande de conseille pour un probleme sur une fonction
    Par pierre-y dans le forum Général Python
    Réponses: 4
    Dernier message: 19/12/2012, 11h34
  3. Conseils pour l'écriture d'une Classe
    Par delphi5user dans le forum Delphi
    Réponses: 10
    Dernier message: 12/07/2006, 22h51
  4. Réponses: 3
    Dernier message: 14/04/2006, 19h36
  5. Réponses: 4
    Dernier message: 22/09/2004, 09h17

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