Timing pour un enregistrement

Petit nouveau ! | 8 Messages

13 oct. 2010, 10:15

Bonjour,

j'ai un petit soucis sur une requête. Afin de générer un mail après une demande de devis, je me connecte à la BDD pour récupérer la dernière entrée et ajouter les données dans mon mail.

j'utilise tout bêtement un order by desc avec limit 1 sur la colonne de date de soumission (paramétrée en time)

le problème est que je récupère à chaque fois l'entrée x-1

j'ai l'impression que c'est un problème de temps d'écriture et de lecture ou peut être autre chose....



merci de votre aide ;)

Mammouth du PHP | 19672 Messages

13 oct. 2010, 11:10

Fais donc voir à quoi ressemble ta requête SQL.

Au passage : as-tu testé ta requête en dur directement dans un client genre ligne de commande MySQL ou phpMyAdmin ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Petit nouveau ! | 8 Messages

13 oct. 2010, 12:25

voici ma requête :
$requete = 'SELECT * FROM `sunelio_prospect` ORDER BY DATE_RECEPTION_CONTRAT DESC LIMIT 0,1' ;

elle fonctionne parfaitement dans php my admin

Mammouth du PHP | 19672 Messages

13 oct. 2010, 13:34

Si elle fonctionne parfaitement directement en SQL, le problème se situe donc avant lors de l'envoi de la requête via PHP. Ce que j'essaye de te faire voir, c'est une manière d'isoler l'endroit où il existe une anomalie.

On peut donc considérer que le problème ne relève pas du SQL mais du PHP : reste donc à nous montrer la partie du code où est définie la requête, la manière dont elle est envoyée, et ensuite la manière dont est récupéré le résultat. Donc maintenant, il faudrait qu'on voit cette partie du code pour y déceler une erreur ;)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Petit nouveau ! | 8 Messages

13 oct. 2010, 14:44

Je publie le code en entier. Je supprime juste l'adresse mail. dans le fichier connexion.php il y a juste mes identifiants de bdd
<?php
require_once "connexion.php";

