Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/05/2011, 13h33   #1
Invité de passage
 
xavier stier
Inscription : septembre 2010
Messages : 22
Détails du profil
Informations personnelles :
Nom : xavier stier
Localisation : France

Informations forums :
Inscription : septembre 2010
Messages : 22
Points : 3
Points : 3
Par défaut probleme appel variable dans une variable

Bonjour j'ai un problème avec cette appel de variable
php pas ne semble pas pouvoir traiter cette syntaxe y a t-il un autre moyen d'y parvenir ?


Code :
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
<?php
include("log.php");
?>
<table>
<tr>
<?php	
$table = 'produits';
$nom_champs = "";
$champs = mysql_query("SELECT COLUMN_NAME AS name FROM information_schema.COLUMNS WHERE TABLE_NAME = '$table'
AND TABLE_SCHEMA = 'va'");
while($l = mysql_fetch_object($champs))
	{
	echo"<td>$l->name</td>";
	$nom_champs = $nom_champs.",".$l->name;
	}
	?>
    </tr>
<?php
$nom_champs = substr($nom_champs,1);
$nom_champs = explode(",",$nom_champs);
print_r($nom_champs);
$req = mysql_query("SELECT * FROM $table");
while($li = mysql_fetch_object($req))
	{
	echo"<tr>";
	for ($i=0;$i <= sizeof($nom_champs);$i++)
		{
		$nom = $nom_champs[$i];
		$nom = "$li->$nom";
 
		echo"<td>$nom</td>";
		}
 
	echo"</tr>";	
	}	
?>
 
</table>
xstier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2011, 13h45   #2
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

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

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 449
Points : 3 449
A quoi servent les " ?
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2011, 13h50   #3
Invité de passage
 
xavier stier
Inscription : septembre 2010
Messages : 22
Détails du profil
Informations personnelles :
Nom : xavier stier
Localisation : France

Informations forums :
Inscription : septembre 2010
Messages : 22
Points : 3
Points : 3
en fait j'ai mis des guillemets en me disant que sa passerait en considérant comme du texte (raisonnement de débutant surement)
mais sa ne marche pas mieux sans les guillemets
j'ai les deux messages d'erreurs ci dessous
et un seul enregistrement est affiché au lieu de beaucoup plus

Citation:
Notice: Undefined offset: 12 in C:\wamp\www\adminva\gestion_pdt.php on line 28

Fatal error: Cannot access empty property in C:\wamp\www\adminva\gestion_pdt.php on line 29
Merci de votre aide
xstier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2011, 13h58   #4
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

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

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 449
Points : 3 449
Bon, une chose est sûre : les guillemets ici ne servent à rien, la syntaxe suivante est bonne :

Ensuite :

Citation:
Notice: Undefined offset: 12 in C:\wamp\www\adminva\gestion_pdt.php on line 28
Code :
1
2
 
 $nom = $nom_champs[$i];
L'élément $i du tableau $nom_champs n'existe pas. Et effectivement, plus haut, lignes 14, 19, 20, tu traites $nom_champs comme une chaîne de caractères et pas comme un tableau.
Revois le traitement de tes variables et leurs rôles.
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2011, 14h05   #5
Invité de passage
 
xavier stier
Inscription : septembre 2010
Messages : 22
Détails du profil
Informations personnelles :
Nom : xavier stier
Localisation : France

Informations forums :
Inscription : septembre 2010
Messages : 22
Points : 3
Points : 3
Merci Seb

Code :
$nom_champs = explode(",",$nom_champs);
je pensai que ma variable était devenu un tableau en utilisant la fonction explode

alors je ne sais toujours pas comment faire
xstier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2011, 14h12   #6
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

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

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 449
Points : 3 449
Citation:
Envoyé par xstier Voir le message
Merci Seb

$nom_champs = explode(",",$nom_champs);

je pensai que ma variable était devenu un tableau en utilisant la fonction explode

alors je ne sais toujours pas comment faire
Oui tu as raison !! Désolé, je n'avais pas fais gaffe à explode( )

Bon si je comprends bien la finalité de ton script tu veux boucler sur tous les champs d'une table produits.
Tu peux le faire bcp plus simplement de cette manière :

Code :
1
2
3
4
5
6
7
8
9
$sql = 'SELECT ALL * FROM produits' ;
$rs = mysql_query($sql) ;
while ( $tuple = mysql_fetch_assoc($rs) ) {
    echo '<tr>' ;
    foreach ( $tuple as $field => $value ) {
        echo "<td>$field => $value</td>" ;
    }
    echo '</tr>' ;
}
Pour récupérer uniquement les noms des champs d'une table : mysql_list_fields( )
http://fr.php.net/manual/fr/function...ist-fields.php
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 10h33   #7
En attente de confirmation mail
 
Étudiant
Inscription : avril 2011
Messages : 19
Détails du profil
Informations personnelles :
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 19
Points : 34
Points : 34
retourne un objet
http://fr.php.net/manual/fr/function...tch-object.php

Donc l'appel à une de ses variables :

Il n'y a pas de $ à la deuxième variable


$_$
dev_cisii est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 10h50   #8
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

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

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 449
Points : 3 449
Citation:
Il n'y a pas de $ à la deuxième variable
Sauf si le nom de la 2e variable est une variable, comme ici
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2011, 22h47   #9
Invité de passage
 
xavier stier
Inscription : septembre 2010
Messages : 22
Détails du profil
Informations personnelles :
Nom : xavier stier
Localisation : France

Informations forums :
Inscription : septembre 2010
Messages : 22
Points : 3
Points : 3
Merci tout le monde pour l'aide
en fait mon problème est résolu il fallait juste remplacer <= par < dans ma boucle for
xstier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 00h16   #10
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

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

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 449
Points : 3 449
D'où l'intérêt d'utiliser foreach
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h27.


 
 
 
 
Partenaires

Hébergement Web