PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 MySQL, PostgreSQL, etc... » Aide à la réflexion sur une requête php mysql » 02-12-2020 21:18:25

rickways
Réponses : 2

Bonjour à tous,

dans le cadre de la crise sanitaire, j'essaie de mettre en place un planning de réservations pour les adhérents (club de badminton), afin que chacun puisse venir jouer.

J'ai fait un petit site avec un espace membre.

J'ai donc au total 3 tables dans ma base de données :

- table MEMBRE : idmembre, pseudo

- table RESERVDATE : iddate, date, date2, nbjoueurs  (le champs date affiche la date aaaa-mm-jj, le champs date2 en texte : Lundi 17 août 2020)

- table RESERVATIONS : idreserv, iddate, idmembre (où iddate est le même que dans la table RESERVDATE, et idmembre est le même que dans la table MEMBRE)

CAS CONCRET :

Les dates ne peuvent accueillir que le nombre de joueurs prévu dans la table RESERVDATE (soit 15 joueurs par exemple) (impossibilité de s'inscrire si le nombre max est atteint)

Un joueur ne peut réserver qu'une seule date (jusqu'à ce que cette date soit passée) (exemple, il peut s'inscrire pour le Lundi 17 août 2020, mais ne pourra se réinscrire à une autre date qu'à partir du 18 août)

Un joueur doit pouvoir annuler son inscription.

AFFICHAGE CONCRET

