script install SQL

Eléphanteau du PHP | 42 Messages

20 oct. 2006, 17:20

Bonjour,
J'essais de créer un script qui quand on clik sur un bouton cela créé une table SQL.

Mais je ne sais pas comment faire pour que quand on click sur le bouton cela install la table sql, voila ce que j'ai fait pour le moment.
<?
$serveur="$host";
$utilisateur="$user";
$motdepasse="$mdp";
$database="$user";

// ------ NE PAS TOUCHER ---------------- //

@mysql_connect($serveur,$utilisateur,$motdepasse) or die("<CENTER><A style='color:white;background-color:red'> Désolé, problème de serveur !");
@mysql_select_db($database);

        mysql_connect("$host", "$user", "$mdp");
        mysql_select_db("$user");          
        mysql_query("CREATE TABLE `br_link` (
                    `id` int(11) NOT NULL auto_increment,
                    `tlien` varchar(255) NOT NULL default '',
                    `lien` varchar(255) NOT NULL default '',  
                    `des` varchar(255) NOT NULL default '',
                    PRIMARY KEY  (`id`)
                    ) TYPE=MyISAM AUTO_INCREMENT=1 ;)");
        mysql_close();

?>
Merci d'avance :)

Mammouth du PHP | 601 Messages

20 oct. 2006, 17:48

tu mes tout dans une fonction
puis tu appel la fonction js à partir d'un bouton.

Code : Tout sélectionner

<a href="javascript:void(0);"><input type="button" value="I----I" onclick='javascript:requete()' style='text-decoration:none' alt="Cliquez" /></a>
http://xavier-artot.com
¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·°'´¨
système d'exploitation "Ubuntu 7.10"

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

20 oct. 2006, 18:10

Code : Tout sélectionner

<a href="javascript:void(0);"><input type="button" value="I----I" onclick='javascript:requete()' style='text-decoration:none' alt="Cliquez" /></a>
Il y a un peu de mélange dans tout ça... <a> pas vraiment utile (ou le bouton) et le style ne s'applique pas à un bouton.
Faudrait passer par un script ajax pour pouvoir intervenir sur le serveur à l'aide d'un fonction JS.

Donc plusieurs solutions :
1. ajax
2. un formulaire contenant juste un bouton submit avec un traitement (attribut "action") sur la page contenant le script de la requete.

Pour la 2ème solution (sommairement) :
<?php
if(isset($_POST['valider'])
{
   // ICI script de la requete
}
else
{
   // affichage formulaire avec bouton
   ?>
   <form action="" method="post" name ="form">
   <input type="submit" name="valider" value="valider" > 
   </form>
<?php
}
?>

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphanteau du PHP | 42 Messages

20 oct. 2006, 18:32

Apres un test il me fais une erreur de "{"

Code : Tout sélectionner

<?php require("ad_conf.inc.php"); $serveur="$host"; $utilisateur="$user"; $motdepasse="$mdp"; $database="$user"; // ------ NE PAS TOUCHER ---------------- // @mysql_connect($serveur,$utilisateur,$motdepasse) or die("<CENTER><A style='color:white;background-color:red'> Désolé, problème de serveur !"); @mysql_select_db($database); if(isset($_POST['valider']) { mysql_connect("$host", "$user", "$mdp"); mysql_select_db("$user"); mysql_query("CREATE TABLE `test` ( `id` int(11) NOT NULL auto_increment, `tlien` varchar(255) NOT NULL default '', `lien` varchar(255) NOT NULL default '', `des` varchar(255) NOT NULL default '', PRIMARY KEY (`id`) ) TYPE=MyISAM AUTO_INCREMENT=1 ;)"); mysql_close(); } else { ?> <form action="" method="post" name ="form"> <input type="submit" name="valider" value="valider" > </form> <?php } ?>

Erreur :
Parse error: syntax error, unexpected '{' in /mnt/117/sdc/5/c/br.team/test/install.php on line 18

les lignes comprises dans ce bug sont :

Code : Tout sélectionner

if(isset($_POST['valider']) {

ViPHP
ViPHP | 1961 Messages

20 oct. 2006, 19:11

Bonjour,
if(isset($_POST['valider'])
{
Il te manque une ')'
if(isset($_POST['valider']))
{
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphanteau du PHP | 42 Messages

20 oct. 2006, 21:53

heum sa a l'air de marcher mais ya rien de créer dans la BDD :o

ViPHP
ViPHP | 1961 Messages

20 oct. 2006, 22:29

Re,

Si tu fais un 'echo' de ce que tu demandes d'exécuter à MySQL, tu obtiens

Code : Tout sélectionner

CREATE TABLE `test` ( `id` int(11) NOT NULL auto_increment, `tlien` varchar(255) NOT NULL default '', `lien` varchar(255) NOT NULL default '', `des` varchar(255) NOT NULL default '', PRIMARY KEY (`id`) ) TYPE=MyISAM AUTO_INCREMENT=1 ;)
Je suis pas sur que MySQL compènne.

Trois remarques:
1 - Ne jamais mettre de 'delimiter' (;) tu ne sais pas d'avance si c'est le bon
2 - Toujours tester sa requète avant de mettre dans le code php
3 - Toujours tester la valeur de retour de l'exécution d'une requète (et mieux encore, toujours tester des que c'est possible 99,99% des fois)
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

20 oct. 2006, 22:29

Ajoute l'affichage des message d'erreurs éventuels :
mysql_connect("$host", "$user", "$mdp") or die("<p>Erreur: ".mysql_error()."</p>");
fait en de même pour toutes les focntions mysql_

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute