Page 1 of 1
[php]Créer un menu avec admin
Posted: Tue Feb 07, 2006 4:21 pm
by ben24
Bon, bon c'est un projet que je me suis lancé pour les vacs car je m'emmerde... Je suis a la première partie du scripte c'est a dire faire le menu avec du php (la deuxième parti étant l'admin). Mais je bloque...
Code: Select all
<!-- menu referencement site -->
<?php
mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("referencement");
$reponse = mysql_query("SELECT * FROM cat_menu") or die mysql_error(); // Requête SQL
while ($donnees = mysql_fetch_array($reponse) )
{
echo '<li><a href="' . $donnees['lien'] . '" >' . $donnees['nom'] . '</a></li>';
}
mysql_close(); // Déconnexion de MySQL
?>
Mais ça me renvoit une erreur bizarre:
' . $donnees['nom'] . ''; } mysql_close(); // Déconnexion de MySQL ?>
Alors si quelqu'un sait d'où vient mon problème, je le remercie de le dire.
EDIT: J'ai refait le script et le problème a été résolu mais je ne sais toujours pas d'où il venait...
Re: [php]Créer un menu avec admin
Posted: Tue Feb 07, 2006 8:28 pm
by Romano
Après avoir modifier quelques petites choses, ça semble fonctionner chez moi
Code: Select all
<!-- menu referencement site -->
<?php
mysql_connect('localhost', 'root', '') or die('Impossible de se connecter à la base.'); // Connexion à MySQL
mysql_select_db('referencement') or die('Impossible de sélectionner la base.');
$reponse = mysql_query("SELECT * FROM cat_menu") or die('Erreur durant l\'éxecution de la requête : ' . mysql_error()); // Requête SQL
if(mysql_num_rows($reponse))
{
while ($donnees = mysql_fetch_array($reponse))
{
echo '<li><a href="' . $donnees['lien'] . '" >' . $donnees['nom'] . '</a></li>';
}
}
mysql_close(); // Déconnexion de MySQL
?>
A noter le mysql_num_rows qui permet d'éviter les erreurs lorsqu'il n'y a pas de réponse à la requête.
Plus quelques optimisations, notamment remplacement des " par des ' (car pas de parsage des variables avec le ')

Re: [php]Créer un menu avec admin
Posted: Tue Feb 07, 2006 8:33 pm
by ben24
Ah un chtit problème: 2 erreurs mais les mêmes.
Notice: Undefined index: nom in d:\program files\easyphp1-8\www\idée_référencement_rpg\test2.php on line 12
Notice: Undefined index: nom in d:\program files\easyphp1-8\www\idée_référencement_rpg\test2.php on line 12
Re: [php]Créer un menu avec admin
Posted: Tue Feb 07, 2006 8:35 pm
by Romano
Etonnant car cela fonctionne parfaitement sur mon serveur perso

