Page 1 sur 1

script install SQL

Posté : 20 oct. 2006, 17:20
par Tachikoma
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 :)

Posté : 20 oct. 2006, 17:48
par artotal
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>

Posté : 20 oct. 2006, 18:10
par Truc

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
}
?>

Posté : 20 oct. 2006, 18:32
par Tachikoma
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']) {

Posté : 20 oct. 2006, 19:11
par Ajoloca
Bonjour,
if(isset($_POST['valider'])
{
Il te manque une ')'
if(isset($_POST['valider']))
{

Posté : 20 oct. 2006, 21:53
par Tachikoma
heum sa a l'air de marcher mais ya rien de créer dans la BDD :o

Posté : 20 oct. 2006, 22:29
par Ajoloca
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)

Posté : 20 oct. 2006, 22:29
par Truc
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_