PHP et MySQL [Résolu]

Signaler
Messages postés
28
Date d'inscription
dimanche 27 mars 2011
Statut
Membre
Dernière intervention
28 octobre 2012
-
casper77610
Messages postés
28
Date d'inscription
dimanche 27 mars 2011
Statut
Membre
Dernière intervention
28 octobre 2012
-
Bonsoir à tous,

Ceci est ma première question sur ce forum.
J'espère que je serais explicite dans la formulation.

Voila je cherche faire une page web en PHP, qui reproduirait un tableau correspondant à une base de donnée MySQL, et qui permettrait en même temps d'incrémenter cette meme base.

Exemple :

Paul 10ans CE2 Etc...
Marc 9 ans CE1 Etc...
Et une dernière ligne vierge qui permettrait de saisir d'autre données qui s'ajouteraient a ma base par une validation des données.
Et que quand je retourne sur cette page web la base à jours s'affiche, et toujours avec une ligne vierge pour pouvoir re-saisir d'autre données.

En espérant être clair

Alain

16 réponses

Messages postés
28
Date d'inscription
dimanche 27 mars 2011
Statut
Membre
Dernière intervention
28 octobre 2012

Re,

J'ai testé quand même le code pour l'export xls, cela me renvoi sur ma page d'accueil de mon site

Bonjour courage à tous

Alain
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
10
bonjour

c'est le principe même d'une base ?

il faut utiliser le couple php / mysql

un formulaire d'insertion
une page
je_liste_ma_table_de_la_base.php

... mais il faut apprendre php et mysql as tu des notions ?

a++
Messages postés
28
Date d'inscription
dimanche 27 mars 2011
Statut
Membre
Dernière intervention
28 octobre 2012

Bonjour cod57,

merci d'avoir répondu.

Voici mon code pour voir ma base,

<?php
// Vu de la base de donnée
// je me connecte à MySQL
$db = mysql_connect('localhost', 'host', '');

// je sélectionne la base
mysql_select_db('Adherents',$db);

// je crée la requête SQL
$sql = 'SELECT Prenom, Nom, Classe, Telephone, Portable, Adresse, Date_naissance FROM Enfants';

// j'envoie la requête
$req = mysql_query($sql) or die ('Erreur SQL !
'.$sql.'
'.mysql_error());

// je fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req))
{
$a = substr($data['Date_naissance'], 0, 4); // conversion
$m = substr($data['Date_naissance'], 5, 2); // de la date
$j = substr($data['Date_naissance'], 8, 2); // au format
$date = $j.'-'.$m.'-'.$a; // Français
// j'affiche les informations de l'enregistrement en cours
echo ''.$data['Prenom'].' '.$data['Nom'].' '.$data['Classe'].' '.$date.' '.$data['Telephone'].' '.$data['Portable'].' '.$data['Adresse'].'';
}

// je ferme la connexion à mysql
mysql_close();
?>

je seche apres pour faire un tableau correcte (mieux vaut en html ou php) et une ligne sous ce tableau qui incrémenter ma base qui soit permanente, le code est celui-ci :

// add.php
<?php
// je commence par récupérer les champs
if(isset($_POST['Prenom'])) $nom=$_POST['Prenom'];
else $Prenom="";

if(isset($_POST['Nom'])) $prenom=$_POST['Nom'];
else $Nom="";

if(isset($_POST['Classe'])) $email=$_POST['Classe'];
else $Classe="";

if(isset($_POST['Telephone'])) $icq=$_POST['Telephone'];
else $Telephone="";

if(isset($_POST['Portable'])) $titre=$_POST['Portable'];
else $Portable="";

if(isset($_POST['Adresse'])) $url=$_POST['Adresse'];
else $Adresse="";

if(isset($_POST['Date_naissance'])) $url=$_POST['Date_naissance'];
else $Date_naissance="";

// je vérifie si les champs sont vides
if(empty($Prenom) OR empty($Nom) OR empty($Classe) OR empty($Adresse) OR empty($Date_naissance))
{
echo 'Attention, seul le champs Telephone peut rester vide !';
echo 'Attention, seul le champs Portable peut rester vide !';
}

// Aucun champ n'est vide, je peut enregistrer dans la table
else
{
// connexion à la base
$db = mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error());
// sélection de la base

mysql_select_db('Adherents',$db) or die('Erreur de selection '.mysql_error());

// on écrit la requête sql
$sql = "INSERT INTO infos_tbl(Prenom, Nom, Classe, Telephone, Portable, Adresse, Date_naissance) VALUES('','$Prenom','$Nom','$Classe','$Telephone','$Portable','$Adresse', '$Date_naissance')";

// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'
'.mysql_error());

// on affiche le résultat pour le visiteur
echo 'Vos infos on été ajoutées.';

mysql_close(); // on ferme la connexion
}
?>
Voila mais 2 codes pour voir et incrémenter ma base, mais je n'arrive pas à faire,un tableau comme si j'était dans mysql et à laisser la ligne d'incrémentation sur ma page et à l'intégrer dans vu de la base de données :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<form method="POST" action="add.php">
<center>









</center>
</form>
</html>

J'espère avoir été explicite

Alain
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
10
bonsoir

re je t'ai bricolé un manageur basique il est a amelioré
je pense que c'est ce que tu cherches à faire

index.php


Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
10
je te reposte car j'ai oublie de devalider une ligne
ta gestion des dates est à revoir mais pour l'instant je crois
que c'est pas important ...
a++


Messages postés
28
Date d'inscription
dimanche 27 mars 2011
Statut
Membre
Dernière intervention
28 octobre 2012

Bonjour cod57,

Je te remercie très fortement pour tout ca, cela est parfait.
Mais il y a t'il un moyen de faire un tableau graphique comme en HTML.
Je vais faire des test .
Je debut dans le PHP, je ne suis pas encore au point.

Merci encore

Alain
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
10
bonjour
avec un tableau html
a++











Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
10
j'ai changé la gestion de la date + la table est differente pour la date
a++
Messages postés
28
Date d'inscription
dimanche 27 mars 2011
Statut
Membre
Dernière intervention
28 octobre 2012

Quoi demander de plus tu est génial. C'est plus que parfait
je vais étudier les codes pour me perfectionner un peu plus

Encore merci beaucoup

au plaisir

A++
Messages postés
28
Date d'inscription
dimanche 27 mars 2011
Statut
Membre
Dernière intervention
28 octobre 2012

Demande d'aide terminé grasse à cod57
Merci
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
10
il me semble qu'il y a un bouton "reponse acceptée"
si tu remplaces la fin du manageur par ça tu pourras exporter en excel

pass dans la boite -> admin1234

/*comme avant au dessus*/

 <form method="POST" action="export.php">
    
    
    
  </form>

  
  
<?php
mysql_close();
} 
?> 


il faut creer

export.php
<?php

$password=md5('admin1234');/*mettre ici un password*/

if(isset($_POST['EXCEL']) && md5($_POST['xls'])===$password){
     $dbhost  = 'localhost';
     $dbuser  = 'root';
     $dbpass  = '';
     $dbname  = 'Adherents'; 
     $dbtable = 'enfants';
        

function xlsBOF() {
    echo pack("ssssss", 0x809, 0x8, 0x0, 0x10, 0x0, 0x0);
    return;
}


function xlsEOF() {
    echo pack("ss", 0x0A, 0x00);
    return;
}


function xlsWriteLabel($Row, $Col, $Value ) {
    $L = strlen($Value);
    echo pack("ssssss", 0x204, 8 + $L, $Row, $Col, 0x0, $L);
    echo $Value;
    return;
}




$dbc = mysql_connect( $dbhost , $dbuser , $dbpass ) or die( mysql_error() );
mysql_select_db( $dbname );
$q = "SELECT * FROM ".$dbtable."";
$qr = mysql_query( $q ) or die( mysql_error() );

header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");


header("Content-Disposition: attachment;filename=export_".$dbtable.".xls ");

header("Content-Transfer-Encoding: binary ");


xlsBOF();


$col = 0;
$row = 0;


$first = true;

while( $qrow = mysql_fetch_assoc( $qr ) )
{
    
    if( $first )
    {
        foreach( $qrow as $k => $v )
        {
            
            xlsWriteLabel( $row, $col, strtoupper( ereg_replace( "_" , " " , $k ) ) );
            $col++;
        }

        
        $col = 0;
        $row++;
        $first = false;
    }

    
    foreach( $qrow as $k => $v )
    {
        
        xlsWriteLabel( $row, $col, $v );
        $col++;
    }
    
    $col = 0;
    $row++;
}

xlsEOF();

mysql_close();

exit;
}else{
header('Location: index.php');exit;
}
?>


a++
Messages postés
2381
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
12
Cod57: Je voudrais interfacer tout cela avec la base des employés de la centrale de Fukushima via Soap ??
LOL..
S.
Messages postés
28
Date d'inscription
dimanche 27 mars 2011
Statut
Membre
Dernière intervention
28 octobre 2012

Je te remercie cod57 pour l'export excel, mais je ne m'en servirai pas.

par contre sur le code avant excel que tu m'as bien gentiment fourni, il y a un soucis.

j'ai une erreur

Warning: Cannot modify header information - headers already sent by (output started at /var/www/clients/client18/web26/web/Adherents.php:10) in /var/www/clients/client18/web26/web/Adherents.php on line 202

En localhost pas de soucis, mais quand je passe par le serveur distant, j'ai ce message.
Et pareil en ligne 54 quand je fais supprimer.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv= "content-type" content="text/html; charset=windows-1250">
<meta name="generator" content="PSPad editor, www.pspad.com">
<title>
</title>
</head>

<?php
$db = mysql_connect('localhost', 'root', '') or die('HOST ?');
mysql_select_db('Adherents',$db) or die('DB ?');


