Vous n'êtes pas identifié(e).
Maintenant on utilise des feuilles de style (CSS).
Tu peux aller te renseigner sur http://www.alsacreations.com/ concernant les dernières normes.
Mais oui, bien sur !!!!
A ++
Salut,
echo '<td bgcolor="#CCCCCC">'.$row['nom'].' '.$row['prenom'].'</td>';
Par exemple.
Note au passage que l'attribut "bgcolor" est dépassé.A+
Merci
Pour "bgcolor", ça fonctionne pourtant bien !
Et on met quoi maintenant à la place ?
Bonjour,
Je récupère des valeurs par un array, et je cherche à les afficher dans un tableau :
echo '<td bgcolor="#CCCCCC">'.$row['nom'].$row['prenom'].'</td>';
Comment afficher un espace entre l'afficahe du nom et du prénom ?
Bonjour Maljuna Kris,
Que veux-tu dire par "les colonnes d'une table doivent être des scalaires et non des données tabulaires" ?
J'ai testé et remplacé dans mon script "$row2 = mysql_fetch_array($result2);" par "$row2 = mysql_fetch_assoc($result2);", mais je n'ai pas de différence !
Par contre, si j'écris
j'obtient bien dans $value toutes mes enregistrements du champ participant.
Mais comment faire la relation avec l'autre table (id_mb), récupérer et afficher les champs correspondant et leurs valeurs ?
Merci
Bonjour,
J'ai une table nommée "infos" qui contient un champ "participant". Ce champ peut être vide ou contenir de 1 à plusieurs numéros. Les numéros correspondent à un identifiant unique "id_mb" de la table "membres", et sont sous la forme "-1-2-3-4-5-6".
Je veux extraire ce ou ces numéros, s’ils existent, et afficher leur correspondance (nom) de la table "membres".
Mais je n’arrive à afficher que le dernier nom enregistré, et moi je les veux tous ! Dans l’exemple "-1-2-3-4-5-6", je n’afficherais que le nom correspondant à 6 ?
Voici mon code
while($row = mysql_fetch_array($result))
{
//vérification du champ participant. Si non vide, on ira rechercher la correspondance dans la table "membres".
if (!empty($row['participant']))
{
$part = explode("-", $row['participant']);
$i = 0;
foreach ($part as $part2)
{
$part2 = ($part[$i]);
$i++;
}
$req="SELECT * FROM membres where id_mb like '$part2'";
$result2 = mysql_query($req,$link) or exit ('Erreur : '.mysql_error() );
while ($row2 = mysql_fetch_array($result2))
{
echo '<td>'.$row['titre'].'</td>'; // issu de la base infos
echo '<td>'.$row['texte'].'</td>'; // issu de la base infos
echo '<td>'.$row2['nom'].'</td>'; // issu de la base membres ..............................
Merci pour votre aide
Saluton,
Oui c'est possible, mais la bonne question est : est-ce que c'est souhaitable ?
Quel est l'élément le plus invariant d'un site ?
Quel est l'élément le plus sollicité d'un site ?La réponse à ces deux question étant : le menu, je te laisse réfléchir à la pertinence d'une solution qui solliciterait le serveur MySQL à chaque fois qu'un internaute aurait besoin du menu du site.
Pensu aliamaiere !
Effectivement, tu as tout à fait raison .... !
Je voulais permettre à la personne à qui j'ai écrit le site de pouvoir le faire évoluer, et donc de rajouter un élément au menu du site sans mon intervention (c'est à dire en passant par un menu de gestion).
Mais j'ai peur que cela devienne impossible ..... sauf si tu as une idée !
Bonjour,
Si je crée un menu php où les boutons pointent vers une pseudo-frame, j’écrirais :
$menu = array('news' => 'news.php', 'accueil' => 'accueil.php', …… );
Est-il possible de placer les éléments de cet array (les pages) dans une base mysql, en tant qu’enregistrement, et de les appeler par requête au chargement de la page pour voir apparaitre le menu (qui ne sera pas directement inscrits dans le script).
PS : ceci afin de gérer les éléments du menu directement par gestion simplifié, sans intervention au niveau du script.
Merci
J'ai trouvé ......
Je commence par récupérer les éléments de la photos à afficher par une requête.
Puis je teste si une photo suivante existe par une autre requête. Je met le résultat dans une variable.
Ensuite je teste si une photo précédente existe par une autre requête. Je met le résultat dans une autre variable.
Et selon le résultat des varkiablers, j'affiche ou pas les flèches suivante et précédente !
Encore merci à xTG et Maljuna Kris pour leur intervention .....
A ++
Merci à vous, mais rien à faire .....
J'ai ajouter ou enlever des ", des ', des ( ) ..... que dalle ..........
Le problème vient de $limite et $nombre. Si je les enlève, j'ai uniquement sur ma page "Page suivante".
Faudrait que j'essaye de me bidouiller un script moi même ! Mais alors là ..........
Ce que tu cherches à faire est comparable à un affichage page par page sauf que tu n'affiche qu'un élément par page.
Je te renvoie au cours du site : http://phpdebutant.org/article84.php
Bonjour et merci xTG. Intéressant, mais compliqué ........
J'ai tenté de l'arranger pour moi :
$requete="SELECT alb_photos.id, alb_photos.titre_album, alb_photos.soustitre, photos.idph, photos.idliaison, photos.numero, photos.photo, photos.commentaire
FROM alb_photos LEFT JOIN photos ON alb_photos.id=photos.idliaison
WHERE idph='$idph'";
$nombre = 1; // on va afficher 1 résultats par page.
if (!isset($limite)) $limite = 0; // si on arrive sur la page pour la première fois on met limite à 0.
// permet de récupérer le nom de la page qui sera utilisé dans les liens.
$path_parts = pathinfo($_SERVER['PHP_SELF']);
$page = $path_parts['basename'];
// Compte le nombre d'enregistrements total de la table.
$select = 'SELECT count(idph) FROM photos ORDER BY idph DESC '.$limite.','.$nombre;
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$row = mysql_fetch_row($result);
$total = $row[0]; // contient le nombre d'enregistrement à afficher au total
// Calcul des limites précédente et suivante
$limitesuivante = $limite + $nombre;
$limiteprecedente = $limite - $nombre;
// Affichage du lien précedent si besoin
if($limite != 0) {
echo '<a href="'.$page.'?limite='.$limiteprecedente.'">Page précédente</a>';
}
// Affichage du lien suivant si besoin
if($limitesuivante < $total) {
echo '<a href="'.$page.'?limite='.$limitesuivante.'">Page Suivante</a>';
}
Et j'ai un message d'erreur :
Erreur : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '0,1' at line 1
Bonjour,
J'ai créé un album photo en php. Une première table contient le titre et sous-titre de l'album. Une deuxième table contient les photos, qui ont pour identifiant unique "idph", et sont reliées à la première table par le champ "idliaison". Donc, toutes les photos du même album (même titre et même sous-titre) ont la même valeur pour le champ "idliaison".
Je visionne les photos une par une à l'écran pour le même album. J'ai placé au-dessus de chaque photo des flèches qui mènent à la photo suivante ou précédente. Mais après la dernière photo de l'album, là où l' "idliaison" change (car la photo qui suit ne fais pas parti du même album), je voudrais rester affiché sur cette dernière photo, ou afficher la dernière photo de l’album sans la flèche « suivant ». Et je ne sais pas comment faire …. Comment repérer qu’on lit de dernier élément d’une série choisie, et modifier sa présentation ?
Là, j’affiche mes photos une par une :
while($row = mysql_fetch_array($result))
{
echo '<center><b><u>'. $row['titre_album'] .'</u></b><p>';
echo '<i>'. $row['soustitre'] .'</i><p>';
echo '<a href = "photo_prec.php?idph='.$row['idph']. ' & idliaison='. $row['idliaison'] .'"><IMG src="images/back.gif" border=0 alt="Photo Précédente" width="27" height="30"></A>' ;
echo '<a href = "alb_photos.php"><IMG src="images/retour.gif" border=0 alt="Retour Album Photos" width="28" height="30"></A>' ;
echo '<a href ="photo_suiv.php?idph='. $row['idph'] .' & idliaison='. $row['idliaison'] .'"><IMG src="images/next.gif" border=0 alt="Photo Suivante" width="27" height="30"><br></a></td>';
echo '<img border=0 height="350" src="images/photos_alb/' . $row['photo'] . '"><p><h3>'. $row['commentaire'] .'</h3>';
}
echo("<p><h2>FIN DE L'ALBUM</h2></center>") ;
Avec le script tel qu’il est, arrivé sur la dernière photo de la série, j’affiche en bas, sous la photo : « FIN DE L'ALBUM ». Et si je clique sur la flèche « suivant », j’affiche uniquement (et encore) « FIN DE L'ALBUM ».
A la place d’afficher « FIN DE L'ALBUM » (le premier), je souhaiterais afficher la dernière photo sans la flèche « suivant ».
Merci.
Voilà d'où venait l'erreur, et comment ilo fallait écrire :
A ++
Bonjour,
J'ai trouvé autrement (en sachant que "doublon" set un champ de la base que je vais incrémenter) :
$fic = explode(".", $fichier);
//------------------verif doublon fichier-----------------
$verif = "SELECT nom,doublon FROM photos where nom like '$fic[0]'";
$result = mysql_query($verif,$link) or die ('Erreur : '.mysql_error() );
while($row = mysql_fetch_row($result))
{
//récup des infos de $result
$nom = $row[0];
$doublon = $row[1];$doublon2 = $doublon + 1;
//mise à jour du champ "doublon" pour l'élément déjà existant
$maj_doub = mysql_query("UPDATE photos SET doublon='$doublon2' WHERE nom='$row[0]'");
$doublon3 = $doublon2 + 1; //champ doublon du nouvel enregistrement
$fic[0] = $fic[0].$doublon2; //nouveau nom du fichier sans son extension
$fichier = "$fic[0].$fic[1]"; //nouveau nom du fichier avec son extension
}
Y'a certainement mieux, mais ça fonctionne ....
OK, et merci à vous. J'ai effectivement corrigé :
J'ai testé, mais c'est toujours pareil .... !
Y'a d'autres erreurs ?
Ah bah déjà tu as un drôle de formulaire...
Un par image ? Et comportant tous le même nom !
Faut choisir... Soit un par page comportant toutes les images, soit un par image mais avec chacun un nom différent. ^^
Bonjour xTG,
Je ne comprends pas ce que tu veux me dire ?
Je commence par afficher mes albums-photos. Je sélectionne un album (avec ses photos), et je l'affiche (script précédent). Là, j'ai toutes les photos avec leur numéro dessous que je voudrais modifier :
Peux-t'on voir ton formulaire ?
Voilà :[/u]
$select2 = "SELECT * FROM photos where idliaison='$id'";
$result2 = mysql_query($select2,$link) or die ('Erreur : '.mysql_error() );
echo '<center><table><tr>';
while($row2 = mysql_fetch_array($result2))
{
echo '<form action="maj_ordre_photos.php?idph='. $row2['idph'] .' & numero='. $row2['numero'] .'" method="POST">';
echo '<td><img border=0 height="50" src="../../images/alb_photos/' . $row2['photo'] . '">
<center><input name="'. $row2['idph'] . '" type="text" id="numero_' . $row2['idph'] . '" value="'.$row2['numero'] .'" size="1" maxlength="3"></center></td>';
}
echo '</tr></table><p>';
}
echo '<input type="button" name="lien" value="Annuler" onClick="self.location.href=\'aff_alb_photos.php\'">';
echo '<input type="submit" value="envoyer" /></center>';
echo '</form>';
mysql_close(); // on ferme la connexion
exit;
[u]Voici ma table photos :
Ben non, le script se déroule mais ne m'affiche rien si je fais un echo de la requête : echo ("<br><u>requete =</u> ".$requete) ;
Une étourderie serait tout à fait possible, mais où .... ???? pffffffffffff............
$idph = $_POST['idph'];
$numero = $_POST['numero'];
//echo '<pre>'; print_r($_POST); echo '</pre>'; // test des variables
//exit;
if( isset($_POST['numero']) )
{
//Boucle sur les valeurs
foreach($_POST['numero'] as $idph => $numero)
{
//Cast en integer afin de n'avoir que des entiers
$idph = (int)$idph;
$numero = (int)$numero;
//Requête d'update de la photo pointée par idph
$requete = 'UPDATE photos SET numero='.$numero.' WHERE idph='.$idph;
$result = mysql_query($requete,$link) or die ('Erreur : '.mysql_error() );
echo ("<br><u>requete =</u> ".$requete) ; // test de la requête
}
}
mysql_close();
header("Location: aff_alb_photos.php");
exit;
?>
Essayes avec cela ça fonctionnera mieux...
$requete = 'UPDATE photos SET numero='.$numero.' WHERE idph='.$idph;La fin de chaîne était rouverte mais non refermée.
Edit : tu devrais utiliser un éditeur qui colore la syntaxe tu verrai tout de suite ce genre d'erreurs.
Ben je suis désolé, mais ça ne fonctionne pas ....
Après :
$requete = 'UPDATE photos SET numero='.$numero.' WHERE idph='.$idph;
$result = mysql_query($requete,$link) or die ('Erreur : '.mysql_error() );
je n'ai même pas de message d'erreur, pas de mise à jour dans la base ! Ce que je souhaitais faire est certainement impossible ......
Bonjour à tous,
Moogli, j'ai donc testé ton code :
Et j'ai comme réponse sur le "echo" :
Parse error: syntax error, unexpected T_STRING
ou
Et j'ai la même réponse ....
Merci xTG ! Je commence à y voir clair, mais pas suffisamment pour arriver au bout. (au passage, peux-tu m'expliquer id="numero_' . $row2['idph'] . ')
Je récapitule ; j'affiche les photos avec leur numéro d'ordre dessous :
Je modifie le ou les numéros désirés, je valide pour mise à jour dans la base, et là .......................................................... pas de modification.
Suite à la validation, ma variable $numero = $_POST['numero']; est égal à :
[1] => 1
[5] => 3
[6] => 5
[7] => 7
[8] => 9
1,5,6,7,8 correspond aux idph.
1,3,5,7,9 correspond aux numéros à écrire dans la base.
Mon script de mise à jour dans la base :
if( isset($_POST['numero']) )
{
//Boucle sur les valeurs
foreach($_POST['numero'] as $idph => $numero)
{
//Cast en integer afin de n'avoir que des entiers
$idph = (int)$idph;
$numero = (int)$numero;
//Requête d'update de la photo pointée par idph
mysql_query("UPDATE photos SET numero='$numero' WHERE idph='$idph'");
}
}
En fait, dans ma variable réceptionnée "$numero", j'ai tout ce qu'il me faut .... Mais comment dire d'inscrire dans la base les numéros (=> "y") correspondant aux idph qui se trouvent entre crochets ([x]) ?????
Il faudrait que les chiffres se trouvant entre [] représentent l'idph, ce qui n'est pas le cas. Il n'y a donc pas notion d'idph ....
Merci pour le code ....
Je pensais enfin que ça allait fonctionner, mais rien0. Pas de message d'erreur, pas de mise à jour de la base ....
J'ai recopié tel que ton code ....
Je suppose que le problème, est que je récupère dans mon tableau "Array" que les valeurs des numéros. Pas celles des "idph". Donc je ne peux faire le lien ....
Array
(
[0] => 1
[1] => 3
[2] => 5
[3] => 7
[4] => 2
)
Il faudrait que j'arrive à dire que pour chaque valeur se trouvant entre crochet ([x]), je lui associe le numéro suivant => y à enregistrer dans la base. Et là .... je sais pô ....
Je suis pas sûr que tu ais compris mon post...
Tu vais un if sur la recherche de "numero_"...
Mais lorsque tu affiches tes variables tu n'as que des chiffres. Nulle part "numero_" !!!
Donc ton if ne se fait JAMAIS......J'espère que tu m'auras lu cette fois-ci.
Mais si j'enlève le if, l'ordre doit s'exécuter. Et si j'écris ceci :
foreach ($numero as $numero2 => $result) ;
$i = 0;
$idph = $_POST['idph'][$i];
$numero = $_POST['numero'][$i];
$i++;
{
$result=mysql_query("UPDATE photos SET numero WHERE idph='$idph'");
J'ai le même résultat .... C'est à dire le même Array que précédemment, mais la mise à jour dans la base ne se fait pas !
Je pense avoir une erreur de syntax dans ma requête $resutl, mais où ???
Merci, mais si je fais :
if(strpos('numero_', $sKey) !== false)
{
$i = 0;
$idph = $_POST['idph'][$i];
$numero = $_POST['numero'][$i];
$i++; ................
C'est pareil ..............
Il doit bien y avoir une solution ..............:mad:
Tu ferrais bien de faire du débuggage sur ton script car ta méthode est la bonne (bon j'ai pas vérifié que le script pouvait fonctionner, c'est ce que je te demande ^^).
Tentes de faire un affichage des variables, tu dois avoir un truc qui ne passe pas bien ou une simple erreur de nom, ou encore un écrasement ou que sais-je.
Bonjour xTG,
Si après la réception des variables je fais un test de variable :
$idph = $_POST['idph'];
$numero = $_POST['numero'];
echo '<pre>'; print_r($_POST); echo '</pre>';
J'ai ceci :
Array
(
[idph] => 8
[numero] => Array
(
[0] => 1
[1] => 6
[2] => 5
[3] => 7
[4] => 9
)
)
Le [1] => 6 correspond à la deuxième photo que j'ai modifié. Le 6 était à 3 lors de l'affichage.
Donc, les variables sont bien réceptionnées.
Mais je ne trouve pas mon erreur ......