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 18/11/2010, 18h45   #1
Invité de passage
 
Inscription : août 2008
Messages : 34
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 34
Points : 1
Points : 1
Par défaut tableau en PHP comme en html

bonjour,
j'aimerais generer une page en PHP en prenant exemple sur ma page HTML

http://s346339986.onlinehome.fr/guitare.html

j'ai donc creer en localhost une base ''produit'' avec une table ''lien''

la structure et donnée ici

comment je peux reproduire à l'exactitude ce HTML grace au php ?

Merci beaucoup pour votre aide
sampla est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2010, 19h26   #2
Invité de passage
 
Inscription : août 2008
Messages : 34
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 34
Points : 1
Points : 1
oui j'imagine que c'est la base, mais j'ai rien compris, j'ai des message d'erreur

y'aurais pas un logiciel comme dreamweaver mais pour le php ?
sampla est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2010, 19h28   #3
Modérateur
 
Inscription : septembre 2010
Messages : 6 998
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 6 998
Points : 8 311
Points : 8 311
Citation:
Envoyé par sampla Voir le message
oui j'imagine que c'est la base, mais j'ai rien compris, j'ai des message d'erreur

y'aurais pas un logiciel comme dreamweaver mais pour le php ?
montre ce que t'as fais, sinon dreamweaver gere le PHP aussi
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2010, 19h41   #4
Invité de passage
 
Inscription : août 2008
Messages : 34
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 34
Points : 1
Points : 1
j'arrive meme pas a selectionner ma table

select id from lien

et rien ne se passe

qui peux me faire le tableau ? j'en ai vraiment besoin pour avancer

j'ai vraiment pas le temps d'apprendre le PHP c'est un métier à part entière,
mon métier en est un autre
sampla est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 18/11/2010, 19h59   #5
Membre actif
 
Avatar de bigltnt
 
Inscription : mars 2007
Messages : 221
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mars 2007
Messages : 221
Points : 155
Points : 155
Salut.

Je vais tenter de t'expliquer clairement (vu que tu ne sembles pas familier avec tout cela) :

Pour commencer, il faut créer une base de données, créer ses tables et y injecter ses données. Tu peux faire ca avec phpmyadmin par exemple. Il te demandera de fournir le nom de la base pour la créer, et une fois dedans tu auras un espace pour copier/coller le code SQL qui se trouve dans le fichier que tu as fourni (il contient donc la table et les données).

Ensuite dans PHP, il faut d'abord établir une connexion avec la base (par defaut le nom d'utilisateur est "root" et sans mot de passe). Ensuite tu peux essayer d'executer ta requête, puis lire les réponses et créer ton tableau.

Voici ce a quoi devrait ressembler le code (avec PDO pour se connecter plutôt que les fonctions MYSQL):
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
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
<?php
	$host 		= '127.0.0.1';
	$dbname 	= 'lenomdemabase';
	$username 	= 'root';
	$password	= '';
	$dsn 		= 'mysql:dbname=' . $dbname . ';host=' . $host;
	try {
		$sql 	= 'SELECT * FROM lien ORDER BY cat2 WHERE cat1 = \'Materiel Guitare\'';
		$db 	= new PDO( $dsn, $username, $password );
		if ( false === ( $sth = $db->query( $sql ) ) )
		{
			$error = $db->errorInfo();
			throw new Exception( $error[ 2 ] );
		}
		if ( false === ($results = $sth->fetchAll( PDO::FETCH_ASSOC ) ) )
		{
			$error = $sth->errorInfo();
			throw new Exception( $error[ 2 ] );
		}
 
	}
	catch( Exception $e )
	{
		echo 'Exception : <br/>';
		exit( '<pre>' . print_r( $e, true ) . '</pre>' );
	}
?>
 
<html>
	<head></head>
	<body>
		<?php if ( !empty( $results ) ) : ?>
			<?php $last_category = null ?>
			<table>
				<tr>
					<th colspan="3"><?php echo $result[ 0 ][ 'cat1' ]?></th>
				</tr>
				<?php foreach( $results as $row ) : ?>
					<?php //	Si la catégorie est différente de la dernière rencontrée, on souhaite afficher les entêtes ?>
					<?php if ( $last_category != $row[ 'cat2' ] ) : ?>
						<tr>
							<th colspan="3">
								<?php echo $row[ 'cat2' ] ?>
							</th>
						</tr>
						<?php //	On enregistre la dernière catégorie ?>
						<?php $last_category = $row[ 'cat2' ] ?>
					<?php else : ?>
						<tr>
							<td><?php echo $row[ 'nom_article' ] ?></td>
							<td>Ajouter au panier</td>
							<td>Demande de devis</td>
						</tr>
 
					<?php endif ?>
				<tr>
 
				</tr>
				<?php endforeach ?>
			</table>
		<?php endif ?>	
	</body>
