Page 1 sur 1

Créer une table en php

Posté : 05 oct. 2006, 13:49
par Kaoteknik
Bonjour à tous,

je dispose d'un hébergement et d'un domaine en .com, malheureusement je n'ai pas accès à la base de données, ce qui me pose un problème conséquent : comment créer une table dans la base ?

J'ai donc imaginé qu'il était peut-être possible de le faire par le biais d'une requête sql dans un fichier php. J'ai donc tapé le code suivant, sans résultat :
<?php
 require ("configbdd.php");
 $connexion=mysql_pconnect($dbhost, $utilisateur, $mdp);
 if (!$connexion)
 	{
 	echo "La connexion a échoué.";
	exit;
	}
if (!mysql_select_db($utilisateur, $connexion))
	{
	echo "La connexion a échoué.";
	exit;
	}

mysql_query("CREATE TABLE creations
	(ceramique VARCHAR(30),
	argile VARCHAR(30),
	fonte VARCHAR(30),
	cuivre VARCHAR(30),
	bronze VARCHAR(30),
	resine VARCHAR(30))", $connexion);
	
$resultat=mysql_query("SELECT * FROM creations", $connexion);

if($resultat)
	{
	while ($tableau=mysql_fetch_object($resultat))
		{
		echo "<table border='1' cellspacing='1' cellpadding='1'>
		<tr>
		<td>$tableau->ceramique</td>
		<td>$tableau->argile</td>
		<td>$tableau->fonte</td>
		<td>$tableau->cuivre</td>
		<td>$tableau->bronze</td>
		<td>$tableau->resine</td>
		</tr>
		</table>";
		}
	}
else
	{
	echo "Erreur dans l'execution de la requête.";
	echo mysql_error($connexion);
	}
	
?>
Le résultat produit est une page blanche, sans message d'erreur. J'avoue ne pas comprendre. Ma question est donc : ce genre de requête est-elle possible, et si oui, comment ?

Je précise que je débute en php, mais est-il besoin de le dire ? :oops:

Voilà, à bientôt.

Posté : 05 oct. 2006, 13:53
par Vikchill
Quand tu fais ton SELECT, la table est vide non? Essaie d'insérer des données peut-être.

Posté : 05 oct. 2006, 13:53
par fred9999
salut

ton code n'as pas l'air d'avoir de soucis

mais tu n'as rien mis dans ta table ...donc il ne peut rien afficher

si tu recommence ton script tu risque d'avoir des erreurs car
il te dira que la table existe

Posté : 05 oct. 2006, 13:57
par Kaoteknik
La table est effectivement vide, mais les titres du tableau ne devraient-ils pas s'afficher tout de même ?

Bon, ceci dit je vais tenter d'insérer des données dans la table ; je vous tiens au courant...

Merci déjà pour cette piste. :)

Posté : 05 oct. 2006, 13:59
par fred9999
non ça ne dois pas te donner les noms des champs

en meme temps

le while demande tant qu'il y a quelque chose j'affiche

or la il y a rien ...donc affichage = rien :lol:

regarde aussi la synthaxe pour l'affichage

Posté : 05 oct. 2006, 14:35
par Kaoteknik
J'ai ajouté la requête INSERT INTO, ainsi que du contenu, et à présent ça fonctionne. Merci à vous pour m'avoir mis sur la bonne voie ! :)

Il ne me reste plus qu'à faire en sorte que les titres des rubriques s'affichent également. Ca ne devrait pas poser trop de problèmes je pense...

Voici le code correct :
<?php 
 require ("configbdd.php"); 
 $connexion=mysql_pconnect($dbhost, $utilisateur, $mdp); 
 if (!$connexion) 
     { 
     echo "La connexion a échoué."; 
    exit; 
    } 
if (!mysql_select_db($utilisateur, $connexion)) 
    { 
    echo "La connexion a échoué."; 
    exit; 
    } 

mysql_query("CREATE TABLE creations 
    (auteur VARCHAR(30),
    ceramique INTEGER,
    argile INTEGER,
    fonte INTEGER,
    cuivre INTEGER, 
    bronze INTEGER, 
    resine INTEGER)", $connexion);

mysql_query("INSERT INTO creations (auteur, ceramique, argile, fonte, cuivre, bronze, resine) VALUES ('Petrus', 0, 15, 0, 0, 43, 0)", $connexion);
     
$resultat=mysql_query("SELECT * FROM creations", $connexion); 

if($resultat) 
    { 
    while ($tableau=mysql_fetch_object($resultat)) 
        { 
        echo "<table border='1' cellspacing='1' cellpadding='1'> 
        <tr> 
        <td>$tableau->ceramique</td> 
        <td>$tableau->argile</td> 
        <td>$tableau->fonte</td> 
        <td>$tableau->cuivre</td> 
        <td>$tableau->bronze</td> 
        <td>$tableau->resine</td> 
        </tr> 
        </table>"; 
        } 
    } 
else 
    { 
    echo "Erreur dans l'execution de la requête."; 
    echo mysql_error($connexion); 
    } 
     
?>