Crééer une table mysql sous Linux

vez_from_hell Messages postés 14 Date d'inscription jeudi 10 février 2005 Statut Membre Dernière intervention 15 mars 2006 - 15 mars 2006 à 05:15
pablor44 Messages postés 60 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 3 octobre 2006 - 17 mars 2006 à 18:01
Bonjour,



depuis quelques semaines je suis sur Linux. J'étais auparavant sous
Windows XP. J'avait un script pour ajouter des posts sur mon blog et
depuis que je suis sur Linuux, PHP refuse de créer une table en dehors
de phpMyAdmin. Mon script est



//la page du formulaire//






<meta http-equiv= "Content-Type" content="text/html; charset=UTF-8">
<meta name="Generator" content="Kate, the KDE Advanced Text Editor">

<html>
<head>

<title>Blog Editor</title>
<style fprolloverstyle>A:hover {color: red; letter-spacing: 0pt; font-weight: <!--bold-->}
</style>
<style page> html, body{
margin:0;
padding:0;
height:100%;
border:none
}
</style>
<!--[if !mso]>
<style>
v/:* { behavior: url(#default#VML) }
o/:* { behavior: url(#default#VML) }
.shape { behavior: url(#default#VML) }
</style>
<![endif]--><!--[if gte mso 9]>
<xml><o:shapedefaults v:ext ="edit" spidmax= "1027"/>
</xml><![endif]-->


</head>

bgcolor ="#BBBBBB" link= "black" alink="black" vlink="black" >

<gras><center>




size =5<gras>>

Blog Editor







<form Method= "POST" Action="confirm.php" >
color ="#000000"<gras>>

border= 0 width=\"100%\" >
<gras>----


align ="center" width= "50%">

Titre:

type=text size=40 name=titre>

,


align="center" width="50%">

Section:

<select name="section">
<option selected>Blog
<option>CPU
<option>Moi
<option>Musique
<option>Philosophie
</select>
,








border =0 width= \"100%\" >
<gras>----


align ="center">

Message:

<textarea name= "message" cols=50 rows=6>
</textarea>

,







type =submit value= Envoyer >
<gras> type =hidden name= afficher value=ok >

<gras></form>


</center>


</html>


//la page de confirmation//






<meta http-equiv ="Content-Type" content= "text/html; charset=UTF-8">
<meta name="Generator" content="Kate, the KDE Advanced Text Editor">


<?php
include 'mysql_info.php';
?>

<html>
<head>

<title>Blog Editor</title>

<style fprolloverstyle>A:hover {color: red; letter-spacing: 0pt; font-weight: <!--bold-->}
</style>
<style page> html, body{
margin:0;
padding:0;
height:100%;
border:none
}
</style>
<!--[if !mso]>
<style>
v/:* { behavior: url(#default#VML) }
o/:* { behavior: url(#default#VML) }
.shape { behavior: url(#default#VML) }
</style>
<![endif]--><!--[if gte mso 9]>
<xml><o:shapedefaults v:ext ="edit" spidmax= "1027"/>
</xml><![endif]-->


</head>

bgcolor ="white" link= "black" alink="black" vlink="black" >

<gras><center>


<?php

$titre = $_POST['titre'];
$section = $_POST['section'];
$message = $_POST['message'];
$date $date date(Y).date(m).date(d);

print $titre;
print '
';

$link = mysql_connect("$serveur", "$root", "$password")
or die("Erreur lors de la connection sur le blog.");

mysql_select_db("vezonline_blog")
or die ("Erreur sur la connection de la base de donn&eacute;e.");



$req = "CREATE TABLE $table (
id INT NOT NULL AUTO_INCREMENT,
Auteur VARCHAR(20000),
Message TEXT
No INT,
PRIMARY KEY (id),
INDEX i_nom (nom)
)";
$resultat = mysql_query($req)
or die ("Erreur lors de la cr&eacute;tion de la table.");

if(!$start) {$start=0;}

$rec = mysql_query("select No from main order by Date desc");

$row = mysql_fetch_row($rec);

$old_no = $row['No'];
$no = $old_no + 1;

$req2 = "insert into main (Titre, Date, Section, Message, No) values ('$titre','$date','$section','$message','$no')";
$rec3 = mysql_query($req2)
or die ("Erreur lors de l'&eacute;criture dans la table.");

mysql_free_result($rec);
mysql_free_result($rec2);
mysql_free_result($rec3);
mysql_close($link);
echo "Le post a bel et bien &eacute;t&eacute; envoy&eacute;";
?>




href ="index.php"<gras>>Back

</center>


</html>


Peut-être que c'est mon code aussi qui fait défaut mais lorsque je
clique sur envoyer, il m'écrit: "erreur lors de la création de la
table" (donc ce que j'ai mis dans mon or die. Ce qui voudrait dire que PHP est incapable de créer la table mais je ne comprends pas pourquoir



Merci de votre aide

VEZ

5 réponses

pablor44 Messages postés 60 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 3 octobre 2006
15 mars 2006 à 07:33
Salut Vez_from_hell,
donc juste deux questions pour pouvoir t'aider, ton blog est-il hébergé en local? si oui, est-ce que tu as changé de version de php ou de mysql en passant à linux?

Deuxième idée, rajoute un <?php echo $req; ?> à la fin de ton code pour voir si l'erreur ne vient pas des paramètres que tu insère dans ta requête!

Voili voilou
Tiens nous au courant ^^
0
vez_from_hell Messages postés 14 Date d'inscription jeudi 10 février 2005 Statut Membre Dernière intervention 15 mars 2006
15 mars 2006 à 13:43
Hello,



Mon blog est effectivement hébergé en local et j'ai peut-être changé de
version de MySQL (il était compris en package avec SUSE 10.0).

Peut-être que c'est la configuration de cette version mais il l'autorise sur phpMyAdmin donc...



Pour ce qui est de <?php echor $req; ?> et bien je l'ai mais à la
fin et ça n'affichait rien. Par contre je l'ai inséré avant ma requete:






<meta http-equiv= "Content-Type" content="text/html; charset=UTF-8">
<meta name="Generator" content="Kate, the KDE Advanced Text Editor">

mysql_select_db("vezonline_blog")
or die ("Erreur sur la connection de la base de donn&eacute;e.")

$req = "CREATE TABLE $table (
id INT NOT NULL AUTO_INCREMENT,
Auteur VARCHAR(20000),
Message TEXT,
No INT,
PRIMARY KEY (id),
INDEX i_nom (nom)
)";

echo $req;

$resultat = mysql_query($req)
or die ("Erreur lors de la cr&eacute;tion de la table.");


Et je vois mes paramètres sauf que je n'ai pas trouvé d'erreur (à part une virgule manquant mais qui n'a rien changé.



Merci

VEZ
0
pablor44 Messages postés 60 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 3 octobre 2006
15 mars 2006 à 22:52
Et si tu balances la requête que tu as eu par l'affichage grâce au echo dans phpmyadmin il devrait t'afficher un message d'erreur plus précis ;-)
0
vez_from_hell Messages postés 14 Date d'inscription jeudi 10 février 2005 Statut Membre Dernière intervention 15 mars 2006
15 mars 2006 à 23:17
J'ai finalement trouvé ce qui se passait:



lorsque je fait le create table, je met une variable comme titre et il ne veut pas le prendre:



"CREATE TABLE $table
( id INT NOT NULL AUTO_INCREMENT, Auteur VARCHAR(20000), Message TEXT, No INT, PRIMARY KEY (id), INDEX i_nom (nom) )";


par contre, j'ai essayé mais je ne réussis pas à trouver comment faire pour que $titre soit le titre de la table.

merci encore

VEZ
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pablor44 Messages postés 60 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 3 octobre 2006
17 mars 2006 à 18:01
Pour faire une concatenation en php le mieux c'est de procéder comme ci :

<?php $req='titre est : '.$titre.' !!!'; ?>

et non <?php $req="titre est: $titre"; ?>

ça résoudra peut être ton problème
0
Rejoignez-nous