</html>
PS : Ce code n'a pas du tout été testé ... mais il ne doit pas être trop loin de ce qu'il faut
bigltnt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2010, 20h20   #6
Invité de passage
 
Inscription : août 2008
Messages : 34
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 34
Points : 1
Points : 1
ah merci

ça semble bien complet

mais j'ai une erreur

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
Exception :
 
PDOException Object
(
    [message:protected] => could not find driver
    [string:Exception:private] => 
    [code:protected] => 0
    [file:protected] => J:\Program Files\EasyPHP-5.3.1\www\lien-DB\produit.php
    [line:protected] => 9
    [trace:Exception:private] => Array
        (
            [0] => Array
                (
                    [file] => J:\Program Files\EasyPHP-5.3.1\www\lien-DB\produit.php
                    [line] => 9
                    [function] => __construct
                    [class] => PDO
                    [type] => ->
                    [args] => Array
                        (
                            [0] => mysql:dbname=produit;host=localhost
                            [1] => root
                            [2] => 
                        )
 
                )
 
        )
 
    [previous:Exception:private] => 
    [errorInfo] => 
)
sampla est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 18/11/2010, 20h49   #7
Modérateur
 
Inscription : septembre 2010
Messages : 6 998
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 6 998
Points : 8 311
Points : 8 311
Citation:
Envoyé par sampla Voir le message
ah merci

ça semble bien complet

mais j'ai une erreur

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
Exception :
 
PDOException Object
(
    [message:protected] => could not find driver
    [string:Exception:private] => 
    [code:protected] => 0
    [file:protected] => J:\Program Files\EasyPHP-5.3.1\www\lien-DB\produit.php
    [line:protected] => 9
    [trace:Exception:private] => Array
        (
            [0] => Array
                (
                    [file] => J:\Program Files\EasyPHP-5.3.1\www\lien-DB\produit.php
                    [line] => 9
                    [function] => __construct
                    [class] => PDO
                    [type] => ->
                    [args] => Array
                        (
                            [0] => mysql:dbname=produit;host=localhost
                            [1] => root
                            [2] => 
                        )
 
                )
 
        )
 
    [previous:Exception:private] => 
    [errorInfo] => 
)
c'est parce que tu n'as pas PDO mysql sur ton serveur (free ?)
Citation:
Envoyé par bigltnt Voir le message
Salut.

Je vais tenter de t'expliquer clairement (vu que tu ne sembles pas familier avec tout cela) :

Pour commencer, il faut créer une base de données, créer ses tables et y injecter ses données. Tu peux faire ca avec phpmyadmin par exemple. Il te demandera de fournir le nom de la base pour la créer, et une fois dedans tu auras un espace pour copier/coller le code SQL qui se trouve dans le fichier que tu as fourni (il contient donc la table et les données).

Ensuite dans PHP, il faut d'abord établir une connexion avec la base (par defaut le nom d'utilisateur est "root" et sans mot de passe). Ensuite tu peux essayer d'executer ta requête, puis lire les réponses et créer ton tableau.

Voici ce a quoi devrait ressembler le code (avec PDO pour se connecter plutôt que les fonctions MYSQL):
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
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
<?php
	$host 		= '127.0.0.1';
	$dbname 	= 'lenomdemabase';
	$username 	= 'root';
	$password	= '';
	$dsn 		= 'mysql:dbname=' . $dbname . ';host=' . $host;
	try {
		$sql 	= 'SELECT * FROM lien ORDER BY cat2 WHERE cat1 = \'Materiel Guitare\'';
		$db 	= new PDO( $dsn, $username, $password );
		if ( false === ( $sth = $db->query( $sql ) ) )
		{
			$error = $db->errorInfo();
			throw new Exception( $error[ 2 ] );
		}
		if ( false === ($results = $sth->fetchAll( PDO::FETCH_ASSOC ) ) )
		{
			$error = $sth->errorInfo();
			throw new Exception( $error[ 2 ] );
		}
 
	}
	catch( Exception $e )
	{
		echo 'Exception : <br/>';
		exit( '<pre>' . print_r( $e, true ) . '</pre>' );
	}
?>
 