(cas 1 : le membre ne s'est pas encore inscrit)

Lundi 17 aôut 2020 (Inscrits : 1/15) -  M'INSCRIRE
Mercredi 19 aôut 2020 (Inscrits : 15/15) - COMPLET
Lundi 24 aôut 2020 (Inscrits : 1/15) -  M'INSCRIRE
Mercredi 26 aôut 2020 (Inscrits : 1/15) -  M'INSCRIRE
Lundi 31 aôut 2020 (Inscrits : 1/15) -  M'INSCRIRE
Mercredi 2 septembre 2020 (Inscrits : 1/15) -  M'INSCRIRE


(cas 2 : le membre est inscrit à une date)

Lundi 17 aôut 2020 (Inscrits : 1/15)
Mercredi 19 aôut 2020 (Inscrits : 15/15) - COMPLET
Lundi 24 aôut 2020 (Inscrits : 1/15)
Mercredi 26 aôut 2020 (Inscrits : 1/15)
Lundi 31 aôut 2020 (Inscrits : 1/15) -  INSCRIT : Annuler mon inscription
Mercredi 2 septembre 2020 (Inscrits : 1/15)



Techniquement je sais afficher la liste des dates avec la requete :

$datedujour=date("Y-m-d");
    $req='SELECT * FROM reservdate WHERE date > "'.$datedujour.'" LIMIT 6';
    $result=mysqli_query($bdd,$req) or die ('requete impossible');
    while($list= mysqli_fetch_array($result,MYSQLI_BOTH))
 

mais après je ne sais pas quelles jointures faire, il y a trop de conditions, je n'arrive pas à organiser la logique....

Merci d'avance pour votre aide.
Eric

#2 Re : Javascript » Ajax jquery, transfert de fichier à partir d'un formulaire php » 01-06-2020 13:13:14

Bonjour,

j'étais tombé sur cette page en faisant une recherche, mais j'ai beaucoup de mal en anglais et en plus les réponses datent de 2010 à 2014, ce qui a peut-être beaucoup changé.

De plus je n'arrive pas à comprendre comment faire pour simplement faire passer le fichier avec mon exemple...

Comme je le disais, je comprends pas tout, et si quelqu'un avait un petit peu de temps pour m'aider à comprendre, ce serait sympa

#3 Javascript » Ajax jquery, transfert de fichier à partir d'un formulaire php » 01-06-2020 13:13:14

rickways
Réponses : 2

Bonjour,

tout d'abord, je tiens à m'excuser au plus haut point pour mon niveau plus que médiocre dans beaucoup de langage.

Néanmoins, j'ai plaisir a essayé de développer quelques pages internet, même si les demandes actuelles commencent à me dépasser, et je n'ai pas les compétences d'un jeune qui va comprendre le truc en quelques minutes....

Au delà de cet aparté, voici ce qui m'a mené jusque sur ce beau forum d'entraide.

J'utilise sur mon site des formulaires (beaucoup) pour mettre à jour les données d'un membre (c'est un site de poésie).

Jusqu'à présent mes formulaires étaient en php/mysql pour mettre à jour la base de données.

J'utilisais des formulaires editpresentation.php pour le formulaire, et editpresentationenvoi.php pour le traitement du formulaire.

J'ai vu une vidéo sur youtube qui consiste à transmettre les données en ajax avec jquery et de pouvoir rester sur la même page.

J'ai donc créer une page espacemembre.php, qui affiche chaque formulaire avec des include comme

include ("includecartedevisite/editpresentation.php");

je traite le formulaire à l'aide d'ajax avec :

$(function(){
$("#editionpresentation").submit(function(){
$("#loader").show();
presentation = $(this).find("textarea[name=presentation]").val();
$.post("includecartedevisite/editpresentationenvoi.php",{presentation: presentation},function(data){
$("#loader").hide();
$("#editionpresentation").hide(1000,\'swing\');
$("#editionpresentationreponse").show().append(data);
})
return false;
});
});

J'affiche la réponse de la page d'envoi à l'aide d'une div cachée qui réapparait.

TOUT MARCHE PARFAITEMENT pour les envois de données dans la bdd et pour l'affichage de la réponse.

Et puis j'arrive au formulaire qui gère l'image, l'avatar du membre.

Je n'arrive pas à trouver comment faire,

j'ai essayé en mettant :


$(function(){
$("#editionphoto").submit(function(){
$("#loader").show();
photo = $(this).find("input[type=file][name=photo]").val();
$.post("includecartedevisite/editphotoenvoi.php",{photo: photo},function(data){
alert(data);
})
return false;
});
});
 

Mais ça ne marche pas. j'ai l'impression que ça ne récupère que le nom du fichier sans gérer le fichier....

Si quelqu'un comprend ce que je suis en train de faire, et aurait quelques idées à m'apporter (en restant assez simple, car je ne comprends pas encore parfaitement ce que je fais)

Merci beaucoup déjà pour votre lecture.

Eric

#4 Re : Forum Général PHP » Slider et div dans une structure » 02-06-2016 15:31:13

Je suis toujours preneur d'un coup de main, si quelqu'un est motivé...

Eric

#5 Re : Forum Général PHP » aidez moi svp » 20-04-2016 16:33:25

A mon avis, tu vas en savoir plus dans les prochains cours...

En premier lieu, ton projet doit être clarifier sur le plan du français :
- Que dois-tu créer ? Une application (Android, IOS, Windows phone) ?
- Pour gérer quoi ? une base de données ? Un site ?

Une fois que tu auras clarifier ces points, tu pourras surement y voir un peu plus clair et on pourra parler de framework

(framework pour appli mobile, j'ai trouvé ça sur le web : http://www.crazyws.fr/dev/applis-et-scr … RZRI.html)

#6 Forum Général PHP » Slider et div dans une structure » 02-06-2016 15:31:13

rickways
Réponses : 1

Bonjour à tous,

je vous remercie par avance du temps que vous voudrez bien m'accorder pour solutionner la situation.

Il y a 2 ans de cela, j'ai essayé de refaire mon site en php5 en suivant des tutos, et j'avais réussi à obtenir une page avec des blocs les uns à coté des autres qui s'adaptent donc à la largeur de l'écran.

Le CSS définit la position des blocs, les un par rapport aux autres, voir code CSS plus bas.

La page se trouve ici http://www.lespoetes.net/accueil7.php

Tout se passe bien. Le problème est survenu lorsque j'ai voulu insérer un slider d'image à l'intérieur de mon p'tit bloc
(slider visible ici juste avec le code nécéssaire : http://www.lespoetes.net/accueil7BIS.php)

Lorsque j'ajoute ce code, le bloc galerie d'art répète l'entête du bloc, je n'arrive pas à m'en sortir,


si je supprime les div du slider, il n'y a soit plus d'image soit plus de slide...

Merci d'avance pour vos conseils.

CODE PHP DE LA PAGE


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "[url]http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd[/url]">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<!-- Meta pour forcer les téléphone à respecter la taille de l'écran -->
  <meta name="viewport" content="width=device-width" />

    <link rel="icon" href="favicon.ico" />
    <link rel="stylesheet" href="style7.css">
<!-- Insertion de JQUERY et JSSOR -->    
    <script type='text/javascript' src='js/jquery-1.11.1.min.js'></script>
    <script src="js/jssor.slider.mini.js"></script>
    <script>
      jQuery(document).ready(function ($) {
        var options = { $AutoPlay: true };
        var jssor_slider1 = new $JssorSlider$('slider1_container', options);
      });
    </script>
 
    <!--[if lt IE 9]>
        <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
        <![endif]-->
    <title>Lespoetes.net - La po&eacute;sie sur internet</title>
  </head>

  <!--[if IE 6 ]><body class="ie6 old_ie"><![endif]-->
    <!--[if IE 7 ]><body class="ie7 old_ie"><![endif]-->
    <!--[if IE 8 ]><body class="ie8"><![endif]-->
    <!--[if IE 9 ]><body class="ie9"><![endif]-->
    <!--[if !IE]><!--><body><!--<![endif]-->
    <div id="bloc_page">
      <header>
        <div id="titre_principal">
          <img src="images7/logo2.png" alt="lespoetes.net" id="logo" />
           
          <div id="pub">
          <?php include "publicites/googleutf8.php";?>
          </div>
         
        </div>
       
                <nav>
                    <ul>
                        <li><a href="#">Accueil</a></li>
                        <li><a href="#">Po&egrave;mes</a></li>
                        <li><a href="#">Arts Visuels</a></li>
            <li><a href="#">Artistes</a></li>
            <li><a href="#">Forum</a></li>
                    </ul>
                </nav>
      </header>
     
      <section id="inline-table">
        <div id="derniersposts" class="bigbox">
          <h1>Les derniers po&egrave;mes re&ccedil;us</h1>
        <?
        include ("includeaccueil7/lesdernierspoemesrecus.php");
        ?>
        </div>
        <div id="artistedujour" class="box">
          <h1>Artiste du jour <img src="images7/icopointinterrogation.png" alt="Question" height="15" title="Pour &ecirc;tre &eacute;lu artiste du jour, vous devez &ecirc;tre un membre actif du site &#013(S'être connecté dans les 30 derniers jours) &#013et avoir de la chance (tirage au sort)"/></h1>
        <?
        include ("includeaccueil7/artistedujour.php");
        ?>
        </div>
       
       
        <div id="artistedhierdujour" class="box">
          <h1>Artistes c&eacute;l&egrave;bres</h1>
        <?
        include ("includeaccueil7/artistescelebres.php");
        ?>
        </div>     

        <div id="galeriedart" class="box">
          <h1>Galerie d'art </h1>
        <?
        include ("includeaccueil7/galeriedart.php");
        ?>
        </div>
             
        <div id="Illustrations" class="box">
          <h1>Illustrations</h1>
        <?
        include ("includeaccueil7/illustrations.php");
        ?>
        </div> 
       
        <div id="chat" class="bigbox">
          <h1>Discussions en direct, le chat :</h1>
        <?
        include ("includeaccueil7/lesdernieresinterpretations.php");
        include ("includeaccueil7/chat7.php");
        ?>
        </div>       
       
        <div id="livrecdadecouvrir" class="box">
            <h1>Livre - CD à découvrir</h1>
        <?
        include ("includeaccueil7/livrecdadecouvrir.php");
        ?>
        </div>
      </section>

      <br />
     
        <footer>

            </footer>
    </div>
  </body>
</html>
 

CODE PHP DE L'INCLUDE GALERIE D'ART


<!-- galerie d'art -->
<div id="slider1_container" style="position: relative; top: 0px; left: 0px; width: 100%; height: 100%;">
    <!-- Slides Container -->
    <div u="slides" style="cursor: move; position: absolute; overflow: hidden; width: 100%; height: 100%;">
<?php
$sql = '
SELECT *
FROM galeriedart
WHERE validtableau=1
ORDER by idtableau DESC
LIMIT 5
'
;
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
while ($list = mysql_fetch_array ($req))
{
$idtableau = $list['idtableau'];
$titretableau= $list['titretableau'];
$lientableau = $list['lientableau'];
$auteurtableau = $list['auteurtableau'];

echo'
    <div id="tableaux" style="position: relative; top: 0px; left: 0px; width: 100%; height: 100%;">
    <a href="gdatableau.php?idtableau='
.$idtableau.'">
    <img u="image" src="upload/gda/mini'
.$lientableau.'" alt="Création de la galerie d\'art">
    </a>
    </div>
    '
;
}
?>
    </div>
</div>
 


CODE CSS


/* Eléments principaux de la page */
body
{
  background: url('images7/background.png');
  font-family: 'Trebuchet MS', Arial, Sans-Serif;
  color: #333333;
  margin:0px;
}

#bloc_page
{
  margin: auto;
}

footer h1, nav a
{
  font-family: 'Trebuchet MS', Arial, Sans-Serif;
  font-size: 1.0em;
  font-weight: normal;
  text-transform: uppercase;
}

/* header */

header
{
  background: url('images7/backgroundheader.png') repeat-x top;
}

#titre_principal
{
  display: inline-block;
  padding:0px;
  margin:0px;
}

#pub
{
  display: inline-block;
  margin-bottom: 0px;
  margin-left: 30px;
}

header h1
{
  font-family: 'Trebuchet MS', Arial, Sans-Serif;
  font-size: 1.6em;
  font-weight: bold;
  text-transform: uppercase;
 
}

#logo, header h1
{
  display: inline-block;
  margin-bottom: 0px;

}

header h2
{
  font-size: 1.4em;
  margin-top: 0px;
  margin-bottom: 0px;
  font-weight: normal;

 
}

/* Navigation */
nav
{
  display: block;
  text-align: left;
  background: url('images7/backgroundmenu.png');
  height:30px;
 
}

nav ul
{
  list-style-type: none;
}

nav li
{
  display: inline-block;
  margin-right: 15px;
}

nav a
{
    font-size: 0.9em;
    color: #181818;
    padding-bottom: 1px;
    text-decoration: none;
}

nav a:hover
{
    color: #760001;
    border-bottom: 3px solid #760001;
}

/* Contenu de la page */


.box {
  vertical-align:top;
  height:250px;
  width:200px;
  text-align:center;
  background-color: #F0F7EF;
  margin-top:30px;
  margin-left:2%;
  margin-right:2%;
}
.box:hover {background:white;}

.box .banniere_description {
    background-color: #CFCFC9;
  line-height:30px;
}
.box h1 {
    background: url('images7/backgroundmenu.png');
  margin:0;
  font-size: 1.0em;
  font-weight: bold;
  text-transform: uppercase;
  line-height:30px;
}
/* exemple inline-table */
#inline-table
{
text-align:center;
}

#inline-table .box {
    display:inline-table;
}
#inline-table .box h1,
#inline-table .box .banniere_description {
  display:table-row;
}
#inline-table .box .img{
  vertical-align:middle;
  display:table-cell;
  height:100%;
}

#inline-table  img {
  max-height:150px;
  max-width:150px;
}

#inline-table .bigbox {
    display:inline-table;
}

