8791 sujets

Développement web côté serveur, CMS

c'est un peut bête, moi j'ai un problème de requette, j'aimerais que quand j'envoie mon formulaire, les infos soient marquer dans la requette et crée la table mais ça me mais une erreur de syntax:

<?php include "mise en page/basedonné.php";?>
<?php
$reponse = $bdd->query('CREATE TABLE IF NOT EXISTS `' . $_POST['nomfilm'] . '`(
  `id_acteur` int(11) NOT NULL AUTO_INCREMENT,
  `nomacteur` varchar(255) NOT NULL,
  `role` varchar(255) NOT NULL,
  `url` varchar(255) NOT NULL,
  `photo` varchar(100) NOT NULL,
  PRIMARY KEY (`id_acteur`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
INSERT INTO `' . $_POST['nomfilm'] . '` (`id_acteur`, `nomacteur`, `role`, `url`, `photo`) VALUES
(1, `' . $_POST['NomActeur1'] . '`, `' . $_POST['RoleActeur1'] . '`, `' . $_POST['urlActeur1'] . '`, `' . $_POST['tof1'] . '`),
(2, `' . $_POST['NomActeur2'] . '`, `' . $_POST['RoleActeur2'] . '`, `' . $_POST['urlActeur2'] . '`, `' . $_POST['tof2'] . '`),
(3, `' . $_POST['NomActeur3'] . '`, `'. $_POST['RoleActeur3'] . '`, `' . $_POST['urlActeur3'] . '`, `' . $_POST['tof3'] . '`),
(4, `' . $_POST['NomActeur4'] . '`, `' . $_POST['RoleActeur4'] . '`, `' . $_POST['urlActeur4'] . '`, `' . $_POST['tof4']. '`);') or die(print_r($bdd->errorInfo()));

while ($donnees = $reponse->fetch())
{
} $reponse->closeCursor();
?>


Donc je suis trop trop fort j'ai trouver tout seule, j'ai modifier le code^^.
Par contre comment faire quand un mot a un ' ? car ca fait une erreur, il faut mettre deux ''

Edit ca marche, ca crée bien la table mais ne marque pas les info a l'intérieur ???? Comment faire ?
ton lien ne marche pas, au pire je peut utiliser un système qui remplace certaine lettre par d'autre ?
Genre:

<?php
function Censurer($buffer) {
     // Ici c'est notre fonction qui sera appelée avec ob_end_flush().
     $buffer = str_replace(array('Censuré', 'phrase'), '<span style="color: red;"> [Censuré] </span>', $buffer);
     return $buffer;
}
 
// On initialise le buffer :
ob_start('Censurer');
 
//… le contenu de notre page :
echo "Censuré une phrase, ce n'est pas bien.";
/* 
   Ici, la fonction ob_end_flush() va être appelée,
   ce qui provoquera le retour du tampon au navigateur.
   Mais avant, notre fonction de callback sera
   automatiquement appelée pour appliquer la censure.
*/
ob_end_flush();
?>

Modifié par loixi (30 Oct 2010 - 09:04)
Pourquiez vous me dire pourquoi ca ne fait que crée la table sans rien ajoute les onfo ??

aUTRE probème, j'ai souvent cette erreur:
Array ( [0] => 42S22 [1] => 1054 [2] => Unknown column 'test' in 'field list' ) 1
et je ne comprend pas pourquoi ??? pas exemple avec ce code:
<?php
$reponse = $bdd->query('INSERT INTO `'. $lettre . '`(`id`, `titre`, `titrescon`, `info_film`, `jaquette`, `Synopsis`, `Avissurlefilm`, `etoile`, `nofiche`) VALUES 
(NULL, `' . $titre . '`, `' . $titrescon . '`, `' . $info_film . '`, `' . $jaquette . '`, `' . $Synopsis . '`, `' . $Avissurlefilm . '`, 0, `' . $nofiche . '`);') or die(print_r($bdd->errorInfo())); while ($donnees = $reponse->fetch())
{
} $reponse->closeCursor();
?>

Modifié par loixi (30 Oct 2010 - 09:03)
loixi a écrit :

aUTRE probème, j'ai souvent cette erreur:
Array ( [0] =&gt; 42S22 [1] =&gt; 1054 [2] =&gt; Unknown column 'test' in 'field list' ) 1


Soit : le champs test n'existe pas en BDD.
Soit : un oubli de quotes probablement. Mysql prend test comme une colonne, alors que c'est une donnée de type chaîne que tu veux lui donner.

Merci d'insérer ton code dans les balises prévues à cet effet et de l'indenter. Un vendredi soir mes yeux n'ont pas la force de décrypter ta requête.
Un petit coup de addslashes sur tes données devrait aider à faire passer ta requête SQL Smiley cligne

<?php 
$reponse = $bdd->query('INSERT INTO `'. $lettre . '`(`id`, `titre`, `titrescon`, `info_film`, `jaquette`, `Synopsis`, `Avissurlefilm`, `etoile`, `nofiche`) VALUES  
(NULL, `' . addslashes($titre) . '`, `' . addslashes($titrescon) . '`, `' . addslashes($info_film) . '`, `' . addslashes($jaquette) . '`, `' . addslashes($Synopsis) . '`, `' . addslashes($Avissurlefilm) . '`, 0, `' . addslashes($nofiche) . '`);') or die(print_r($bdd->errorInfo())); while ($donnees = $reponse->fetch()) 
{ 
} $reponse->closeCursor(); 
?>


Ensuite pour apprendre à débugger ta requête par toi même, voici ce que j'aurais fait.

J'aurais tout sorti pour ne pas faire de requête, par contre j'aurais afficher le résultat dans mon navigateur, en gros j'aurai écrit :

<?php 
echo "('INSERT INTO ".$lettre." (id, titre, titrescon, info_film, jaquette, Synopsis, Avissurlefilm, etoile, nofiche) VALUES (NULL, ".$titre.", ".$titrescon.", ".$info_film.", ".$jaquette.", ".$Synopsis.", ".$Avissurlefilm.", 0, ".$nofiche.")')"; 
?>


Ensuite j'aurais recopier la requête pour l’exécuter directement sur ma base (via phpmyadmin par exemple).

A partir de là, la réponse aurait peut être été plus clair du premier coup.
Modifié par Super_baloo8 (05 Nov 2010 - 16:48)
merci pour ton aide, je verrais ca la je modifie une autre partit en ce moment comme je bloquais ici.