/*listage des eleves*/
$sql = 'SELECT * FROM enfants'; /*pareil*/
$req=mysql_query($sql) or die ('Erreur SQL !
'.$sql.'
'.mysql_error());

echo '
';

echo '';

echo '----
Prenom, Nom, Classe, Date_naissance, Telephone, Portable_M, Adresse, E_mail, Action, ';

while($data = mysql_fetch_assoc($req)){
/*conversion de la date au format Français */

$date=explode('-',$data['Date_naissance']);
$date=$data['Date_naissance']=$date[2].'-'.$date[1].'-'.$date[0];
/*
$a = substr($data['Date_naissance'], 0, 4);
$m = substr($data['Date_naissance'], 5, 2);
$j = substr($data['Date_naissance'], 8, 2);
$date = $j.'-'.$m.'-'.$a;
*/

echo '----
'.$data['Prenom'].', '.$data['Nom'].', '.$data['Classe'].
', '.$date.', '.$data['Telephone'].', '.$data['Portable_M'].', '.$data['Adresse'].', '.$data['E_mail'].
', [? Lister les éléves]</center>';
}

if(isset($_POST['Modifier']) && $_POST['Modifier']==="Modification" && $_SERVER['REQUEST_METHOD']==='POST'){
/*LE FORMULAIRE EST POSTE*/

extract($_POST);


// je vérifie si les champs sont vides

if(empty($Prenom) OR empty($Nom) OR empty($Classe) OR empty($Adresse) OR empty($Date_naissance))
{
echo '<center>Attention, seul le champs Telephone peut rester vide !';
echo '
Attention, seul le champs Portable_M peut rester vide !';
echo '
[javascript:history.back(); Retour]</center>';
}

// Aucun champ n'est vide, je peut enregistrer dans la table
else
{

$date_naiss = explode('-',$Date_naissance);
$Date_naissance = $date_naiss[2].'-'.$date_naiss[1].'-'.$date_naiss[0];


$sql =" UPDATE `Adherents`.`enfants` SET


`Nom`= '$Nom' ,
`Prenom`= '$Prenom' ,
`Classe`= '$Classe',
`Telephone`= '$Telephone',
`Portable_M`= '$Portable_M',
`Adresse`= '$Adresse' ,
`Date_naissance`= '$Date_naissance',
`E_mail`= '$E_mail'
WHERE id='".$id."' ";



// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'
'.mysql_error());
// on affiche le résultat pour le visiteur
//echo '<center>Vos infos on été modifié !
';
//mysql_close(); // on ferme la connexion
//echo '[? Ajouter un éléve]
</center>';
unset($_POST);
header('Location: index.php');exit;

}

}

else if(isset($_POST['envoyer']) && $_POST['envoyer']==="Envoyer" && $_SERVER['REQUEST_METHOD']==='POST'){
/*LE FORMULAIRE EST POSTE*/

extract($_POST);


// je vérifie si les champs sont vides

if(empty($Prenom) OR empty($Nom) OR empty($Classe) OR empty($Adresse) OR empty($Date_naissance))
{
echo '<center>Attention, seul le champs Telephone peut rester vide !';
echo '
Attention, seul le champs Portable_M peut rester vide !';
echo '
[javascript:history.back(); Retour]</center>';
}

// Aucun champ n'est vide, je peut enregistrer dans la table
else
{

$date_naiss = explode('-',$Date_naissance);
$Date_naissance = $date_naiss[2].'-'.$date_naiss[1].'-'.$date_naiss[0];
$sql =" INSERT INTO `Adherents`.`enfants` (

`id` ,
`Nom` ,
`Prenom` ,
`Classe` ,
`Telephone` ,
`Portable_M` ,
`Adresse` ,
`Date_naissance` ,
`E_mail`
)VALUES (NULL , '$Prenom', '$Nom', '$Classe', '$Telephone', '$Portable_M', '$Adresse', '$Date_naissance', '$E_mail')";



// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'
'.mysql_error());
// on affiche le résultat pour le visiteur
unset($_POST);
header('Location: index.php');exit;
echo 'Vos infos on été ajoutées.';
mysql_close(); // on ferme la connexion
echo '[? Ajouter un éléve]';
}


} else { ?>




<form method="POST" action="">
Prenom, ,

----
Nom, ,

----
Classe, ,

----
Telephone, ,

----
Portable_M, ,

----
Adresse, ,

----
Date_naissance, ,

----
E_mail,



</form>



<?php
mysql_close();
}
?>


</html>

Je vais voir avec l'admin du serveur et je tiens au courant.

Merci
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
10
oui

tu dois avoir php 5
ou un repertoire sessions si tu es sur free
et un .htaccess avec le ligne

php 1

dedans

quel est ton hebergeur ?
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
10
http://abyz.free.fr/classe/index.php
je l'ai testé i tourne ici
j'ai mis le projet sur phpcs
regardes dans nouveau code
a++
Messages postés
28
Date d'inscription
dimanche 27 mars 2011
Statut
Membre
Dernière intervention
28 octobre 2012

Bonsoir,

La fonction Header ne marchait pas avec du html dans la page sur le serveur distant, je l'ai remplacé par
echo $_SERVER['PHP_SELF']; qui fonctionne tres bien.

Je voudrais faire un tri par selection de la colonne CLASSE, mais que le temps de la consultation de la page et non definitive.

Merci à vous

Et encore un très grand merci à COD57

Alain