/* Essai pour la box derniers envois sur le site inline-table */

.bigbox {
  vertical-align:top;
  height:250px;
  min-width:400px;
  max-width:500px;
  text-align:left;
  background-color: #F0F7EF;
  margin-top:30px;
  margin-left:2%;
  margin-right:2%;
}
.bigbox:hover {background:white;}

.bigbox h1 {
    background: url('images7/backgroundmenu.png');
  margin:0;
  font-size: 1.0em;
  font-weight: bold;
  text-align:center;
  text-transform: uppercase;
  line-height:30px;
}

.bigbox ul
{
    list-style-type: none;
  padding:0px;
  }

.bigbox li
{
    font-size: 0.8em;
  padding-left: 10px;
  padding-right: 10px;
}

/* Liens */
.bigbox a {
  color: black;
  text-decoration: none;
}
.bigbox a:hover, a:focus {
  color: #C0C0C0;
}
.bigbox a img {
  border: none; /* -> 10 */
}

/* --- Ajout de style : tooltip info bulle extrait de poème --- */

a.tooltip em {
    display:none;
   
}
a.tooltip:hover {
    border: 0;
    position: relative;
        z-index: 500;
    text-decoration: none;
}
a.tooltip:hover em {
    display: block;
    position: absolute;
    top: 20px;
    left: 80px;
    padding: 5px;
    color: #000;
    border: 2px solid #000000;
    background: #ffffff;
    width:300px;
}
a.tooltip:hover em span {
    position: absolute;
    top: -7px;
    left: 25px;
    height: 7px;
    width: 11px;
    color: url(infobulletop00.gif);
    margin:0;
    padding: 0;
    border: 0;
}

