Enregistrement données avec ce code

Répondre
jackbocar
le 13/03/2010 à 11:47
jackbocar
Bonjour,

Question, est-il possible d'enregistrer des données dans une table avec un formulaire en utilisant le code ci-dessous ?

<?php
include 'class_connexion.php';

$add = new add();

/*** The DSN ***/
$add->dsn = "mysql:dbname=ordre;host=localhost";

/*** MySQL username and password ***/
$add->username = 'mot de passe';
$add->password = 'XXXXXXXX';


/*** array of values to insert ***/
$values = array(
array('name'=>'chien', 'type'=>'dog'),
array('name'=>'chien', 'type'=>'berger'),
);

/*** insert the array of values ***/
$add->dbInsert('animals', $values);

/*** select all records from table ***/
$records = $add->rawSelect('SELECT * FROM animals');

/*** fetch only associative array of values ***/
$rows = $records->fetchAll(PDO::FETCH_ASSOC);

/*** display the records ***/
foreach($rows as $row)
{
foreach($row as $fieldname=>$value)
{
echo $fieldname.' = '.$value.'<br />';
}
echo '<hr />';
}
?>
moogli
le 16/03/2010 à 11:49
moogli
ben a priori oui après je ne sais pas ce qu'il y a dans ta classe :)

ps : évite les noms qui se ressemble comme row et rows ça prête a confusion est c'est moins lisible ;)

@+
Il en faut peu pour être heureux !!!!!
jackbocar
le 16/03/2010 à 20:04
jackbocar
Bonjour,

Vois-tu cette classe fonctionne très bien et est rapide, la seule chose qui me gène, c'est qu'elle n'est proposée qu'avec ce modèle.

Alors si je change les simple cotes par des doubles ici : array("name"=>"Robert le Moine", "type"=>"Je prie tous ceux qui liront cette histoire, ou l'entendront lire, et qui, l'ayant entendue, la comprendront, de me pardonner s'ils reconnaissent dans sa composition des choses sans élégance, car j'ai été obligé de l'écrire par obéissance. Un abbé nommé N…, recommandable par la science des lettres et la rectitude des moeurs, me montra une histoire sur ce sujet, mais dont il était grandement mécontent, partie en raison de ce qu'elle ne contenait pas le commencement du récit qui doit se prendre au concile de Clermont, partie pour ce que ces riches matériaux étaient jetés sans art, et que la composition littéraire du discours marchait incertaine et négligée. Il m'ordonna donc, comme j'avais assisté au concile de Clermont, d'attacher à cette narration la tête qui lui manquait, et d'en rendre la lecture plus agréable par un style plus soigné."),

Je peux insérer dans ma table des textes très long, mais je suis obligé de me servir du code tel quel.
Je ne sais pas comment réaliser un formulaire avec ces (array).
J'ai pourtant essayé tout un tas de formulaire, sans résultat.

Si tu as une idée, merci de me la communiquer

Pour la classe :

<?php
public function dbInsert($table, $values)
{
$this->conn();
/*** snarg the field names from the first array member ***/
$fieldnames = array_keys($values[0]);
/*** now build the query ***/
$size = sizeof($fieldnames);
$i = 1;
$sql = "INSERT INTO $table";
/*** set the field names ***/
$fields = '( ' . implode(' ,', $fieldnames) . ' )';
/*** set the placeholders ***/
$bound = '(:' . implode(', :', $fieldnames) . ' )';
/*** put the query together ***/
$sql .= $fields.' VALUES '.$bound;

/*** prepare and execute ***/
$stmt = $this->db->prepare($sql);
foreach($values as $vals)
{
$stmt->execute($vals);
}
}
?>
moogli
le 17/03/2010 à 09:16
moogli
lu,

donc a vu de nez construction totalement dynamique de la requete, donc il te faut construire ton array a partir des champs du formulaire.

Si tu met en nom des champs du formulaire les noms des champs de ta table, une "simple" copie de $_POST dans $values devrait faire l'affaire ? (enfin array($_POST) parce qu'il faut que tu ai un tableau contenant un tableau qui a les noms de champs dans en clef du tableau.

si non il faut le construire a la main, lors de la vérification complète du formulaire.
genre :
if (!empty ($_POST['truc'])) {
$values['nom de champ qui va bien'] = $_POST['truc'];
}

voila l'idée de la chose :)

@+
Il en faut peu pour être heureux !!!!!
jackbocar
le 26/03/2010 à 07:36
jackbocar
Bonjour,

Je pense avoir trouvé la solution :
<?php
$values = array(array("animal_name"=>"".$_POST['animal_name']."", "animal_type"=>"".$_POST['animal_type'].""));
?>


Dis-moi ce que tu en penses

Jack Bocar
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours