PHP et MySQL

Résolu
casper77610 Messages postés 28 Date d'inscription dimanche 27 mars 2011 Statut Membre Dernière intervention 28 octobre 2012 - 1 avril 2011 à 21:48
casper77610 Messages postés 28 Date d'inscription dimanche 27 mars 2011 Statut Membre Dernière intervention 28 octobre 2012 - 4 avril 2011 à 22:12
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

casper77610 Messages postés 28 Date d'inscription dimanche 27 mars 2011 Statut Membre Dernière intervention 28 octobre 2012
4 avril 2011 à 22:12
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
3
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
2 avril 2011 à 14:34
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++
0
casper77610 Messages postés 28 Date d'inscription dimanche 27 mars 2011 Statut Membre Dernière intervention 28 octobre 2012
2 avril 2011 à 17:49
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
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
2 avril 2011 à 21:50
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


0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
2 avril 2011 à 21:58
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++


0
casper77610 Messages postés 28 Date d'inscription dimanche 27 mars 2011 Statut Membre Dernière intervention 28 octobre 2012
3 avril 2011 à 09:02
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
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
3 avril 2011 à 10:09
bonjour
avec un tableau html
a++











0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
3 avril 2011 à 10:10
j'ai changé la gestion de la date + la table est differente pour la date
a++
0
casper77610 Messages postés 28 Date d'inscription dimanche 27 mars 2011 Statut Membre Dernière intervention 28 octobre 2012
3 avril 2011 à 12:10
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++
0
casper77610 Messages postés 28 Date d'inscription dimanche 27 mars 2011 Statut Membre Dernière intervention 28 octobre 2012
3 avril 2011 à 12:13
Demande d'aide terminé grasse à cod57
Merci
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
3 avril 2011 à 14:45
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++
0
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
3 avril 2011 à 16:09
Cod57: Je voudrais interfacer tout cela avec la base des employés de la centrale de Fukushima via Soap ??
LOL..
S.
0
casper77610 Messages postés 28 Date d'inscription dimanche 27 mars 2011 Statut Membre Dernière intervention 28 octobre 2012
3 avril 2011 à 16:47
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
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
3 avril 2011 à 17:02
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 ?
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
3 avril 2011 à 17:12
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++
0
casper77610 Messages postés 28 Date d'inscription dimanche 27 mars 2011 Statut Membre Dernière intervention 28 octobre 2012
4 avril 2011 à 22:01
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
0
Rejoignez-nous