/* Nouvelles règles si la fenêtre fait au plus 1024px de large */
@media all and (max-width: 1024px)
{
    #pub
    {
        display: none;
  }
}
/* Nouvelles règles si la fenêtre fait au plus 600px de large */
@media all and (max-width: 600px)
{

  .bigbox {
  vertical-align:top;
  height:250px;
  min-width:200px;
  max-width:300px;
  text-align:left;
  background-color: #F0F7EF;
  margin-top:30px;
  margin-left:2%;
  margin-right:2%;
          }

  nav
  {
  display: none;
  }
 
}
 

#7 Re : Javascript » Afficher / cacher une div (Présente sur plusieurs pages) » 17-05-2011 22:21:10

Bonjour Pierrot, merci pour votre commentaire.
Si vous êtes disponible je vous laisse refaire mon petit site en ajax, ce sera beaucoup plus simple pour moi, vous avez raison...

A chacun son rythme... l'important c'est de se faire plaisir, non ?

Bon sinon, merci j'ai réussi à l'arrache (car je n'arrivais pas à faire un setcookie dans un onclick, j'ai été obligé de faire une popup pour lancer setcookie sur une autre page, un vrai travail de débutant, lol)

#10 Re : Javascript » Afficher / cacher une div (Présente sur plusieurs pages) » 17-05-2011 22:21:10

Oui, c'est bien le problème

exemple :
je suis sur la page d'accueil (index.php), mon chat s'affiche (affichage par défaut), je clique sur le lien masquer, et le chat disparait.
Je me rend sur la page poèmes (poeme.php), et mon chat est de nouveau affiché (puisque c'est par défaut et sur une autre page.

Je voudrais que le choix du visiteur soit sauvegardé en quelque sorte !

Merci déjà pour l'intérêt porté sur le problème, et désolé pour le manque de clarté, j'espère vous éclairer...

#11 Javascript » Afficher / cacher une div (Présente sur plusieurs pages) » 17-05-2011 22:21:10

rickways
Réponses : 14

Bonjour,
Sur mon site, il y a une div qui contient le chat du site.
Je voudrais que les personnes qui le souhaitent puisse cacher cette div.
J'y arrive très bien sur une page en utilisant du javascript :
[c]function visibilite(thingId)
{
var targetElement;
targetElement = document.getElementById(thingId) ;
if (targetElement.style.display == "none")
{
targetElement.style.display = "" ;
} else {
targetElement.style.display = "none" ;
}
}[/c]

Et puis sur ma page
[c]<a href="javascript:visibilite('chat');">afficher/masquer</a>
<div id="chat" style="display:;">
[/c]


Maintenant le problème, le code des pages suivantes de mon site, réécrive ce code, et du coup le chat qui disparaissait réaparait.... Que faire ?

#12 Re : MySQL, PostgreSQL, etc... » Deux requetes, une réponse mais avec des champs différents. » 18-01-2010 13:29:41

Bonjour Kris...

Il y a en effet surement des défauts de conceptions et j'essaie de les améliorer avec le temps.
Néanmoins chaque table étaient assez différentes au départ et avec le temps elles se sont uniformisées.

Mais ces trois tables me semblent réellement devoir être séparées, puisque chaque section à ces spécificités (deux à trois colonnes différentes)

Penses tu qu'elles pourraient être regroupées en laissant des colonnes inutiles pour certains types d'envois ?

Pour être plus précis:

Table thème du mois:
- Tout est commun, sauf une colonne THEME
Table poésie et peinture
- Tout est commun sauf une colonne catégorie (différentes du principe du thème)
Table poésie d'hier:
- Tout est commun sauf une colonne SOURCE (identifiant les recueils dans lesquels on trouve le poème)

Si cela est possible pourquoi pas, serait-ce une meilleur idée.

En sachant que chaque section est différente sur le site et qu'il n'y a que sur la page d'accueil que je cherche à regrouper tous les nouveaux poèmes ?

Merci d'avance pour tes conseils...


ERIC

#13 Re : MySQL, PostgreSQL, etc... » [Résolu] Récupérer des tas de données souvent » 15-01-2010 09:59:50

Je ne sais pas si je suis hors sujet, mais au niveau conception, si tu as prévu d'avoir beaucoup d'utilisateur, je créérai un affichage à l'aide de javascript dans lequel on sélection la première lettre du pseudo par exemple, en incluant aussi un moteur de recherche où l'on peut taper les 3 premières lettres où le pseudo... ensuite affichage des résultats en fonction du nombre d'inscrit que tu as, soit par limit de 10 sur plusieurs page, soit par limit de 50 à toi de voir...

Voilà pour l'idée, maintenant reste à mettre en oeuvre l'aspect prog...

#14 Re : MySQL, PostgreSQL, etc... » Deux requetes, une réponse mais avec des champs différents. » 18-01-2010 13:29:41

Pour le moment je fais une recherche sur trois tables:

Une table de 1489 poèmes (Avec un limit de 10)
une autre de 3247 poèmes (Avec un limit de 20)
et une dernière de 351 poèmes.(Avec un limit de 5)
Le tout avec un limit de 15.

ça marche parfaitement (surement parce qu'il n'y a pas beaucoup d'enregistrement effectivement), néanmoins je ne saurais pas faire autrement pour le moment puisque je vous avais demandé de l'aide à ce sujet.

Espérons que cela dure....

#15 Re : MySQL, PostgreSQL, etc... » Deux requetes, une réponse mais avec des champs différents. » 18-01-2010 13:29:41

Merci pour vos propositions et votre aide.

Cela marche parfaitement.

Pour ce qui est des limit... j'ai fait plus compliqué que cela, mais c'est uniquement par rapport aux différentes sections.
Pour chacune des sections j'ai choisi des limit relatives aux nombres d'envoi par jour....

et j'ai même rajouter un deuxième union (avec une autre table), et ça marche parfaitement, j'ai compris le truc je pense....

Merci encore.

ERIC

#16 Re : MySQL, PostgreSQL, etc... » Deux requetes, une réponse mais avec des champs différents. » 18-01-2010 13:29:41

Ok pour cette remarque, en fait j'ai juste changer d'avis... je suis passé à 14 résultats.

Par contre information pour ceux que ça intéresse, les résultats obtenus sont donc 7 résultats de chaque table classés par date.

Je me demande si en supprimant la clause limit au début et en l'ajoutant après à tout le tableau on obtiendrait surement les derniers 14 résultats (et non moitié, moitié)

Je testerais...

#17 Re : MySQL, PostgreSQL, etc... » Deux requetes, une réponse mais avec des champs différents. » 18-01-2010 13:29:41

Pour ce qui est des limites à l'intérieur des requêtes, c'est que le nombre de résultats pourrait dépasser les 5000 donc elles me sont indispensables, et effectivement cela marche, pas d'erreur Sql

#18 Re : MySQL, PostgreSQL, etc... » Deux requetes, une réponse mais avec des champs différents. » 18-01-2010 13:29:41

Merci maskime,

cette solution marche parfaitement, avec un petit if et else if ensuite, on obtient de très bons résultats...

#19 Re : MySQL, PostgreSQL, etc... » Deux requetes, une réponse mais avec des champs différents. » 18-01-2010 13:29:41

Au niveau de la requête je pense avoir à peu près trouvé, mais le problème c'est que je n'arrive pas à différencier l'url en fonction de la provenance de la table

(SELECT id,titre,poeme,auteur,datepoeme,valid
FROM poesieetpeinture
WHERE valid=1
ORDER by datepoeme DESC
LIMIT 7)
UNION
(SELECT id,titre,poeme,auteur,datedupoeme,valid 
FROM themedumois
WHERE valid=1
ORDER by datedupoeme DESC
LIMIT 7)
ORDER by datepoeme DESC

#20 MySQL, PostgreSQL, etc... » Deux requetes, une réponse mais avec des champs différents. » 18-01-2010 13:29:41

rickways
Réponses : 23

Bonjour,

Je viens demander à l'aide !!!

J'ai un souci pour lequel je n'ai pas vraiment d'idée de résolutions.

J'ai donc deux tables différentes contenant toutes les deux des poèmes:

- Une table poesieetpeinture (champs: id, titre, poeme, auteur, datepoeme,...)
- Une table themedumois (champs: id, titre, poeme, auteur, datedupoeme, ...)

J'aimerais afficher les 10 derniers poèmes reçus quelque soit la table de laquelle ils proviennent:
par exemple on pourrait avoir le 5 premiers poèmes viennet de poesieetpeinture, puis 3 de themedumois, puis 2 de poesieetpeinture

Pour chaque résultat, il faut que l'url de redirection vers le poème soit différente :
pour les résultats de poesieetpeinture, l'url sera plpoeme.php?id=, et pour themedumois, l'url ser tdmpoeme.php?id=

Pour le moment je suis capable de faire les deux requetes séparement et de les afficher séparément, mais impossible de les afficher dans un seul tableau.

MERCI POUR VOS CONSEILS

Eric

#21 Re : MySQL, PostgreSQL, etc... » Faire une jointure avec une troisième table » 12-09-2009 08:10:35

Je ne critique pas la rigueur et la précision, je trouve juste que en fonction de mes besoins et de mes compétences, c'est un peu trop décalé
(en apprentissage on parle de décalage optimal, je ne sais pas si tu connais)

Pour ce qui est de tes infos, elles sont franchement les bienvenues, elles me permettent de réfléchir à des questions que je ne m'étais pas encore posées, et comme je te disais, il me faudrait de l'aide pour arriver à analyser ma bdd, puis à l'adapter à une nouvelle conception (si c'est réalisable)

Merci encore pour ton aide...

#22 Re : MySQL, PostgreSQL, etc... » Faire une jointure avec une troisième table » 12-09-2009 08:10:35

Coucou Kris,

lorsque je te lis, je me demande toujours si je suis bien sur PHPDEBUTANT ou AILLEURS, mais ce n'est pas déplaisant de lire des choses aussi précises.

Ma bdd a été faite à coup d'essai erreur, d'amélioration avec des ajouts manuels pour récupérer les bétises à hauteur de 1000 fois écrire le même truc sans savoir que je pouvais utiliser update pour un champs, etc...etc...

Je suis un vrai newbie qui n'a que très peu de connaissance et pas mal de bidouille....

Pour ce qui est de la colonne commentaires2.auteurpoeme, elle mes sert normalement à pouvoir récupérer dans la table pdf_membre le mail de l'auteur (car j'envoie automatiquement un mail à l'auteur du poème)

Mais effectivement, je peux y accéder autrement....

Il va donc falloir que je me penche sur les MPD, mais je ne crois pas que j'aurais le temps d'être assez callé dans ce domaine pour programmer ce que j'ai à faire...

Avant que je lance la nouvelle version du site, il est peut-être temps d'analyser ma bdd, mais là je vais avoir besoin d'un gros coup de main...

#23 Re : MySQL, PostgreSQL, etc... » Faire une jointure avec une troisième table » 12-09-2009 08:10:35

Petite précision:

On a donc entre table 1 et 2 une jointure à partir de themedumois.id=commentaires2.idpoeme ; et une jointure entre les trois table avec themedumois.auteur=commentaires2.auteurpoeme=pdf_membre.pseudo

#24 Re : MySQL, PostgreSQL, etc... » Faire une jointure avec une troisième table » 12-09-2009 08:10:35

Je vois que je n'ai pas été assez clair (car j'avais tout dit dans le premier message)

