mon prog ne marche pas

le nul en php
Invité n'ayant pas de compte PHPfrance

17 mai 2005, 09:34

bonjour, j'ai fait un programme pourrécuperer certaines lignes d'une table afin de la mettre dans un autre de la meme base de donnée et ca ne marche pas quelqu'un auarait il la solution à mon probleme
<?
include ("MySQLConnect.php"); # Connexion à la base de données
include_once( "Fct_Fichier.php" );
//******************************************************************************
// Constantes *
//******************************************************************************


define("LOGIN","ENSIA"); # votre login
define("PASS" ,"ENSIA"); # votre mot de passe

define("UPDATE", 30); # fréquence de rafraichissement de la page (s)

//******************************************************************************
// FONCTIONS *
//******************************************************************************

// conversion dec -> bin -> ON/OFF----------------------------------------------
function DecOnOff($VALDEC)
{

$D['bin']=DecBin($VALDEC);

$nb=8-strlen( $D['bin'] );
for ( $i=0; $i<$nb; $i++ )
$D['bin']='0'.$D['bin'];

for ( $i=0; $i<8 ; $i++ )
if ( $D['bin'][$i]=='1' ) $D[7-$i]='<FONT color="#FFFFFF">ON'; else $D[7-$i]='<FONT color="#CC3333">OFF';

return($D);
}

// Fonction de conversion format DATE MySQL-------------------------------------
// aaaa-mm-jj hh:mm:ss -> format jj/mm/aaaa et hh:mm:ss
function Date_Heure($string_date)
{
$Date['heure']=substr( $string_date, 11 );
$date_array=explode( "-", substr( $string_date, 0, 10 ) );
$Date['date']=$date_array[2]."/".$date_array[1]."/".$date_array[0];
return($Date);
}

function Enregistrement_Fichier( $Nom_Fichier, $VALDEC )
{
$Pointeur_Fichier = fopen( $Nom_Fichier, "a+" );
fwrite( $Pointeur_Fichier, $VALDEC, strlen( $VALDEC ) );
fclose( $Pointeur_Fichier );
}
//******************************************************************************
// CODE *
//******************************************************************************

// Vérification login et mot de passe-------------------------------------------
if( isset( $_GET["LOGIN"], $_GET["PASS"] ) )
{
if ( $_GET["LOGIN"]!=LOGIN || $_GET["PASS"]!=PASS )
exit("ECHEC : Login/pass incorrects !");
}
else
{

echo " Ton fomulaire sera ICI !!!<br>
<a href='?LOGIN=?&PASS=?' title='Coucou'>Se loguer</a>";
exit(0);
}

// AFFICHAGE des données pour consultation client HTTP--------------------------

# En-tête de la page HTML
echo '
<HTML>
<HEAD>
<TITLE>8 ENTREES LOGIQUES - Tableau ('.$_SERVER["PHP_SELF"].')</TITLE>
</HEAD>
';

# Timer pour actualiser automatiquement la page HTML
$UPDATE=UPDATE * 1000;
echo '<BODY OnLoad="setTimeout(\'history.go(0)\','.$UPDATE.')">';

# En-tête du tableau présentant les mesures
echo '
<TABLE WIDTH="100%" BORDER="1" CELLSPACING="1" CELLPADDING="1">
<TR BGCOLOR="black">
<TD><FONT color="white">N°</TD>
<TD><FONT color="white">DATE</TD>
<TD><FONT color="white">HEURE</TD>
<TD><FONT color="white">DEC</TD>
<TD><FONT color="white">HEX</TD>
<TD><FONT color="white">BIN</TD>
<TD><FONT color="white">D7</TD>
<TD><FONT color="white">D6</TD>
<TD><FONT color="white">D5</TD>
<TD><FONT color="white">D4</TD>
<TD><FONT color="white">D3</TD>
<TD><FONT color="white">D2</TD>
<TD><FONT color="white">D1</TD>
<TD><FONT color="white">D0</TD>
</TR>
';

# Requête en base et récupération ou non des valeurs dans un tableau