<html>
	<head></head>
	<body>
		<?php if ( !empty( $results ) ) : ?>
			<?php $last_category = null ?>
			<table>
				<tr>
					<th colspan="3"><?php echo $result[ 0 ][ 'cat1' ]?></th>
				</tr>
				<?php foreach( $results as $row ) : ?>
					<?php //	Si la catégorie est différente de la dernière rencontrée, on souhaite afficher les entêtes ?>
					<?php if ( $last_category != $row[ 'cat2' ] ) : ?>
						<tr>
							<th colspan="3">
								<?php echo $row[ 'cat2' ] ?>
							</th>
						</tr>
						<?php //	On enregistre la dernière catégorie ?>
						<?php $last_category = $row[ 'cat2' ] ?>
					<?php else : ?>
						<tr>
							<td><?php echo $row[ 'nom_article' ] ?></td>
							<td>Ajouter au panier</td>
							<td>Demande de devis</td>
						</tr>
 
					<?php endif ?>
				<tr>
 
				</tr>
				<?php endforeach ?>
			</table>
		<?php endif ?>	
	</body>
</html>
PS : Ce code n'a pas du tout été testé ... mais il ne doit pas être trop loin de ce qu'il faut
pourquoi recréer des exceptions ? ca existe deja sous PDO
http://php.net/manual/fr/pdo.error-handling.php
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2010, 21h56   #8
Invité de passage
 
Inscription : août 2008
Messages : 34
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 34
Points : 1
Points : 1
j'ai pensé que ça venais de mon localhost alors j'ai essayé mon serveur 1&1

et pareil ca ne marche pas

comment je peux faire ?
sampla est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2010, 22h07   #9
Modérateur
 
Inscription : septembre 2010
Messages : 6 998
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 6 998
Points : 8 311
Points : 8 311
Citation:
Envoyé par sampla Voir le message
j'ai pensé que ça venais de mon localhost alors j'ai essayé mon serveur 1&1

et pareil ca ne marche pas

comment je peux faire ?
chez 1&1 y'a pas PDO ? t'as quelle version de php ?
sinon t'es pas obligé de l'utiliser, mais si moi aussi je te le conseil vivement
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2010, 23h27   #10
Invité de passage
 
Inscription : août 2008
Messages : 34
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 34
Points : 1
Points : 1
Citation:
chez 1&1 y'a pas PDO ?
je sais pas ce qu'est le PDO

moi je cherche juste à faire un tableau simple comme sur dreamweaver identique à celui ci

y'a 3 colonnes

comment je fais ?
sampla est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2010, 00h04   #11
Modérateur
 
Inscription : septembre 2010
Messages : 6 998
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 6 998
Points : 8 311
Points : 8 311
Citation:
Envoyé par sampla Voir le message
je sais pas ce qu'est le PDO

moi je cherche juste à faire un tableau simple comme sur dreamweaver identique à celui ci

y'a 3 colonnes

comment je fais ?
retour au commentaire 1
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2010, 09h24   #12
Membre actif
 
Avatar de bigltnt
 
Inscription : mars 2007
Messages : 221
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mars 2007
Messages : 221
Points : 155
Points : 155
L'erreur vient du fait qu'il faut activer une DLL pour que tout cela marche. Il faut aller dans le fichier "php.ini" et décommenter la ligne "extension=php_pdo.dll" (en enlevant le ";" devant).

PDO pour explication, c'est ce qui permet de te connecter de la même manière à n'importe quelle base de données. Ca sera dans les prochaines versions de PHP la manière par défaut de se connecter à une base de données.

Bon ca fait longtemps que je n'ai pas fait avec les fonctions mysql. Essaye ca pour voir :
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
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
<?php
    $host         = '127.0.0.1';
    $dbname     = 'lenomdemabase';
    $username     = 'root';
    $password    = '';
    $dsn         = 'mysql:dbname=' . $dbname . ';host=' . $host;
    try {
 
        $sql     = 'SELECT * FROM lien ORDER BY cat2 WHERE cat1 = \'Materiel Guitare\'';
 
        if ( false === ( $db     = mysql_connect ( $host, $username, $password ) ) )
        {
            throw new Exception( 'Erreur de connexion à la base' );
        }
        elseif ( false === ( $sth = mysql_query( $sql, $db ) ) )
        {
            throw new Exception( 'Erreur lors de l\'execution de la requête : ' . mysql_error( $db ) );
        }
        $results = mysql_fetch_assoc( $sth );
 
    }
    catch( Exception $e )
    {
        echo 'Exception : <br/>';
        exit( '<pre>' . print_r( $e, true ) . '</pre>' );
    }
?>
 
<html>
    <head></head>
    <body>
        <?php if ( !empty( $results ) ) : ?>
            <?php $last_category = null ?>
            <table>
                <tr>
                    <th colspan="3"><?php echo $result[ 0 ][ 'cat1' ]?></th>
                </tr>
                <?php foreach( $results as $row ) : ?>
                    <?php //    Si la catégorie est différente de la dernière rencontrée, on souhaite afficher les entêtes ?>
                    <?php if ( $last_category != $row[ 'cat2' ] ) : ?>
                        <tr>
                            <th colspan="3">
                                <?php echo $row[ 'cat2' ] ?>
                            </th>
                        </tr>
                        <?php //    On enregistre la dernière catégorie ?>
                        <?php $last_category = $row[ 'cat2' ] ?>
                    <?php else : ?>
                        <tr>
                            <td><?php echo $row[ 'nom_article' ] ?></td>
                            <td>Ajouter au panier</td>
                            <td>Demande de devis</td>
                        </tr>
 
                    <?php endif ?>
                <tr>
 
                </tr>
                <?php endforeach ?>
            </table>
        <?php endif ?>    
    </body>
