Vous n'êtes pas identifié(e).
Pages : 1
Bonjour, j'ai un petit souci avec cette erreur:
Warning: PDOStatement::execute(): SQLSTATE[42S02]: Base table or view not found: 1146 Table 'personnages.magicien' doesn't exist in /Users/az/Sites/POO/TP3/Manager.class.php on line 19
Ce qui veut dire que ma table n'existe. Et c'est vrai, la table personnage.magicien n'existe pas, celle qui existe, c'est la table Magicien tout court.
Voici mon code:
Ce qui est bizard, c'est que lorsque je fais un echo $perso -> type(), ça m'affiche bien Magicien.
Alors pourquoi dans ma requete ça ne m'affiche pas ce qu'il faut?
Une petite précision, Magicien est aussi le nom de la class fille de la class Personnage.
Merci....
C'est bon problème résolu. L'erreur était tellement énorme que j'ai honte de mon post. Bon fo dire que j'ai pas tres bien dormi la nuit dernière et que je suis crevé.
Une bonne nuit de sommeil s'impose.
@+
bonjour,
j'ai créé un formulaire qui permet l'upload de fichier, tel que des images, du son ou des videos.
Voici comment ce présente le formulaire
L'upload des images ce fait bien ainsi que leur inscription dans la BDD.
Par contre pour les sons et les videos ça plante. Pas d'upload, ni d'inscription dans la BDD
je vous montre, mes tables:
Voici le code:
<body>
<p><h1 id="titre">Ajouter un sujet</h1></p>
<form action="" method="post" enctype="multipart/form-data">
<fieldset>
<table id="tform">
<tr>
<td width="10%"><label>Sujet:</label></td>
<td><input id="sujet" type="text" name="sujet"/></td>
</tr>
<tr>
<td width="10%"><label>Message:</label></td>
<td><textarea id="message" name="message"></textarea></td>
</tr>
<tr>
<td width="10%"><label>Votre image:</label></td>
<td><input type="file" name="image" value="parcourir"/><label for="format" class="format"> * votre fichier doit etre au format jpg, jpeg, gif, png pour etre uploadé</label></td>
</tr>
<tr>
<td width="10%"><label>Votre son:</label></td>
<td><input type="file" name="son" value="parcourir"/><label for="format1" class="format"> * votre fichier doit etre au format mp3 pour etre uploadé</label></td>
</tr>
<tr>
<td width="10%"><label>Votre video:</label></td>
<td><input type="file" name="video" value="parcourir"/><label for="format" class="format"> * votre fichier doit etre au format mp4 pour etre uploadé</label></td>
</tr>
</table>
</fieldset>
<input type="submit" value="Envoyer" name="valider"/>
</form>
<br/><br/><br/><br/>
<a href="monblog.php">Retourner à la page d'acceuil</a>
</body>
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
}
catch (Exception $e)
{
die ('erreur: ' .$e->getMessage());
}
/*-----------------------------------------------------------------------------------------------
Enregistrement du billet dans la BDD
------------------------------------------------------------------------------------------------*/
$req = $bdd->prepare('INSERT INTO billet(titre, contenu, date_creation)
VALUES(:titre, :contenu, NOW())');
$req->execute(array(
'titre' => $_POST['sujet'],
'contenu' => $_POST['message']
));
$req->closeCursor();
/*------------------------------------------------------------------------------------------------
Enregistrement de l'image dans la BDD
------------------------------------------------------------------------------------------------*/
$emp = 'images/';
$req = $bdd->prepare('INSERT INTO images(nom, sujet, taille, emplacement, date)
VALUES(:nom, :sujet, :taille, :emplacement, NOW())');
$req->execute(array(
'nom' => $_FILES['image']['name'],
'sujet' => $_POST['sujet'],
'taille' => $_FILES['image']['size'],
'emplacement' => $emp
));
$req->closeCursor();
/*-----------------------------------------------------------------------------------------------
Upload de l'image dans image/
------------------------------------------------------------------------------------------------*/
if (isset($_FILES['image']) AND $_FILES['image']['error'] == 0)
{
if ($_FILES['image']['size'] <= 10485760)
{
$infosfichier = pathinfo($_FILES['image']['name']);
$extension_upload = $infosfichier['extension'];
$extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
if (in_array($extension_upload, $extensions_autorisees))
{
move_uploaded_file($_FILES['image']['tmp_name'], $emp . basename($_FILES['image']['name']));
}
}
}
?>
<pre>
<?php
print_r($_FILES['image']);
?>
</pre>
<?php
/*-----------------------------------------------------------------------------------------------
Enregistrement du son dans la BDD
------------------------------------------------------------------------------------------------*/
$emps = 'sons/';
$req = $bdd->prepare('INSERT INTO son(s_nom, s_sujet, s_taille, s_emplacement, s_date)
VALUES(:s_nom, :s_sujet, :s_taille, :s_emplacement, NOW())');
$req->execute(array(
'nom' => $_FILES['son']['name'],
'sujet' => $_POST['sujet'],
'taille' => $_FILES['son']['size'],
'emplacement' => $emps
ligne 130 ));
$req->closeCursor();
/*-----------------------------------------------------------------------------------------------
Upload du son dans sons/
------------------------------------------------------------------------------------------------*/
if (isset($_FILES['son']) AND $_FILES['son']['error'] == 0)
{
if ($_FILES['son']['size'] <= 104857600)
{
$infosfichier = pathinfo($_FILES['son']['name']);
$extension_upload = $infosfichier['extension'];
$extensions_autorisees = array('mp3');
if (in_array($extension_upload, $extensions_autorisees))
{
move_uploaded_file($_FILES['son']['tmp_name'], $emp . basename($_FILES['son']['name']));
}
}
}
?>
<pre>
<?php
print_r($_FILES['son']);
?>
</pre>
<?php
/*-----------------------------------------------------------------------------------------------
Enregistrement de la video dans la BDD
------------------------------------------------------------------------------------------------*/
$empv = 'videos/';
$req = $bdd->prepare('INSERT INTO video(v_nom, v_sujet, v_taille, v_emplacement, v_date)
VALUES(:v_nom, :v_sujet, :v_taille, :v_emplacement, NOW())');
$req->execute(array(
'nom' => $_FILES['video']['name'],
'sujet' => $_POST['sujet'],
'taille' => $_FILES['video']['size'],
'emplacement' => $empv
ligne 176 ));
$req->closeCursor();
/*-----------------------------------------------------------------------------------------------
Upload de la video dans videos/
------------------------------------------------------------------------------------------------*/
if (isset($_FILES['video']) AND $_FILES['video']['error'] == 0)
{
if ($_FILES['video']['size'] <= 1048576000)
{
$infosfichier = pathinfo($_FILES['video']['name']);
$extension_upload = $infosfichier['extension'];
$extensions_autorisees = array('mp4');
if (in_array($extension_upload, $extensions_autorisees))
{
ligne 192 move_uploaded_file($_FILES['video']['tmp_name'], $empv . basename($_FILES['video']['name']));
}
}
}
?>
<pre>
<?php
print_r($_FILES['video']);
?>
</pre>
<?php
?>
</html>
Et pour finir, voici les messages d'erreurs que j'obtiens avec quelques print_r:
Je précise, que je travail avec MAMP et que j'ai augmenté la taille max des téléchargement à 1000 mo
Bien voila, merci pour votre aide
Salut, Maljuna Kris, pas le truc de la guerre des etoile, j'ai d'abord pensé George Lucas, ensuite j'ai compris.
Sinon ce que tu as prédis c'est effectivement produit, du coup, j'ai supprimé les INNER JOIN et compagnie, et j'ai fait passé l'id du billet par l'url que j'ai ensuite récupéré pour afficher les commentaires associés.
ET la ça marche sans problèmes.
Merci pour l'aide
C'est bon j'ai compris, voici le code:
Je pense que c'est correct, en tout cas ça marche.
Merci
Merci pour la réponse, mais je suis toujours dans le brouillard.
Tu me dis:
_ "Ce que tu veux faire ne relève pas de la requête en jointure mais de l'exploitation de son résultat en PHP."
ne faut-il pas faire une jointure pour pouvoir afficher uniquement les commentaires associés à "billet"?
_"Dans ta boucle while à chaque itération tu réaffiches le titre la date de création et le contenu, il faut le faire une seule fois, avant la boucle."
La boucle while sert à parcourir le contenu de mes tables, Comment afficher quelque chose avant la boucle?
Bonjour,
je bloque sur le problème que voici:
J'ai 2 tables dans une bdd et j'aimerais les joindre entre elles afin de les faire correspondre.
Voici les 2 tables:
voici mon code:
voici ce que j'obtiens dans le navigateur:
Affichage billet
mon nouveau site 2013-05-24 18:52:18
Affichage commentaires
ludo 2013-05-24 00:05:14
tu gère mon potemon nouveau site 2013-05-24 18:52:18
Affichage commentaires
marie 2013-05-24 00:56:41
salutmon nouveau site 2013-05-24 18:52:18
Affichage commentaires
luc 2013-05-24 01:47:59
salut super trop coolmon nouveau site 2013-05-24 18:52:18
Affichage commentaires
marc 2013-05-24 02:16:44
juste pour faire un pti testmon nouveau site 2013-05-24 18:52:18
Affichage commentaires
marc 2013-05-24 02:17:11
juste pour faire un pti test
Voici ce je voudrais obtenir:
Affichage billet
mon nouveau site 2013-05-24 18:52:18
Affichage commentaires
ludo 2013-05-24 00:05:14
tu gère mon pote
marie 2013-05-24 00:56:41
salut
luc 2013-05-24 01:47:59
salut super trop cool
marc 2013-05-24 02:16:44
juste pour faire un pti test
marc 2013-05-24 02:17:11
juste pour faire un pti test
Alors comment faire, parce que la je sèche. Merci d'avance
Très bien je vais étudier tout ça, merci à tous, à bientôt; enfin pas trop tôt j'espère .
Eurêka ça marche enfin, j'ai effacé tout le script et tout réécris comme vous me l'avez dis et ça marche. Merci beaucoup à tous.
Du coup, j'ai une autre question:
si je rajoute à mon formulaire: <input type"text" name"nom"/> comment faire apparaitre le nom de la personne sur la page de redirection.
J'ai bien tenter un:
$nom=$_post[nom];
echo "$nom";
mais ça ne marche pas ce qui est logique puisque la page sur laquelle nous redirige le header n'a plus de lien avec le formulaire de base.
heum parton pour la syntaxe et merci pour votre aide.
<?
if($_POST[sex]=='femme')
{
header('location:femme.php');
}
elseif($_POST[sex]=='homme')
{
header('location:homme.php');
}
exit
?>
c'est mieux comme ça? Mais ça ne fonctionne toujours pas. Comme je l'avais évoqué précédemment est ce que le problème ne vient pas des BOM?
Autre chose, est-il correct d'écrire if($_POST[sex]=='femme') sex étant le nom du select (<select name"sex">) == 'femme' qui est la valeur de option (<option value "femme">)?
Saluton,
@Jc, espèce de jésuite ! Pourquoi tu poses une question dont chacun connaît déjà la réponse ?
@PhacheP, le monsieur Jc te dit que ton <select name="sex"> du formulaire, ne s'appelle pas $_POST['sex_select'] mais bien plus sûrement $_POST['sex']
Voilà, c'est plus clair maintenant ?
j'ai bien compris ce que jc voulait dire, j'ai essayé mais ça ne fonctionne pas:
<?
if($_POST[sex])=='femme'
{
header('location:femme.php');
}
else($_POST[sex])=='homme'
{
header('location:homme.php');
}
exit
?>
Donc ma question est: où est la faute?
Merci JC pour ta réponse, j'ai testé plusieurs combinaisons, mais rien ne marche. En fait, je ne sais pas trop comment écrire les conditions pour que en fonction du choix de la personne, il ou elle soit redirigée sur la bonne page.
j'ai fait beaucoup de recherches, j'ai testé plusieurs méthodes, mais rien ne marche.
Bien, j'ai essayer de faire une redirection juste avec le header sans les conditions, ce qui donne
<?
header('location:femme.php')
?>
et la ça marche, seulement, ça n'a aucun interet.
je ne suis pas sur que mon code avec les conditions soit juste car avec un élément <select> qui permet de choisir entre homme ou femme, ça complique un peu les choses.
Sinon, j'ai trouver un post qui parle d'un code BOM. Il est expliquer qu'il faudrait supprimer ce BOM pour que les header fonctionnent correctement en choisissent dans son editeur l'option: UTF-8 sans BOM.
Je travail avec coda 2.0.7 et j'ai bo chercher, je ne trouve pas d'option UTF-8 sans BOM.
Bonjour, j'ai créé un petit formulaire qui se présente comme ceci
j'aimerais ajouter des conditions et rediriger sur telle ou telle page en fonction du sexe.
j'ai donc fait un autre page php avec les conditions que voici:
et voici le code des pages de redirection:
le problème c'est que lorsque je valide dans firefox
je suis redirigé sur header.php qui devrait me rediriger en fonction du choix sur homme.php ou femme.php. Mais il ne le fait pas firefox reste sur:
J'ai fait tout ça en suivant le tuto, mais je dois mal faire quelque chose, et ne sais pas quoi.
Voila merci à qui voudra bien m'aider
C'est bon j'ai trouver, en fait, lorsque j'auvrais mon fichier appel.php, je tapais dans la barre d'adresse localhost:8887/appel.php/.
Hors, il faut taper localhost:8887/appel.php et ne pas mettre de / à la fin.
Voila c'était tous bete, mais il m'a fallu 3 jours pour que je comprenne.
J'espère que ça servira à d'autre.
Merci Maljuna Kris c'est toi qui m'a mis la puce.
Merci pour la réponse, effectivement normalement je devrais avoir localhost:8887/cible.php.
Bonjour,
je débute en php et je rencontre un problème avec les formulaire et la method post.
Je suis sous osx 10.8.3, je travail avec coda et mamp.
J'ai suivi un tuto piquer sur le site du zéros pour faire un formulaire très simple et le transmettre en utilisant "post"
voici le code:
page d'appel:
page cible:
lorsque j'ouvre la page d'appel dans firefox, j'obtiens ceci:
lorsque je valide, j'obtiens ceci:
Il semble que la page cible aille bien été appeler dans le navigateur, mais celle ci n'apparait pas et je ner sais pas pourquoi????
Si quelqu'un sait merci à lui
Cordialement...
Pages : 1