$quer=mysql_query("SELECT * FROM 8el");//ta requete
while ($tab=mysql_fetch_array($quer))//on recup les info de la table
{
$VALDEC=$tab['VALDEC'];// on recupere valdec et on la rentre dns une var
if($VALDEC!=255)//on verifie la valeur si elle est dif de d'hab
{
$ins=mysql_query("INSERT INTO 'alertes' VALUES( ['VALDEC'], ['DATE'] ) SELECT '8el' (['VALDEC'], ['DATE'] )

");// on effectue la requete d'insert
if (!$ins)// si la requete echoue
{
echo("L'insertion à foirée");//msg erreur
}//fin de verification du insert
}// fin du if si la valeur est différente de l'habitude
}// fin du while

# Requête en base et présentation des mesures dans un tableau

$query="SELECT DATE,VALDEC FROM alertes ORDER BY id";
$result=mysql_query($query,$mysql_link);
$i=1;
while ( $a_row=mysql_fetch_array($result) )
{
//$Date=Date_Heure( $a_row['DATE'] ); # Conversion DATE / HEURE
$Date['date'] = date("j-M-Y", $a_row['DATE'] );
$Date['heure'] = date("H:i:s", $a_row['DATE'] );
$string_hex=strtoupper( DecHex( $a_row['VALDEC'] ) ); # conversion dec -> hex
$D=DecOnOff( $a_row['VALDEC'] ); # conversion dec -> ON / OFF
echo '
<TR BGCOLOR="silver">
<TD>'.$i++.'</TD>
<TD>'.$Date['date'].'</TD>
<TD>'.$Date['heure'].'</TD>
<TD>'.$a_row['VALDEC'].'</TD>
<TD>'.$string_hex.'</TD>
<TD>'.$D['bin'].'</TD>
<TD>'.$D[7].'</TD>
<TD>'.$D[6].'</TD>
<TD>'.$D[5].'</TD>
<TD>'.$D[4].'</TD>
<TD>'.$D[3].'</TD>
<TD>'.$D[2].'</TD>
<TD>'.$D[1].'</TD>
<TD>'.$D[0].'</TD>
</TR>
';
Enregistrement_Fichier( "historique.txt", $a_row['VALDEC']);

}
echo '</TABLE></BODY></HTML>';

?>

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

17 mai 2005, 09:39

Excuse moi mais ton post donne pas trop envie de répondre :

- titre : on se doute bien que ça marche pas, sinon tu ne serais pas là
- description du problème : donne nous un peu plus d'infos, ça nous aidera à comprendre ton problème
- présentation : il existe une balise qui sert à formater le code PHP, c'est beaucoup plus joli !!! sisi, la 5eme au dessus de la zonne de texte quand tu rédige !!!


Sinon, tu peux nous dire où est-ce que ça bloque ?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

17 mai 2005, 09:40

Ton code avec la balise PHP

<?
include ("MySQLConnect.php"); # Connexion à la base de données
include_once( "Fct_Fichier.php" );
//******************************************************************************
// Constantes *
//******************************************************************************


define("LOGIN","ENSIA"); # votre login
define("PASS" ,"ENSIA"); # votre mot de passe

define("UPDATE", 30); # fréquence de rafraichissement de la page (s)

//******************************************************************************
// FONCTIONS *
//******************************************************************************

// conversion dec -> bin -> ON/OFF----------------------------------------------
function DecOnOff($VALDEC)
{

$D['bin']=DecBin($VALDEC);

$nb=8-strlen( $D['bin'] );
for ( $i=0; $i<$nb; $i++ )
$D['bin']='0'.$D['bin'];

for ( $i=0; $i<8 ; $i++ )
if ( $D['bin'][$i]=='1' ) $D[7-$i]='<FONT color="#FFFFFF">ON'; else $D[7-$i]='<FONT color="#CC3333">OFF';

return($D);
}

// Fonction de conversion format DATE MySQL-------------------------------------
// aaaa-mm-jj hh:mm:ss -> format jj/mm/aaaa et hh:mm:ss
function Date_Heure($string_date)
{
$Date['heure']=substr( $string_date, 11 );
$date_array=explode( "-", substr( $string_date, 0, 10 ) );
$Date['date']=$date_array[2]."/".$date_array[1]."/".$date_array[0];
return($Date);
}

function Enregistrement_Fichier( $Nom_Fichier, $VALDEC )
{
$Pointeur_Fichier = fopen( $Nom_Fichier, "a+" );
fwrite( $Pointeur_Fichier, $VALDEC, strlen( $VALDEC ) );
fclose( $Pointeur_Fichier );
}
//******************************************************************************
// CODE *
//******************************************************************************

// Vérification login et mot de passe-------------------------------------------
if( isset( $_GET["LOGIN"], $_GET["PASS"] ) )
{
if ( $_GET["LOGIN"]!=LOGIN || $_GET["PASS"]!=PASS )
exit("ECHEC : Login/pass incorrects !");
}
else
{

echo " Ton fomulaire sera ICI !!!<br>
<a href='?LOGIN=?&PASS=?' title='Coucou'>Se loguer</a>";
exit(0);
}

// AFFICHAGE des données pour consultation client HTTP--------------------------

# En-tête de la page HTML
echo '
<HTML>
<HEAD>
<TITLE>8 ENTREES LOGIQUES - Tableau ('.$_SERVER["PHP_SELF"].')</TITLE>
</HEAD>
';

# Timer pour actualiser automatiquement la page HTML
$UPDATE=UPDATE * 1000;
echo '<BODY OnLoad="setTimeout(\'history.go(0)\','.$UPDATE.')">';

# En-tête du tableau présentant les mesures
echo '
<TABLE WIDTH="100%" BORDER="1" CELLSPACING="1" CELLPADDING="1">
<TR BGCOLOR="black">
<TD><FONT color="white">N°</TD>
<TD><FONT color="white">DATE</TD>
<TD><FONT color="white">HEURE</TD>
<TD><FONT color="white">DEC</TD>
<TD><FONT color="white">HEX</TD>
<TD><FONT color="white">BIN</TD>
<TD><FONT color="white">D7</TD>
<TD><FONT color="white">D6</TD>
<TD><FONT color="white">D5</TD>
<TD><FONT color="white">D4</TD>
<TD><FONT color="white">D3</TD>
<TD><FONT color="white">D2</TD>
<TD><FONT color="white">D1</TD>
<TD><FONT color="white">D0</TD>
</TR>
';

# Requête en base et récupération ou non des valeurs dans un tableau

$quer=mysql_query("SELECT * FROM 8el");//ta requete
while ($tab=mysql_fetch_array($quer))//on recup les info de la table
{
$VALDEC=$tab['VALDEC'];// on recupere valdec et on la rentre dns une var
if($VALDEC!=255)//on verifie la valeur si elle est dif de d'hab
{
$ins=mysql_query("INSERT INTO 'alertes' VALUES( ['VALDEC'], ['DATE'] ) SELECT '8el' (['VALDEC'], ['DATE'] )

");// on effectue la requete d'insert
if (!$ins)// si la requete echoue
{
echo("L'insertion à foirée");//msg erreur
}//fin de verification du insert
}// fin du if si la valeur est différente de l'habitude
}// fin du while

# Requête en base et présentation des mesures dans un tableau

$query="SELECT DATE,VALDEC FROM alertes ORDER BY id";
$result=mysql_query($query,$mysql_link);
$i=1;
while ( $a_row=mysql_fetch_array($result) )
{
//$Date=Date_Heure( $a_row['DATE'] ); # Conversion DATE / HEURE
$Date['date'] = date("j-M-Y", $a_row['DATE'] );
$Date['heure'] = date("H:i:s", $a_row['DATE'] );
$string_hex=strtoupper( DecHex( $a_row['VALDEC'] ) ); # conversion dec -> hex
$D=DecOnOff( $a_row['VALDEC'] ); # conversion dec -> ON / OFF
echo '
<TR BGCOLOR="silver">
<TD>'.$i++.'</TD>
<TD>'.$Date['date'].'</TD>
<TD>'.$Date['heure'].'</TD>
<TD>'.$a_row['VALDEC'].'</TD>
<TD>'.$string_hex.'</TD>
<TD>'.$D['bin'].'</TD>
<TD>'.$D[7].'</TD>
<TD>'.$D[6].'</TD>
<TD>'.$D[5].'</TD>
<TD>'.$D[4].'</TD>
<TD>'.$D[3].'</TD>
<TD>'.$D[2].'</TD>
<TD>'.$D[1].'</TD>
<TD>'.$D[0].'</TD>
</TR>
';
Enregistrement_Fichier( "historique.txt", $a_row['VALDEC']);

}
echo '</TABLE></BODY></HTML>';

?>
[/size]
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

nul en php
Invité n'ayant pas de compte PHPfrance

17 mai 2005, 09:50

je suis désolé mais je travaille avec bloc note et je ne connaissais pas la balise php.Pour mon programme mon probleme se situe au niveau des requêtes me permettant d'une par de lire ma table '8el' de comparer la valeur de VALDEC à 255 condition permettant de déterminer si la ligne de la table '8el' doit être inserer dans la table 'alertes' et de réaliser cette insertion .

$quer=mysql_query("SELECT * FROM 8el");//ta requete
while ($tab=mysql_fetch_array($quer))//on recup les info de la table
{
$VALDEC=$tab['VALDEC'];// on recupere valdec et on la rentre dns une var
if($VALDEC!=255)//on verifie la valeur si elle est dif de d'hab
{
$ins=mysql_query("INSERT INTO 'alertes' VALUES( ['VALDEC'], ['DATE'] ) SELECT '8el' (['VALDEC'], ['DATE'] )

");// on effectue la requete d'insert
if (!$ins)// si la requete echoue
{
echo("L'insertion à foirée");//msg erreur
}//fin de verification du insert
}// fin du if si la valeur est différente de l'habitude
}// fin du while

Cette partie de programme m'a été donné par un mec sur ce forum et je crois que je n'ai pas su l'adapter correctement à mes besoins

Mammouth du PHP | 19672 Messages

17 mai 2005, 09:57

Ça sent la syntaxe MS-ACCESS :

Code : Tout sélectionner

"INSERT INTO 'alertes' VALUES( ['VALDEC'], ['DATE'] ) SELECT '8el' (['VALDEC'], ['DATE']
Vire les crochets autour des noms de champ, MySQL ne doit pas baucoup les aimer.

Ensuite, tu as dans la même requête un INSERT et un SELECT sans transition ni séparation : quelle version de MySQL utilises-tu ? Je ne suis pas certain que cette formulation fonctionne sur une version inférieure à 4.1 (faut que je vérifie)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

17 mai 2005, 09:59

Ca n'a rien à voir avec NotPad !!! Je te parle du Forum !!!

D'ailleurs, maintenant que tu connais son existence, utilise là !! Merci d'avance

<HORS SUJET>
Si tu veut du gratuit qui marche bien, renseigne toi sur Scite (Dans la zone Download), un petit editeur de code qui accepte pas mal de langages, les onglets, coloration syntaxique. Ca marchera mieux que NotPad !!! :lol:
</HORS SUJET>


Sinon, comment est ce que tu te rned compte que ça ne marche pas ? message d'erreur ? rien dans la bdd ? ...

Donne nous toutes ces infos
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

nul en php
Invité n'ayant pas de compte PHPfrance

17 mai 2005, 10:02

c la version 4.0.15 de Mysql

ViPHP
pjl
ViPHP | 2119 Messages

17 mai 2005, 10:06

Quel est l'intéret de coder des fonctions qui existent déjà ?
// Fonction de conversion format DATE MySQL-------------------------------------
// aaaa-mm-jj hh:mm:ss -> format jj/mm/aaaa et hh:mm:ss
function Date_Heure($string_date)
{
$Date['heure']=substr( $string_date, 11 );
$date_array=explode( "-", substr( $string_date, 0, 10 ) );
$Date['date']=$date_array[2]."/".$date_array[1]."/".$date_array[0];
return($Date);
} 
Et pour ton PB, le plus simple est de tester directement ta requête dans un client de ta base de données style PhpMyAdmin.

nul en php
Invité n'ayant pas de compte PHPfrance

17 mai 2005, 10:06

en fait ma table 'alertes' reste vide et page qui devrait afficher les informations indique que l'insertion a foiré

Mammouth du PHP | 19672 Messages

17 mai 2005, 10:11

Effectivement, si je me fie à la doc, le INSERT ... SELECT doit fonctionner: as-tu essayé en enlevant les crochets autour des noms de champs ou de valeurs ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

nul en php
Invité n'ayant pas de compte PHPfrance

17 mai 2005, 10:14

quand j'essaie ma requete d'insertion directement dans myAdmin il y a une erreur de syntaxe et je ne comprend pas pourquoi


INSERT INTO alertes
VALUES (

'VALDEC', 'DATE'
)
SELECT 8el(
' VALDEC', 'DATE'
)

MySQL a répondu:


#1064 - Erreur de syntaxe près de 'SELECT 8el( ' VALDEC', 'DATE' )' à la ligne 3
[/php]

nul en php
Invité n'ayant pas de compte PHPfrance

17 mai 2005, 10:16

et ca n'a rien changé

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

17 mai 2005, 10:16

Si tu as fait un copier/coller fidèle, je vois un espace entre ' et VALDEC
#1064 - Erreur de syntaxe près de 'SELECT 8el( ' VALDEC', 'DATE' )' à la ligne 3
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

nul en php
Invité n'ayant pas de compte PHPfrance

17 mai 2005, 10:19

l'espace entre ' et VALDEC n'a rien changé j'ai toujours le même problème

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

17 mai 2005, 10:21

Truc con, essaye cette requete :

Code : Tout sélectionner

INSERT INTO alertes VALUES ('VALDEC', 'DATE') (SELECT 8el( ' VALDEC', 'DATE' ))
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer