Version complète: sur le forum Webmaster Hub : ordonner une bdd
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
vero
bonjour

dans ma base les enregistrements sont publier dans l'ordre

$sql .= "ORDER BY date1 DESC ";

or je voudrai que le premier enregistrement soir la date du jour en cours et les suivants les jours suivants et que l'on ne voit pas les enregistrements qui ont une date depassée

qu'en pensez vous pour une debutante complet...


cordialement
Ganf
WHERE date1 > now ORDER BY date1 ASC ?
Anonymus
En fait, cela dépend de beaucoup de choses, notamment de la facon dont est définie ton champ date1, et aussi du reste de la requète.

Pourrais tu nous en dire plus à ce sujet ?

merci.
vero
Voila un extrait du script

*******************************************************************
if ($connecte && $rub == 'voir') {
$nbpp = 5; // Nombre de messages par page




if (!isset($deb)) $deb = 0;
$sql = "SELECT DATE_FORMAT(date, \"%d-%m %H:%i\") as jour, nom, email, commentaire, texte, date1, nomclub, lien, ville, adresse, titre ";
$sql .= "FROM soiree ";
$sql .= "ORDER BY date1 ASC, code DESC ";
$sql .= "LIMIT ".$deb.",".$nbpp;
$resultat2 = mysql_db_query($cfgBase, $sql);
$nb_enr = mysql_num_rows($resultat2);
DebutTableau("#FFFFFF", "1", "0", "100%");
DebutTableau("#354785", "15", "0", "100%");

********************************************************************
pour le champs date1 c'est un champs "varchar" mais qui est toujours saisi sous la forme: 10/09/2004

voila j'attend vos propositions
Anonymus
Bonjour,

pour la condition if :
CODE
if ($connecte && $rub == 'voir') {

Si $connecte est FALSE et $rub=='voir' est FALSE alors la condition s'applique :
if (FALSE && FALSE) => if (TRUE).

Il t'aurait fallut travailler avec des dates en 'timestamp'. C'est la meilleure facon de ne pas se tromper dans les dates même si ca parait un peu plus ardu au début.
Donc, pour éviter ce genre d'aventures :
CODE
$array=array("10/09/2004","10/09/2003","09/09/2004","10/10/2004","31/12/2004","01/01/2005");
sort($array);
foreach($array as $k => $v)
    echo "<br>".$k."-".$v;

il faut recomposer les dates. Pour cela, on va rester dans mysql. Ca donnera une requète comme ceci :
CODE
select   date_format(concat(SUBSTRING(date1,7,4),SUBSTRING(date1,4,2),SUBSTRING(date1,1,2)),"%Y%m%d") as good_date
from table
order by good_date

que tu peux composer/décomposer à loisirs.
vero
merci pour ta reponse mais elle depasse de loin mes competences ou dois je mettre les codes que tu donnes...
vero
bonjour,


vous m'avez abandonnee....avec mon probleme


à l'aide

veronique
Anonymus
Au lieu de :
CODE
$sql = "SELECT DATE_FORMAT(date, \"%d-%m %H:%i\") as jour, nom, email, commentaire, texte, date1, nomclub, lien, ville, adresse, titre ";
$sql .= "FROM soiree ";
$sql .= "ORDER BY date1 ASC, code DESC ";
$sql .= "LIMIT ".$deb.",".$nbpp;



Tu mets :
CODE
$sql = "SELECT date_format(concat(SUBSTRING(date1,7,4),SUBSTRING(date1,4,2),SUBSTRING(date1,1,2)),"%Y%m%d") as temp_jour, nom, email, commentaire, texte, date1, nomclub, lien, ville, adresse, titre ";
$sql .= "FROM soiree ";
$sql .= "ORDER BY temp_jour desc, code DESC ";
$sql .= "LIMIT ".$deb.",".$nbpp;

Et tu nous dis si ca marche wink.gif

Anonymus.
vero
bonsoir,

helas ca ne marche pas voila le message d'erreur


Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING



merci
Anonymus
On recommence sad.gif

CODE
$sql = "SELECT date_format(concat(SUBSTRING(date1,7,4),SUBSTRING(date1,4,2),SUBSTRING(date1,1,2)),'%Y%m%d') as temp_jour, nom, email, commentaire, texte, date1, nomclub, lien, ville, adresse, titre ";
$sql .= "FROM soiree ";
$sql .= "ORDER BY temp_jour desc, code DESC ";
$sql .= "LIMIT ".$deb.",".$nbpp;
vero
toujours en erreur cette fois


Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource

Ca affiche la base est vide en ce moment donc elle trouve pas les enregistrements


merci
Anonymus
Alors tu enleves les lignes, et tu essaies juste ceci :
CODE
$sql = "SELECT date_format(concat(SUBSTRING(date1,7,4),SUBSTRING(date1,4,2),SUBSTRING(date1,1,2)),'%Y%m%d') as temp_jour, nom, email, commentaire, texte, date1, nomclub, lien, ville, adresse, titre ";
$sql .= "FROM soiree ";
// $sql .= "ORDER BY temp_jour desc, code DESC ";
// $sql .= "LIMIT ".$deb.",".$nbpp;
vero
meme message d'erreur

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource


merci
Anonymus
Tu peux me donner le résultat de ceci ?
CODE
$sql="SELECT date, date1 FROM soiree";
vero
j'ai remplacer tout le paragraphe par ta ligne et le resultat est


Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource
Anonymus
En fait, il faut remplacer la ligne par

$result = mysql_query("SELECT date, date1 FROM soiree");
while ($row = mysql_fetch_array($result))echo"<br>-".$row['date']."--".$row['date1']."-;

et là tu donnes le résultat qui sort à l'écran. C'est pour savoir quel est le format de sortie des champs date et date1.
vero
message suivant



Parse error: parse error, unexpected T_STRING, expecting ',' or ';'
Anonymus
recommence avec :

$result = mysql_query("SELECT date, date1 FROM soiree");
while ($row = mysql_fetch_array($result))echo"<br>-".$row['date']."--".$row['date1']."-";
vero
message erreur

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource


2 fois sur 2 numeros de ligne different
Anonymus
Es tu sure que la connection sql est bonne ?

C'est en local, ou sur un serveur ?
vero
c'est sur serveur et quand je recharge l'ancien code tout fonctionne normalement sans le bon tri bien entendu

peut on en discuter sur le chat ....
Anonymus
J'y suis...

CODE
$sql="select date_format(concat(SUBSTRING(date1,7,4),SUBSTRING(date1,4,2),SUBSTRING(date1,1,2)),'%Y%m%d') as good_date,
date,nom from soiree order by good_date";
vero
je suis toujours bloquée ...

si quelqu un a une idee elle sera le bienvenue...


merci
Anonymus
Bon...
J'ai essayé, et le script marche chez moi.

Pour le faire marcher, j'ai mis :

if ( !($connecte = mysql_connect('localhost', 'root', '')) )
et
$cfgBase='mabase'.

Sinon, j'ai bien réussi à insérer des données, et à les afficher.

Donc :
Jettes un oeil sur les variables que tu affiches dans la fonction mysql_connect, peut etre une erreur à ce niveau.
Jettes un oeil à la variable $cfgBase, qui doit être le nom de ta base de données, et non de la table wink.gif
Jettes un oeil aux tables présentes dans ta base, il y a peut etre une erreur d'orthographe dans celles ci.

Anonymus.
vero
bonsoir


si les parametres de connexions etaient faux la base ne fonctionnerait pas avec une autre sorte de tri or aujourd hui elle est en ligne at elle fonctionne.

fais moi signe si tu es la ce soir
vero
bravo,


tu as raison j'ai trouvé l'erreur dans le nom de la table soireeclub au lieu de soiree
et ca marche...

merci pour ta gentillesse et le temps que tu m'a consacré.
Anonymus
Donc, ca devrait donner ::
CODE
$sql ="SELECT date1,max(date_format(concat(SUBSTRING(date1,7,4),SUBSTRING(date1,4,2),SUBSTRING(date1,1,2)),'%Y%m%d')) as temp_jour, nom, email, commentaire, texte, date1, nomclub, lien, ville, adresse, titre
from soireeclub where concat(substring(date1,7,4),SUBSTRING(date1,4,2),SUBSTRING(date1,1,2))>=concat(substring(now(),1,4),substring(now(),6,2),substring(now(),9,2)) group by date1 order by date1;";


à peu près...
vero
bonsoir,


voila ca elimine bien la date du 21/09/2004 mais le premier enregistrement affiché est le 16/10/2004 au lieu du 24/09/2004


merci
Anonymus
Mouais... bien sûr.

Parce que tu as des dates dans le futur ?? (zut!)

Bon... Ca attendra lundi, je crois.
vero
oui je pense qu'il faudrait utiliser une condition pour une fois trié seules les dates à partir du jour en cours soient publiees
vero
super j'ai trouvé grace à ton aide e t ca marche bien.
je passe au formulaire de modification de données et la


j'ai l'erreur suivante : Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource

à l'affichage de mon formulaire

CITATION
if ($connecte && ($rub == 'signer' || $rub == ''))
$requete = "SELECT `code`,`date1`,`nom`,`email`,`titre`,`commentaire`,`texte`,`date`,`nomclub`,`lien`,`ville`,`adresse`,`mois` FROM `soireeclub` WHERE 1 AND `code` = 8 LIMIT 0, 30
" ;
$result =mysql_query($requete) ;
while ($data = mysql_fetch_array($result))
{

echo "<CENTER>\n";
  DebutTableau("#FFFFFF", "1", "0", "");
    DebutTableau("#354785", "15", "0", "100%");

echo "<style>\n";

echo ".livre { text-decoration: none; font: bold; color: rgb(255,255,255) }\n";
echo " </style>\n";
    echo "<FORM METHOD='POST' ACTION='indexsoireeclub.php3?rub=ajouter'> \n";
       echo "<TABLE BORDER=0>\n";
   
   echo " <TR><TD CLASS='livre'>&nbsp;<B>Nom / Pseudo</B>&nbsp;</TD>";
   echo "<TD>&nbsp;<INPUT TYPE='text' NAME='ztNom' VALUE=\"".$data['Nom']."\">&nbsp;</TD>";

   echo "<TD ROWSPAN='2'>&nbsp;<INPUT TYPE='submit' VALUE=' Ok '>&nbsp;</TD></TR>";
    echo "<TR><TD CLASS='livre'>&nbsp;E-mail (opt.)&nbsp;</TD>";
   echo "<TD>&nbsp;<INPUT TYPE='text' NAME='ztEmail' VALUE=\"".$data[Email]."\">&nbsp;</TD></TR>";

   echo "<TR><TD CLASS='livre'>&nbsp;<B>Lien du site</B>&nbsp;</TD>";
   echo "<TD>&nbsp;<INPUT TYPE='text' NAME='ztDate1' VALUE=\"".$data[Date1]."\">&nbsp;</TD>";

   echo " <TR><TD CLASS='livre'>&nbsp;<B>Titre</B>&nbsp;</TD>";
   echo "<TD>&nbsp;<INPUT TYPE='text' NAME='ztTitre' VALUE=\"".$data[Titre]."\">&nbsp;</TD>";

    echo "<TR><TD CLASS='livre'>&nbsp;<B>Commentaire</B>&nbsp;";
   echo "</TD><TD COLSPAN='3'>&nbsp;<TEXTAREA NAME='ztComment' ROWS='5' COLS='25' SIZE='10'  WRAP='virtual'>".$data[Comment]."</TEXTAREA>&nbsp;</TD></TR>";

echo "<TR><TD CLASS='livre'>&nbsp;<B>Commentaire1</B>&nbsp;";
   echo "</TD><TD COLSPAN='3'>&nbsp;<TEXTAREA NAME='ztTexte' ROWS='5' COLS='25' SIZE='10'  WRAP='virtual'>".$data[Texte]."</TEXTAREA>&nbsp;</TD></TR>";

   echo "<TR><TD CLASS='livre'>&nbsp;<B>Ville</B>&nbsp;</TD>";
   echo "<TD>&nbsp;<INPUT TYPE='text' NAME='ztNomclub' VALUE=\"".$data[Nomclub]."\">&nbsp;</TD>";

   echo "<TR><TD CLASS='livre'>&nbsp;<B>Date de la soirée</B>&nbsp;</TD>";
   echo "<TD>&nbsp;<INPUT TYPE='text' NAME='ztLien' VALUE=\"".$data[Lien]."\">&nbsp;</TD>";

   echo "<TR><TD CLASS='livre'>&nbsp;<B>Mois de la soirée en chiffre</B>&nbsp;</TD>";
   echo "<TD>&nbsp;<INPUT TYPE='text' NAME='ztMois' VALUE=\"".$data[Mois]."\">&nbsp;</TD>";


   echo "<TR><TD CLASS='livre'>&nbsp;<B>Nom du club</B>&nbsp;</TD>";
   echo "<TD>&nbsp;<INPUT TYPE='text' NAME='ztVille' VALUE=\"".$data[Ville]."\">&nbsp;</TD>";


echo "<TR><TD CLASS='livre'>&nbsp;<B>Adresse du club</B>&nbsp;";
   echo "</TD><TD COLSPAN='3'>&nbsp;<TEXTAREA NAME='ztAdresse' ROWS='5' COLS='25' SIZE='10'  WRAP='virtual'>".$data[Adresse]."</TEXTAREA>&nbsp;</TD></TR>";

   echo "</FORM>\n";
   echo "</TABLE>";
     
    FinTableau();
  FinTableau();
  echo "</CENTER>\n";
  }


merci pour votre aide
Anonymus
Donc, idem. Tu vérifies le nom des champs, le nom de la table, ainsi que le nom du champ 'code', que tu as placé dans la clause 'where'.
vero
pour la requete je l'ai prise dans phpadmin donc elle doit etre bonne quand au champs code (c'est le numero de l'enregistrement dans la base et la je veux l'enregistrement N°8) dans le formulaire.

Je vois pas ou est l'erreur...
Anonymus
Dans la même optique que les essais que l'on avait fait pour le premier problème, on va essayer ceci :

Tu remplaces tout le code que tu as mis plus haut par :
CODE
$requete = "SELECT `code`,`date1`,`nom`,`email`,`titre`,`commentaire`,`texte`,`date`,`nomclub`,`lie
n`,`ville`,`adresse`,`mois` FROM `soireeclub` WHERE 1 AND `code` = 8 LIMIT 0, 30
";
$result =mysql_query($requete);
$data = mysql_fetch_array($result);
echo"<br>-".$connecte."-";
echo"<br>-".$requete."-";
echo"<br>-".$result."-";
echo"<br>-".$data."-";
die("");

et tu postes le résultat wink.gif
vero
bonsoir voila le resultat

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL

Resource id #5-
-SELECT `code`,`date1`,`nom`,`email`,`titre`,`commentaire`,`texte`,`date`,`nomclub`,`lie n`,`ville`,`adresse`,`mois` FROM `soireeclub` WHERE 1 AND `code` = 8 LIMIT 0, 30 -


à toi de jouer
Anonymus
Par rapport à mon
CODE
echo"<br>-".$connecte."-";
echo"<br>-".$requete."-";
echo"<br>-".$result."-";
echo"<br>-".$data."-";
Il devrait y avoir au moins 8 tirets, hors tu en as mis 3. Il en manques..

le problème viendrait de la requète qui ne serait pas bonne.

Essaies ceci. Tu remplaces ta requète par celle ci :
CODE
select * from soireeclub


A.
vero
excuse j'ai pas fait attention aux tirets voila la reponse exacte



-Resource id #5-
-SELECT `code`,`date1`,`nom`,`email`,`titre`,`commentaire`,`texte`,`date`,`nomclub`,`lien`,`ville`,`adresse`,`mois` FROM `soireeclub` WHERE 1 AND `code` = 8 LIMIT 0, 30 -
--
--


qu'en penses tu
vero
quand je remplace ma requete j'ai


Warning: mysql_fetch_array(): supplied argument is not a valid MySQL

-Resource id #5-
-select * from soireeclub-
--
--
Anonymus
Le nom de ta table est nom ? Est ce bien soireeclub ?
vero
oui regarde je fais un copier coller de phpadmin


table soireeclub
Anonymus
Bien, bien. Et sans les apostrophes autour de la table ? (dans la requète)
vero
voila la requete que j'ai mis

$requete = "SELECT `code`,`date1`,`nom`,`email`,`titre`,`commentaire`,`texte`,`date`,`nomclub`,`lien`,`ville`,`adresse`,`mois` FROM soireeclub WHERE 1 AND `code` = 8 LIMIT 0, 30";

et le resultat

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL


-Resource id #5-
-SELECT `code`,`date1`,`nom`,`email`,`titre`,`commentaire`,`texte`,`date`,`nomclub`,`lien`,`ville`,`adresse`,`mois` FROM soireeclub WHERE 1 AND `code` = 8 LIMIT 0, 30-
--
--
Anonymus
Donnes nous l'ensemble des champs de la table soireeclub.
vero
les champs sont:


code
date1
nom
email
titre
commentaire
texte
date
nomclub
lien
ville
adresse
mois

voila...
vero
voila le script

CODE

<?php
function EmailOK($email)
{
return( ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'.
'@'.
'([-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]{2,}\.){1,3}'.
'[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]{2,3}$',
$email) );
}
//-----------------
// SOIREE
//-----------------
DebutTableau("#FFFFFF", "1", "0", "100%");
DebutTableau("#020350", "10", "0", "100%");
echo Titre("info soirées privées et clubs");
echo "<HR COLOR='5A6BA5' NOSHADE>\n";
$ok = true;
// Vérification de la connexion MySQL
if ( !($connecte = _AT_mysql_connect($cfgHote, $cfgUser, $cfgPass)) ) echo erreurServeurMySQL();
// ---------------------------------------------------------------------------
// Insérer dans la base une nouvelle soirée
// ---------------------------------------------------------------------------
if ($connecte && $rub == 'ajouter') {







$Nom = trim($ztNom);
$Email = trim($ztEmail);
$Titre = trim($ztTitre);
$Comment = trim($ztComment);
$Texte = trim($ztTexte);
$Date1 = trim($ztDate1);
$Nomclub = trim($ztNomclub);
$Lien = trim($ztLien);
$Ville = trim($ztVille);
$Adresse = trim($ztAdresse);
$Date = date("Y/m/d H:i");
$Mois = trim($ztMois);
if ($Nom == "" || $Comment == "") {
$ok = false;
$msg = "Les champs 'Nom' et 'Commentaire' sont obligatoires !";
} elseif ($Email != '' && !EmailOK($Email)) {
$ok = false;
$msg = "Adresse email invalide !";
}
if (!$ok) {
echo "<CENTER><A CLASS='erreur'>&nbsp;$msg&nbsp;</A></CENTER><BR>";
$rub = 'signer';
} else {

$liste_champs = 'date, nom, email, commentaire, texte, date1, nomclub, lien, ville, adresse, titre, mois';
$liste_valeurs = "'$Date', '$Nom', '$Email', '$Comment', '$Texte', '$Lien', '$Ville', '$Date1', '$Nomclub', '$Adresse', '$Titre', '$Mois'";

$sql = "INSERT INTO soireeclub ($liste_champs) VALUES ($liste_valeurs)";
$resultat = mysql_db_query($cfgBase, $sql);
$rub = 'voir';
}

}
// ---------------------------------------------------------------------------
// Saisie d'une soirée
// ---------------------------------------------------------------------------








if ($connecte && ($rub == 'signer' || $rub == '')) {



$requete ="SELECT `code`,`date1`,`nom`,`email`,`titre`,`commentaire`,`texte`,`date`,`nomclub`,`lien`,`ville`,`adresse`,`mois` FROM `soireeclub` WHERE 1 AND `code` = 8 LIMIT 0, 30";

$result =mysql_query($requete) ;
while ($data = mysql_fetch_array($result))










echo "<CENTER>\n";
DebutTableau("#FFFFFF", "1", "0", "");
DebutTableau("#354785", "15", "0", "100%");







echo "<style>\n";

echo ".livre { text-decoration: none; font: bold; color: rgb(255,255,255) }\n";
echo " </style>\n";




echo "<FORM METHOD='POST' ACTION='indexsoireeclub.php3?rub=ajouter'> \n";
echo "<TABLE BORDER=0>\n";

echo " <TR><TD CLASS='livre'>&nbsp;<B>Nom / Pseudo</B>&nbsp;</TD>";
echo "<TD>&nbsp;<INPUT TYPE='text' NAME='ztNom' VALUE=\"".$data['Nom']."\">&nbsp;</TD>";

echo "<TD ROWSPAN='2'>&nbsp;<INPUT TYPE='submit' VALUE=' Ok '>&nbsp;</TD></TR>";
echo "<TR><TD CLASS='livre'>&nbsp;E-mail (opt.)&nbsp;</TD>";
echo "<TD>&nbsp;<INPUT TYPE='text' NAME='ztEmail' VALUE=\"".$data[Email]."\">&nbsp;</TD></TR>";

echo "<TR><TD CLASS='livre'>&nbsp;<B>Lien du site</B>&nbsp;</TD>";
echo "<TD>&nbsp;<INPUT TYPE='text' NAME='ztDate1' VALUE=\"".$data[Date1]."\">&nbsp;</TD>";

echo " <TR><TD CLASS='livre'>&nbsp;<B>Titre</B>&nbsp;</TD>";
echo "<TD>&nbsp;<INPUT TYPE='text' NAME='ztTitre' VALUE=\"".$data[Titre]."\">&nbsp;</TD>";

echo "<TR><TD CLASS='livre'>&nbsp;<B>Commentaire</B>&nbsp;";
echo "</TD><TD COLSPAN='3'>&nbsp;<TEXTAREA NAME='ztComment' ROWS='5' COLS='25' SIZE='10' WRAP='virtual'>".$data[Comment]."</TEXTAREA>&nbsp;</TD></TR>";

echo "<TR><TD CLASS='livre'>&nbsp;<B>Commentaire1</B>&nbsp;";
echo "</TD><TD COLSPAN='3'>&nbsp;<TEXTAREA NAME='ztTexte' ROWS='5' COLS='25' SIZE='10' WRAP='virtual'>".$data[Texte]."</TEXTAREA>&nbsp;</TD></TR>";

echo "<TR><TD CLASS='livre'>&nbsp;<B>Ville</B>&nbsp;</TD>";
echo "<TD>&nbsp;<INPUT TYPE='text' NAME='ztNomclub' VALUE=\"".$data[Nomclub]."\">&nbsp;</TD>";

echo "<TR><TD CLASS='livre'>&nbsp;<B>Date de la soirée</B>&nbsp;</TD>";
echo "<TD>&nbsp;<INPUT TYPE='text' NAME='ztLien' VALUE=\"".$data[Lien]."\">&nbsp;</TD>";

echo "<TR><TD CLASS='livre'>&nbsp;<B>Mois de la soirée en chiffre</B>&nbsp;</TD>";
echo "<TD>&nbsp;<INPUT TYPE='text' NAME='ztMois' VALUE=\"".$data[Mois]."\">&nbsp;</TD>";


echo "<TR><TD CLASS='livre'>&nbsp;<B>Nom du club</B>&nbsp;</TD>";
echo "<TD>&nbsp;<INPUT TYPE='text' NAME='ztVille' VALUE=\"".$data[Ville]."\">&nbsp;</TD>";


echo "<TR><TD CLASS='livre'>&nbsp;<B>Adresse du club</B>&nbsp;";
echo "</TD><TD COLSPAN='3'>&nbsp;<TEXTAREA NAME='ztAdresse' ROWS='5' COLS='25' SIZE='10' WRAP='virtual'>".$data[Adresse]."</TEXTAREA>&nbsp;</TD></TR>";




echo "</FORM>\n";
echo "</TABLE>";

FinTableau();
FinTableau();
echo "</CENTER>\n";
}

FinTableau();
FinTableau();
?>
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.