function envoimailtosunelis() {
    
    

$table = "prospect";
mysql_select_db($table, $connect);

    sleep(5);

$requete = 'SELECT * FROM `sunelio_prospect` ORDER BY DATE_RECEPTION_CONTRAT DESC LIMIT 0,1' ;


// on envoie la requête
$req = mysql_query($requete) or die('Erreur SQL !<br>'.$requete.'<br>'.mysql_error());

// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req))
    {
     //on enregistre les informations de l'enregistrement en cours
    $adresse = $data['ADRESSE'] ;
    }
    
     
///////////////////////////////////////////////////////////////////////////////////////////////////////////    
// on envoie la requête
$req2 = mysql_query($requete) or die('Erreur SQL !<br>'.$requete.'<br>'.mysql_error());    
// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req2))
    {
     //on enregistre les informations de l'enregistrement en cours
    $latitude = $data['LATITUDE'] ;
    }     

     
///////////////////////////////////////////////////////////////////////////////////////////////////////////    
// on envoie la requête
$req3 = mysql_query($requete) or die('Erreur SQL !<br>'.$requete.'<br>'.mysql_error());    
// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req3))
    {
     //on enregistre les informations de l'enregistrement en cours
    $longitude = $data['LONGITUDE'] ;
    }     

     
///////////////////////////////////////////////////////////////////////////////////////////////////////////    
// on envoie la requête
$req4 = mysql_query($requete) or die('Erreur SQL !<br>'.$requete.'<br>'.mysql_error());    
// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req4))
    {
     //on enregistre les informations de l'enregistrement en cours
    $couverture = $data['TYPE_COUVERTURE'] ;
    }     

     
///////////////////////////////////////////////////////////////////////////////////////////////////////////    
// on envoie la requête
$req5 = mysql_query($requete) or die('Erreur SQL !<br>'.$requete.'<br>'.mysql_error());    
// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req5))
    {
     //on enregistre les informations de l'enregistrement en cours
    $inclinaison = $data['INCLINAISON'] ;
    }     

     
///////////////////////////////////////////////////////////////////////////////////////////////////////////    
// on envoie la requête
$req6 = mysql_query($requete) or die('Erreur SQL !<br>'.$requete.'<br>'.mysql_error());    
// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req6))
    {
     //on enregistre les informations de l'enregistrement en cours
    $situationfamiliale = $data['SITUATION_FAMILLE'] ;
    }     

     
///////////////////////////////////////////////////////////////////////////////////////////////////////////    
// on envoie la requête
$req7 = mysql_query($requete) or die('Erreur SQL !<br>'.$requete.'<br>'.mysql_error());    
// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req7))
    {
     //on enregistre les informations de l'enregistrement en cours
    $nombrepersonnes = $data['PERSONNE_CHARGE'] ;
    }     

     
///////////////////////////////////////////////////////////////////////////////////////////////////////////    
// on envoie la requête
$req8 = mysql_query($requete) or die('Erreur SQL !<br>'.$requete.'<br>'.mysql_error());    
// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req8))
    {
     //on enregistre les informations de l'enregistrement en cours
    $civ = $data['TITRE'] ;
    }         

     
///////////////////////////////////////////////////////////////////////////////////////////////////////////    
// on envoie la requête
$req9 = mysql_query($requete) or die('Erreur SQL !<br>'.$requete.'<br>'.mysql_error());    
// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req9))
    {
     //on enregistre les informations de l'enregistrement en cours
    $nom = $data['NOM'] ;
    }     

     
///////////////////////////////////////////////////////////////////////////////////////////////////////////    
// on envoie la requête
$req10 = mysql_query($requete) or die('Erreur SQL !<br>'.$requete.'<br>'.mysql_error());    
// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req10))
    {
     //on enregistre les informations de l'enregistrement en cours
    $prenom = $data['PRENOM'] ;
    }     

     
///////////////////////////////////////////////////////////////////////////////////////////////////////////    
// on envoie la requête
$req11 = mysql_query($requete) or die('Erreur SQL !<br>'.$requete.'<br>'.mysql_error());    
// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req11))
    {
     //on enregistre les informations de l'enregistrement en cours
    $telephone = $data['TEL1'] ;
    }     

     
///////////////////////////////////////////////////////////////////////////////////////////////////////////    
// on envoie la requête
$req12 = mysql_query($requete) or die('Erreur SQL !<br>'.$requete.'<br>'.mysql_error());    
// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req12))
    {
     //on enregistre les informations de l'enregistrement en cours
    $mail = $data['EMAIL'] ;
    }     



     
///////////////////////////////////////////////////////////////////////////////////////////////////////////    
// on envoie la requête
$req13 = mysql_query($requete) or die('Erreur SQL !<br>'.$requete.'<br>'.mysql_error());    
// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req13))
    {
     //on enregistre les informations de l'enregistrement en cours
    $commentaires = $data['OBSERVATION'] ;
    } 
    
    
                                          

// To
$to = '[email protected]';

// Subject
$subject = 'DEMANDE DE DEVIS ';

// Headers
$headers = 'Mime-Version: 1.0'."\r\n";
$headers .= 'Content-type: text/html; charset=utf-8'."\r\n";
$headers .= "\r\n";

// Message
$msg .= '<strong>Voici une demande de devis re&ccedil;ue sur le site : </strong>';

$msg .='<br /><strong>Adresse de l\'installation : </strong>'.$adresse;
$msg .='<br /><strong>Latitude : </strong>'.$latitude; 
$msg .='<br /><strong>Longitude : </strong>'.$longitude;
$msg .='<br /><strong>Type de couverture : </strong>'.$couverture;
$msg .='<br /><strong>Inclinaison : </strong>'.$inclinaison;
$msg .='<br /><strong>Situation familiale : </strong>'.$situationfamiliale;
$msg .='<br /><strong>Nombre de personnes &aacute; charge : </strong>'.$nombrepersonnes;
$msg .='<br /><strong>Civilit&eacute; : </strong>'.$civ;
$msg .='<br /><strong>Nom : </strong>'.$nom;
$msg .='<br /><strong>Prenom : </strong>'.$prenom;
$msg .='<br /><strong>Telephone : </strong>'.$telephone;
$msg .='<br /><strong>Mail : </strong>'.$mail;
$msg .='<br /><strong>Commentaire : </strong>'.$commentaires;    



// Function mail()
mail($to, $subject, $msg, $headers);


mysql_close();

}

envoimailto();


?>
merci du coup de main :)

sinon mon code fonctionne bien donc si d'autres en ont besoin je laisse libre à chacun de le copier, merci de citer la source : oxoCreations

Le plus important étant de résoudre mon problème de timing

ViPHP
AB
ViPHP | 5818 Messages

13 oct. 2010, 15:14

Essayes
//...

$req = mysql_query($requete) or die('Erreur SQL !<br>'.$requete.'<br>'.mysql_error());

// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req))
    {
     //on affiche les informations de l'enregistrement en cours
     echo '<pre>';
     print_r($data);
     echo '</pre>';
    }
Et tu comprendras que tu peux ne faire qu'une seule requête à la place de 13

Eléphant du PHP | 314 Messages

13 oct. 2010, 16:22

ET n'oublies pas de citer PHPFRANCE.COM sur ton site pour l'aide.
Cordialement,
Julien - http://laravel.fr/

Petit nouveau ! | 8 Messages

13 oct. 2010, 17:43

je n'y manquerai pas. Mais pour l'instant ceci ne résout pas mon problème.