</html>
bigltnt est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 19/11/2010, 10h33   #13
Modérateur
 
Inscription : septembre 2010
Messages : 6 998
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 6 998
Points : 8 311
Points : 8 311
Citation:
Envoyé par bigltnt Voir le message
L'erreur vient du fait qu'il faut activer une DLL pour que tout cela marche. Il faut aller dans le fichier "php.ini" et décommenter la ligne "extension=php_pdo.dll" (en enlevant le ";" devant).
y'a PDO c'est pdo mysql qui y est pas
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2010, 13h31   #14
Invité de passage
 
Inscription : août 2008
Messages : 34
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 34
Points : 1
Points : 1
merci j'ai essayé le nouveau code

mais il affiche une erreur de connexion à la base

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
Exception Object
(
    [message:protected] => Erreur lors de l'execution de la requête : Aucune base n'a été sélectionnée
    [string:Exception:private] => 
    [code:protected] => 0
    [file:protected] => J:\Program Files\EasyPHP-5.3.1\www\lien\produit.php
    [line:protected] => 17
    [trace:Exception:private] => Array
        (
        )
 
    [previous:Exception:private] => 
)
voici ma base :

Code :
1
2
3
4
$host         = 'localhost';
    $dbname     = 'produit';
    $username     = 'root';
    $password    = '';
sampla est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2010, 13h44   #15
Modérateur
 
Inscription : septembre 2010
Messages : 6 998
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 6 998
Points : 8 311
Points : 8 311
il faut utiliser mysql_select_db apres ton mysql_connect
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2010, 20h15   #16
Invité de passage
 
Inscription : août 2008
Messages : 34
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 34
Points : 1
Points : 1
ça marche pas
sampla est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2010, 20h39   #17
Membre actif
 
Avatar de bigltnt
 
Inscription : mars 2007
Messages : 221
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mars 2007
Messages : 221
Points : 155
Points : 155
Effectivement, j'avais oublié une ligne

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
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
<?php
    $host         = '127.0.0.1';
    $dbname     = 'lenomdemabase';
    $username     = 'root';
    $password    = '';
 
    try {
 
        $sql     = 'SELECT * FROM lien ORDER BY cat2 WHERE cat1 = \'Materiel Guitare\'';
 
        if ( false === ( $db     = mysql_connect ( $host, $username, $password ) ) )
        {
            throw new Exception( 'Erreur de connexion à la base' );
        }
		elseif( false ===( mysql_select_db ( $dbname, $db ) ) )
		{
			throw new Exception( 'Erreur lors de la connexion à la base "' . $dbname . '"' );
		}
        elseif ( false === ( $sth = mysql_query( $sql, $db ) ) )
        {
            throw new Exception( 'Erreur lors de l\'execution de la requête : ' . mysql_error( $db ) );
        }
        $results = mysql_fetch_assoc( $sth );
 
    }
    catch( Exception $e )
    {
        echo 'Exception : <br/>';
        exit( '<pre>' . print_r( $e, true ) . '</pre>' );
    }
?>
 
<html>
    <head></head>
    <body>
        <?php if ( !empty( $results ) ) : ?>
            <?php $last_category = null ?>
            <table>
                <tr>
                    <th colspan="3"><?php echo $result[ 0 ][ 'cat1' ]?></th>
                </tr>
                <?php foreach( $results as $row ) : ?>
                    <?php //    Si la catégorie est différente de la dernière rencontrée, on souhaite afficher les entêtes ?>
                    <?php if ( $last_category != $row[ 'cat2' ] ) : ?>
                        <tr>
                            <th colspan="3">
                                <?php echo $row[ 'cat2' ] ?>
                            </th>
                        </tr>
                        <?php //    On enregistre la dernière catégorie ?>
                        <?php $last_category = $row[ 'cat2' ] ?>
                    <?php else : ?>
                        <tr>
                            <td><?php echo $row[ 'nom_article' ] ?></td>
                            <td>Ajouter au panier</td>
                            <td>Demande de devis</td>
                        </tr>
 
                    <?php endif ?>
                <tr>
 
                </tr>
                <?php endforeach ?>
            </table>
        <?php endif ?>    
    </body>
</html>
bigltnt est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h21.


 
 
 
 
Partenaires

Hébergement Web