Page 1 sur 1

comment extraire la gauche ou le millieu d'une variable

Posté : 01 oct. 2013, 03:22
par nettoyer
Bonjour
existe t il une fonction qui extrait d'une variable la gauche, le millieu ou la droite ...

J'ai la variable $date qui affiche 30-09-2013
je voudrais attribuer a la variable $datemois le 09 et à la variable $dateyear le 2013 etc
apres je vais reconstituer la date au bon format 0000-00-00

Pourquoi cette question ?, car je dois transformer la date 30-09-2013 en 2013-09-30 pour l'inserer dans ma base de donnée qui est au format date 0000-00-00

J'ai fouiller dans toutes les fonctions et je ne trouve rien qui corresponde http://php.net/manual/fr/book.strings.php
Merci de votre aide

Re: comment extraire la gauche ou le millieu d'une variable

Posté : 01 oct. 2013, 03:50
par nico44530
Salut,

Tu as regardé la fonction date(); http://php.net/manual/fr/function.date.php
Tu l'insère dans ta BDD :
$req = $connect->prepare('INSERT INTO table ("", "pseudo", "date_membre") VALUES ("", "$_POST['pseudo'], NOW())');
NOW() est la date actuelle du serveur
Il existe une fonction pour l'afficher dans la norme française : 00-00-0000
Aussi il n'est pas recommandé d'utiliser une variable $date qui est aussi un type de champs sql.

Re: comment extraire la gauche ou le millieu d'une variable

Posté : 01 oct. 2013, 05:36
par nettoyer
Merci de ta réponse
pour faire plus simple j'ai mis en conformité avec la BD les date arrivee et date départ, mais quand j'essaie d'inserer ces dates dans la BD

Parse error: syntax error, unexpected T_STRING in /homez.108/lambertt/www/test.php on line 348

J'ai tester avec des ' , des ", des . etc et rien n'y fait


<form action="" method="post">
<div>
<b>Réservez votre chambre</b><br/>

Date d'arrivée :
<input onClick="ds_sh(this);" id="arrivee" name="arrivee" value="<?php echo($arrivee); // date entree vide?>" style="cursor: text" />
<br />

Date de départ : <input onClick="ds_sh(this);" id="depart" name="depart" value="<?php echo($depart); // date sortie vide?>" style="cursor: text" /><br />

<input name="submit" type="submit" value="Submit"/>
</div>
</form>

<?php
echo $arrivee;//test
echo $depart;//test

require(dirname(__FILE__).'/includes/config.php'); //ouverture BD
include './includes/config.php';
?>
<?php

INSERT INTO `client`(`client_id`, `client_date1`, `client_date2`,`) VALUES ([],[$arrivee],[$depart],)
?>

<?php

Re: comment extraire la gauche ou le millieu d'une variable

Posté : 01 oct. 2013, 10:01
par sirakawa
Sur le code initial:
<?php

INSERT INTO `client`(`client_id`, `client_date1`, `client_date2`,`) VALUES ([],[$arrivee],[$depart],)
?>
<?php
Le [] est étonnant!!!
$requete = "INSERT INTO `client`(`client_id`, `client_date1`, `client_date2`,`) VALUES ([],$arrivee],$depart)";
print"<br />$requete"//pour voir ce que tu fais
$mysqli = new mysqli("localhost", "mon_nomr", "mon_mot_de_passe", "nom_de_la_bdd");
$resultat = mysqli_query($mysqli, $requete);
if ($resultat == true)
{
}
else
{
}
)
?>
Pour constituer la date, la plupart des gens font saisir dans des listes déroulantes mois jour année,: c'est facile à vérifier et aisé à transformer en date au format voulu...

Re: comment extraire la gauche ou le millieu d'une variable

Posté : 01 oct. 2013, 12:11
par orenx22
Bonjour,

le plus simple pour toi et de configurer ta base de donnée pour que dans la colonne date_membre se soit un timestamp avec comme valeur de base CURRENT_TIMESTAMP (qui veut dire qu'il va automatiquement donner la date et heure quand tu va inscrit ton membre).

Après tu n'as plus qu'a faire une requête de ce type la si tu veux récupérer le mois année jour dans des variables séparés :

SELECT *, MONTH(date_membre) as mois, YEAR(date_membre) as annee, DAY(membre_date) as jour FROM membre WHERE id = ?
Pour récupérer un date lisible après rien de plus simple, renseigne toi sur la fonction mktime(), date(), et time() voir la classe DateTime si sais manipuler un objet.

Renseigne toi sur les possibilité de MYSQL pour faire une bonne gestion des date.

Re: comment extraire la gauche ou le millieu d'une variable

Posté : 01 oct. 2013, 12:30
par computarelier
Ou, pour tout récupérer d'un coup :
SELECT DATE_FORMAT(datemembre, '%d/%m/%Y')  as madate FROM ...
madate est prête à être affichée :-)

Re: comment extraire la gauche ou le millieu d'une variable

Posté : 01 oct. 2013, 17:09
par nettoyer
Hello, merci pour vos reponses....j'ai tester la réponse de sirakawa...et ca marche pas

Parse error: syntax error, unexpected T_VARIABLE in /homez.108/lambertt/www/test.php

je met qaund meme un photo de la base de donnée

Image

voici la page d'affichage (pour INFO) qui fonctionne mais qui ne met rien dans la BD http://www.lambert-thierry.be/test.php

voici le script qui ne fonctionne pas
  

<b>Réservez votre chambre</b><br/>

Date d'arrivée : 
<input onClick="ds_sh(this);" id="arrivee" name="arrivee" value="<?php echo($arrivee);  // date entree vide?>" style="cursor: text" />
<br />

Date de départ : <input onClick="ds_sh(this);" id="depart" name="depart" value="<?php echo($depart);  // date sortie vide?>" style="cursor: text" /><br />

<input name="submit" type="submit" value="Submit"/>
</div>
</form>

<?php
//require(dirname(__FILE__).'/includes/config.php');   //ouverture BD
//include './includes/config.php';


echo $arrivee  ;//affichage date d'arrivée pour controle
echo $depart;//affichage date de sortie pour controle

$requete = "INSERT INTO `client`(`client_id`, `client_date1`, `client_date2`,`) VALUES ([],$arrivee],$depart)";
print"<br />$requete"  // !!!!!!!!!!!!!   TOUT FONCTIONNE BIEN JUSQU'ICI

$mysqli = new mysqli("mysql5-2.1000gp", "xxxx", "xxxxxxlide777", "xxxxxxx");
$resultat = mysqli_query($mysqli, $requete);
print $resultat; // pour test
?>

<?php
mysql_close();         // on ferme la connexion à la base
?>


   

Re: comment extraire la gauche ou le millieu d'une variable

Posté : 01 oct. 2013, 18:19
par sirakawa
J'ai dit:
"Le [] est étonnant!!!"
$requete = "INSERT INTO `client`(`client_id`, `client_date1`, `client_date2`,`) VALUES ([],$arrivee],$depart)";
Et c'est pourquoi je dis de mettre:
print "$requete"; et de tenter, si tu ne comprends pas, de copier cet affichage et de le coller dans phpmyadmin ....

Si client_id est autoincrement, il st inutile de le mentionner dans la requête:
ex
CREATE TABLE animals (
             id MEDIUMINT NOT NULL AUTO_INCREMENT,
             name CHAR(30) NOT NULL,
             PRIMARY KEY (id)
             );
INSERT INTO animals (name) VALUES ("dog"),("cat"),("penguin"),
                                  ("lax"),("whale"),("ostrich");