Re: [php]Créer un menu avec admin
Posted: Tue Feb 07, 2006 8:38 pm
by ben24
Et pourtant ça marche pas chez moi. J'ai un doute quand même sur la concaténation de cette ligne:
Code: Select all
echo '<li><a href="' . $donnees['lien'] . '" >' . $donnees['nom'] . '</a></li>';
Car quand je remplace sans concaténation ça marche parfaitement:
Code: Select all
<?php
include("connection_bdd.php");
$reponse = mysql_query("SELECT * FROM cat_menu");
while ($donnees = mysql_fetch_array($reponse) )
{
?>
<li><a href="<?php echo $donnees['lien']; ?>"><?php echo $donnees['titre']; ?></a></li>
<?php
}
mysql_close();
?>
Re: [php]Créer un menu avec admin
Posted: Tue Feb 07, 2006 8:42 pm
by Romano
Eh bien alors enlève la concaténation
Si c'est un retour chariot que tu veux, tu peux l'avoir avec \n, mais entre guillemets doubles (") seulement (ce dont j'ai parlé tout à l'heure

).
Re: [php]Créer un menu avec admin
Posted: Tue Feb 07, 2006 8:51 pm
by ben24
Tu vas dire que je suis embêtant mais... j'ai encore un problème.
J'essaye de faire le fichier admin pour modifier, ajouter, supprimer des liens. J'en suis qu'au début mais je test...
Code: Select all
<?php
include("connection_bdd.php") //connection a la bdd. Copie sur admin ou lien complet?
$reponse = mysql_query("SELECT * FROM cat_menu") or die('Erreur durant l\'éxecution de la requête : ' . mysql_error()); // Requête SQL
/*Faut définir ce qu'on doit faire avec une variable, qu'on récupère a partir d'une donner... Comment faire? Utilisé peut être la stucture if...else.
Primo afficher tout ça...*/
while ($donnees = mysql_fetch_array($reponse) )
{
?>
<table>
<tr>
<td><a href="<?php echo $donnees['lien']; ?>"><?php echo $donnees['titre']; ?></a></td>
<td> <?php echo $donnees['lien']; ?></td>
</tr>
<?php
}
?>
Et ça me renvoie l'erreur:
Parse error: parse error in d:\program files\easyphp1-8\www\idée_référencement_rpg\admin\modif_menu_ref.php on line 4
Et pourtant à la ligne 4, il manque pas de ";"...
Re: [php]Créer un menu avec admin
Posted: Tue Feb 07, 2006 9:00 pm
by Romano
ben24 wrote:Code: Select all
<?php
include("connection_bdd.php") //connection a la bdd. Copie sur admin ou lien complet?
Si le script se trouve dans un répertoire admin/, et que le script de connexion est un répertoire plus haut, il suffit d'un
Code: Select all
include('../connection_bdd.php"); //connection a la bdd.
Surtout ne pas oublier le ;, qui était omis dans ton quote

Re: [php]Créer un menu avec admin
Posted: Tue Feb 07, 2006 9:04 pm
by ben24
Parfait, merci Romano. Bon maintenant faut que je pense comment je vais présenter tout ça....
Re: [php]Créer un menu avec admin
Posted: Wed Feb 08, 2006 12:25 pm
by ben24
Je sais, j'édite pas comme ça Romano pourra voir.
Depuis hier soir je me triture l'esprit pour l'admin des menu... Il faut que je fasse au plus simple. Ces fonctions doit être Modifier, Supprimer, Ajouter... Mais j'ai du mal a voir comment le code pourrait être...
J'ai pensé a attribué un id a chaque lien du menu pour que ça soit plus facile pour sql. Mais après il faut voir comment va être le code... Et c'est là que je bloque, je ne vois pas comment je peux faire....
Surement il faut utiliser des structures if...else...
Romano tu peux essayer de me donner une piste (pas la réponse, une piste. Je veux trouver moi même)?
EDIT: Je pense avoir trouver la solution! J'ai fait un script mais ça me renvoit un parse error:
Code: Select all
<?php
include("../connection_bdd.php"); //connection a la bdd. Copie sur admin ou lien complet?
//--------------------------------------------------------
// Vérification 1 : est-ce qu'on veut poster un nouveau lien ?
//--------------------------------------------------------
If (isset($_POST['titre']) AND isset($_POST['lien'])
{
$titre = addslashes($_POST['titre']);
$lien = addslashes($_POST['lien']);
If ($_POST['id_menu'] == 0)
{
mysql_query("INSERT INTO cat_menu VALUES('','" . $titre . "','" . $lien . "')");
}
Else
{
mysql_query("UPDATE cat_menu SET titre='" . $titre . "', lien='" . $lien . "' WHERE id=" . $_POST['id_menu']);
}
}
//--------------------------------------------------------
// Vérification 2 : est-ce qu'on veut supprimer un lien ?
//--------------------------------------------------------
if (isset($_GET['supprimer_lien']))
{
mysql_query('DELETE FROM cat_menu WHERE id=' . $_GET['supprimer_lien']);
}
?>
<table><tr>
<th>Modifier</th>
<th>Supprimer</th>
<th>Titre</th>
<th>lien</th>
</tr>
<?php
$retour = mysql_query('SELECT * FROM cat_menu ORDER BY id DESC');
while ($donnees = mysql_fetch_array($retour))
{
?>
<tr>
<td><?php echo '<a href="rediger_lien.php?modifier_lien=' . $donnees['id'] . '">'; ?>Modifier</a></td>
<td><?php echo '<a href="modif_menu_ref.php?supprimer_lien=' . $donnees['id'] . '">'; ?>Supprimer</a></td>
<td><?php echo stripslashes($donnees['titre']); ?></td>
<td><?php echo stripslashes($donnees['lien']); ?></td>
</tr>
Parse error: parse error in d:\program files\easyphp1-8\www\idée_référencement_rpg\admin\modif_menu_ref.php on line 9
Vu que je pars cette aprem et que je reviendrai que demain... Tu peux trouver mon erreur et dire comment tu trouves le scripts?
REEDIT: j'ai trouver mon erreur j'ai presque terminé mon menu avec admin, j'ai presque fini mon dernier fichier mais il me renvoie encore un parse error (j'en ai marre des parse error) a la ligne 22, alors qu'il me semble qu'il n'y a pas d'erreur...
Code: Select all
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Nouveau lien du menu</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css">
h3, form
{
text-align:center;
}
</style>
</head>
<body>
<h3><a href="modif_menu_ref.php">Retour à la liste des news</a></h3>
<?php
include("../connection_bdd.php")
if (isset($_GET['modifier_lien'])) // Si on demande de modifier un menu
{
$retour = mysql_query('SELECT * FROM cat_menu WHERE id=' . $_GET['modifier_news']);
$donnees = mysql_fetch_array($retour);
$titre = $donnees['titre'];
$lien = $donnees['lien'];
$id_menu = $donnees['id']; // Cette variable va servir pour se souvenir que c'est une modification
}
else // C'est qu'on rédige un nouveau lien
{
$titre = '';
$lien = '';
$id_news = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification
}
?>
<form action="modif_menu_ref.php" method="post">
<p>Titre : <input type="text" size="30" name="titre" value="<?php echo $titre; ?>" /></p>
<p>
Contenu :<br />
<textarea name="contenu" cols="50" rows="1">
<?php echo $lien; ?>
</textarea><br />
<input type="hidden" name="id_news" value="<?php echo $id_menu; ?>" />
<input type="submit" value="Envoyer" />
</p>
</form>
</body>
</html>
voici la partie defectueuse:
Code: Select all
if (isset($_GET['modifier_lien'])) // Si on demande de modifier un menu
{
$retour = mysql_query('SELECT * FROM cat_menu WHERE id=' . $_GET['modifier_news']);
$donnees = mysql_fetch_array($retour);
$titre = $donnees['titre'];
$lien = $donnees['lien'];
$id_menu = $donnees['id']; // Cette variable va servir pour se souvenir que c'est une modification
}
Re: [php]Créer un menu avec admin
Posted: Sat Feb 11, 2006 10:28 am
by Romano
Je ne sais pas si c'est une erreur de recopiage, mais tu as oublié un ; après l'inclusion du fichier de connection

Re: [php]Créer un menu avec admin
Posted: Fri Mar 31, 2006 9:30 pm
by ben24
Ah oui ! Je réponds avec beaucoup de retard je sais.
Bon, pour l'instant j'abandonne. Je me remettrai dans le bain pendant les vacs!