Table 1: themedumois (table contenant tous les poèmes envoyés par les membres)
Champs: id, titre, poeme, auteur, datedupoeme, theme, miseenpage, liencomment, valid

Table 2: commentaires2 (table contenant les commentaires laissés sur les poèmes, avec comme lien idpoeme correspondant à id de la table themedumois du poème concerné)
Champs: id, idpoeme, auteurpoeme, tablepoeme (ce champs permet d'indiquer si il s'agit de la table themedumois ou d'une autre), nom, auteur, email, texte, date

Table 3 pdf_membre (contenant tous les membres du site)
champs: idmembre, pseudo, passe, mail, confirm, nom, prenom, pays, naissance, site, presentation, citation, dateinscription, photo, statut, validdn


Je désire donc faire une dernière jointure, à partir du pseudo du membre qui a écrit le poème avec la table 3 pdf_membre, afin de vérifier que son statut est différent de 8

#25 Re : Forum Général PHP » contrôle formulaire avec if else » 11-09-2009 04:53:51

Et un truc dans le style ?

if(!empty($_POST)){
//
// Debug
//
echo '<pre>';

echo '</pre>';
//
// Récupération normale des informations
//
$missing_fields = array();
if(empty($_POST['name'])){
$missing_fields[] = '"Name"';
}
if(empty($_POST['Subject'])){
$missing_fields[] = '"Sujet"';
}
if(empty($_POST['email'])){
$missing_fields[] = '"Vous devez remplir le champs e-mail"';
}

if(empty($_POST['email2'])){
$missing_fields[] = '"Vous devez confirmer votre e-mail"';
}

if(empty($_POST['message'])){
$missing_fields[] = '"Vous devez écrire un message"';
}
if(empty($missing_fields)){
echo 'Tous les champs ont été renseignés<br>';
#
mail($email, $subject, $message, "From: $name < $email >");

echo 'Votre mail a été envoyé';
}
else{
echo '<b>Les champs suivants doivent être remplis : <b>';
echo implode('<br />', $missing_fields);
}
echo '<br /><br />';
}
?>

Pied de page des forums

Propulsé par FluxBB