tout le monde! Je viens de coder un script de news mais le prob c´est que ça marche pas.
voici le lien où on devrait voir les news:
http://group.neeweb.com/~ndspower/news.php
Voici le lien pour insérer des news:
http://group.neeweb.com/~ndspower/insert_news.php
et voici le code de la page news.php:
<?
//on se connnecte à la base
$base = mysql_connect (´localhost´,´veni´,´monmotdepasse´);
mysql_select_db (´mysql´,$base);
// lancement de la requête. on sélectionne les news que l´on va ordonner suivant l´ordre "inverse" des dates (de la plus récente à la plus vieille : DESC) tout en ne sélectionnant que le nombre voulu de news à afficher (LIMIT)
$sql = ´SELECT auteur, titre, date, texte_news FROM news ORDER BY date DESC;´;
//on lance la requête (mysql_query) et on met un message d´erreur au cas où ça se passe pas bien...
$req = mysql_query($sql) or die (´Erreur SQL !< br />´.$sql.´<br />´.mysql_error());
//on compte le nombre de news stockés dans la base de donnée...
$nb_news = mysql_num_rows($req);
if ($nb_news == 0) {
echo ´Aucune news enregistrées!´ ;
}
else {
//si il y´en a au moins une!
while ($data = mysql_fetch_array($req)) {
sscanf($data[´date´], "%4s-%2s-%2s %2s:%2s:%2s", $an, $mois, $jour, $heure, $min, $sec);
//on affiche les résultats
echo ´<br />News de : ´ , stripslashes(htmlentities(trim($data[´auteur´]))) , ´<br />´;
echo ´Titre : ´ , stripslashes(htmlentities(trim($data[´titre´]))) , ´<br />´;
echo ´Postée le : ´ , $jour , ´/´ , $mois , ´/´ , $an , ´ à ´ , $heure , ´:´ , $min , ´:´ , $sec , ´<br /><br />´;
echo ´News : ´ ,
nl2br(stripslashes(htmlentities(trim($data[´texte_
news´])))) , ´<br />´;
}
}
//on libère l´espace allouée à cette requête
mysql_free_result ($req);
//on ferme la connection à la base de donnée!
mysql_close;
?>
et maintenant le code de la page insert_news.php
if (isset($_POST[´go´]) && $_POST[´go´]==´Poster la news´) {
// on se connecte à notre base
$base = mysql_connect (´localhost´, ´veni´, ´monmotdepasse´);
mysql_select_db(´mysql´, $base);
// on teste la déclaration de nos variables
if (!isset($_POST[´auteur´]) || !i sset($_POST[´titre´]) || !i sset($_POST[´news´])) {
$erreur = ´Les variables nécessaires au script ne sont pas définies.´;
}
else {
if (empty($_POST[´auteur´]) || empty($_POST[´titre´]) || empty($_POST[´news´])) {
$erreur = ´Au moins un des champs est vide.´;
}
// si tout est bon, on peut commencer l´insertion dans la base
else {
// lancement de la requête d´insertion
$sql = ´INSERT INTO news VALUES("", "´.addslashes($_POST[´auteur´]).´", "´.addslashes($_POST[´titre´]).´", "´.date("Y-m-d H:i:s").´", "´.addslashes($_POST[´news´]).´")´;
// on lance la requête (mysql_query) et on impose un message d´erreur si la requête ne se passe pas bien (or die)
mysql_query($sql) or die(´Erreur SQL !´ .$sql.´<br />´.mysql_error());
// on ferme la connexion à la base de données
mysql_close();
// on redirige vers la page d´accueil du site (attention, cette redirection ne fonctionne qui si vous avez placé cette page dans un répertoire à partir de la racine du site). Si ce n´est pas le cas, veuillez entrer ici le bon chemin d´accès afin de retomber sur la page d´accueil du site.
header(´Location: ../index.php´);
// on termine le script courant
exit();
}
}
}
?>
<html>
<head>
<title>Insertion d´une nouvelle News</title>
</head>
<body>
<form action="insert_news.php" method="post">
<table>
<tr>
<td>
<span class="gras">Auteur :</span>
</td>
</tr>
<input type="text" name="auteur" maxlength="30" size="50" value="<?php if (isset($_POST[´auteur´])) echo
stripslashes(htmlentities(trim($_POST[´auteur´])))
; ?> ">
</td></tr><tr><td>
<span class="gras">Titre :</span>
</td><td>
<input type="text" name="titre" maxlength="50" size="50" value="<?php if (isset($_POST[´titre´])) echo
stripslashes(htmlentities(trim($_POST[´titre´])));
?> ">
</td></tr><tr><td>
<span class="gras">News :</span>
</td><td>
<textarea name="news" cols="50" rows="10"><?php if (isset($_POST[´news´])) echo stripslashes(htmlentities(trim($_POST[´news´]))); ?> </textarea>
</td></tr><tr><td><td align="right">
<input type="submit" name="go" value="Poster la news">
</td></tr></table>
</form>
<?php
// on affiche les erreurs éventuelles
if (isset($erreur)) echo ´<br /><br />´,$erreur;
?>
</body>
</html>
Voilà
d´avance pour votre aide précieuse!! ![]()
Tu l´as créé la base qui s´appelle mysql ou pas?
ben j´ai créé ma table dans la base de donnée se nommant mysql. Je dois mette le nom de la base de donnée ou de la table?? ![]()
je veux dire ici:
mysql_select_db (´mysql´,$base);
maintenant j´ai remplacé mysql par le nom de ma table. (news)
mais ça marche toujours pas!
je comprend pas!
MySQL, c´est le système de gestion de bases de données (SGBD), mais tu as déjà défini que tu l´utilisais par la commande mysql_select_db.
Ensuite, il peut comprendre plusieurs bases de données, chacune comportant plusieurs tables.
Chez la plupart des hébergeurs, le nom de la base de données, est ton nom d´utilisateur.
ah oui lol je crois que je viens de comprendre!! J´essaie et je vous dis si ça marche!! ![]()
ça marche pas!! et J´ai mis le nom de la base de donnée que m´a donné mon hébergeur...
aidez-moi!
Tu as quoi, comme message d´erreur ?
Regarde tes erreurs, elles indiquent la solution:
Unknown column ´date´ in ´field list´
traduit ca donne à peu près ceci:
La colonne ´date´ n´existe pas dans la ´liste de champs´
Ce qui signifie que tu dois la créer. Crée d´abord ton tableau avant de vouloir le remplir.
tu veux dire ma table?´ Mais je comprend pas! Je l´ai créer!!
Bon attendez je l´a refait...
ah oui pour la base de donnée. Je crée ma table sous easyphp sous la base de donnée test. Mais après pour la base de donnée je dois mettre le nom que m´a donné mon hébergeur ou le nom de la base de donnée où est placé la table? (test)
d´avance!
voici ma table: (elle a été créé dans la base de donnée test)
CREATE TABLE `news` (
`id` INT( 6 ) NOT NULL AUTO_INCREMENT ,
`auteur` VARCHAR( 30 ) NOT NULL ,
`titre` TEXT NOT NULL ,
`date` DATETIME DEFAULT ´0000-00-00 00:00:00´ NOT NULL ,
`texte_news` TEXT NOT NULL ,
PRIMARY KEY ( `id` )
) TYPE = MYISAM ;
Et, tu as transféré cette table chez ton hébergeur ?
euh non. Comment faire?
(on m´a toujours dit de ne rien faire après...)
![]()
Deux solutions :
- Tu trouves le phpmyadmin de ton hébergeur (tu dois avoir une console d´administration, ou un truc comme ça), et tu copies/coller le code que tu viens de poster dedans
- tu crées une page contenant une requête SQL contenant la requête citée plus haut.
donc je copie la requête que j´ai mis plus haut et je la colle en haut de ma page où doivent apparaître les news??? ![]()
ça me donnerait donc ça?
CREATE TABLE `news` (
`id` INT( 6 ) NOT NULL AUTO_INCREMENT ,
`auteur` VARCHAR( 30 ) NOT NULL ,
`titre` TEXT NOT NULL ,
`date` DATETIME DEFAULT ´0000-00-00 00:00:00´ NOT NULL ,
`texte_news` TEXT NOT NULL ,
PRIMARY KEY ( `id` )
) TYPE = MYISAM ;
<?
//on se connnecte à la base
$base = mysql_connect (´localhost´,´veni´,´monmotdepasse´);
mysql_select_db (´naruto´,$base);
// lancement de la requête. on sélectionne les news que l´on va ordonner suivant l´ordre "inverse" des dates (de la plus récente à la plus vieille : DESC) tout en ne sélectionnant que le nombre voulu de news à afficher (LIMIT)
$sql = ´SELECT auteur, titre, date, texte_news FROM news ORDER BY date DESC;´;
//on lance la requête (mysql_query) et on met un message d´erreur au cas où ça se passe pas bien...
$req = mysql_query($sql) or die (´Erreur SQL !< br />´.$sql.´<br />´.mysql_error());
//on compte le nombre de news stockés dans la base de donnée...
$nb_news = mysql_num_rows($req);
if ($nb_news == 0) {
echo ´Aucune news enregistrées!´ ;
}
else {
//si il y´en a au moins une!
while ($data = mysql_fetch_array($req)) {
sscanf($data[´date´], "%4s-%2s-%2s %2s:%2s:%2s", $an, $mois, $jour, $heure, $min, $sec);
//on affiche les résultats
echo ´<br />News de : ´ , stripslashes(htmlentities(trim($data[´auteur´]))) , ´<br />´;
echo ´Titre : ´ , stripslashes(htmlentities(trim($data[´titre´]))) , ´<br />´;
echo ´Postée le : ´ , $jour , ´/´ , $mois , ´/´ , $an , ´ à ´ , $heure , ´:´ , $min , ´:´ , $sec , ´<br /><br />´;
echo ´News : ´ ,
nl2br(stripslashes(htmlentities(trim($data[´texte_
news´])))) , ´<br />´;
}
}
//on libère l´espace allouée à cette requête
mysql_free_result ($req);
//on ferme la connection à la base de donnée!
mysql_close;
?>
ça me semble bizarre... ![]()
non, tu crées une page, que tu remplis comme ça :
<?php
mysql_query("CREATE TABLE `news` (`id` INT(6) NOT NULL AUTO_INCREMENT, `auteur` VARCHAR(30) NOT NULL,
`titre` TEXT NOT NULL, `date` DATETIME DEFAULT ´0000-00-00 00:00:00´ NOT NULL, `texte_news` TEXT NOT NULL, PRIMARY KEY (`id`))");
?>
et je la nomme comment? et ensuite je la transfère avec Fillezilla c´est ça?
merci d´avance!!