Et oui, SQL ne permet aucune incohérence, bien vu de ta part, une telle erreur est en effet parfois chiante à trouver car on est souvent sûr de nous et on cherche quelque chose de plus sérieux
Maintenant que tu sais insérer ( idem pour d'autres type de requêtes) et que tu sais que si cela ne marche pas c'est que tu as oublié quelque chose tu peux te poser tranquillement pour mettre au propre ton concept.
Tu pourrais décomposer en plusieurs tables, exemple :
- Table des marque de véhicule avec leur identifiants.
- Table de description.
- Table des horaires de réservation
etc... Il est plus bien pratique/évolutif et rapide de faire des jointures cohérentes que de tout mettre en une seule tables.
A le moindre modification (ajout / suppression de champs, nouvelles options, etc...) il sera plus facile à mettre en place une nouvelle table et la relation fera le travail de recherche.
la limite du nombre de tables dépend de la taille de mémoire allouée par ton disque dur / ou hébergeur, donc pas de souci de ce côté la. Les bases de données ont étés pensées comme cela, pas pour faire une unique table immense
C'est conseillé de décomposer en plusieurs table ?
Comme cité, je peu créer un table par exemple avec la marque et le model de la voiture ;
Autre tâble avec ville départ, ville retour...
Cela peux être effectivement une idée. cependant, pour faire appel à la table via un fichier php, et surtout pour faire appel à plusieurs champ bdd qui sont situés dans 2 ou 3 table est-il possible .
simple exemple, que j'ai tester aujourd'hui :
$reponse = $bdd->query('SELECT veh, carburant, portes, prix, climatisation FROM t_test WHERE id=\'11\'');
while ($donnees = $reponse->fetch())
{
echo $donnees['veh'];
}
$reponse->closeCursor();
?>
Imaginons que le champs "PRIX" se trouve dans une autre table, dois-je l'indiquer au niveau de query j'imagine genre SELECT FROM t_test AND prix...
On utilise aussi PHP surtout pour générer du code HTML, donc en faisant une jointure tu va générer certaines partie de ton formulaire.
La tout est statique, si tu veux rajouter une marque, une description ou changer un tarif tu change le code HTML, c'est pas le but.
Que la partie horaire n'est pas vocation à évoluée (html en dur) ok, mais pour le reste non. On entre une nouvelle marque,un nouveau lieu dans la base de donnée. l'utilisateur demande l'url de la page, jointure SQL + génération du formulaire.
Est-ce plus clair
Tu vois, partie SQl est ultra importante, c'est un peu elle qui dicte le code PHP qui sera écrit pour générer la page. Le reste du code PHP n'est que des insertion, suppressions, et 90% de vérification/sécurisation des données utilisateur.
Voilà pourquoi on utilise un outil comme merise, mysql Workbench pour concevoir la structure de la base de données. Tu peux aussi le faire sur papier bien sûr...
Et pour le concept : un logigramme est assez utile aussi.
------------
D'ailleurs mettre des $_POST ou $_GET directement dans une requête comme tu le fais en ce momment est strictement interdit : c'est une faille.
Il faut donc vérifier chaque paramètre, il existe aussi des filtres prêt à l'emploi pour traiter/nettoyer en PHP
Non cela vient naturellement petit à petit en pratiquant , perso je ne suis qu'un amateur aussi, j'ai beaucoup à apprendre encore...
Je t'ai juste informer du but à atteindre, sachant que l'on reste en procédurale (pas de POO ni de modèle MVC)
Comme tu débutes tu peux bien sûr t'entraîner avec une seule table, j'ai également fais de même donc pas de soucis.C'est même normal...
Cela va te permettre à créer une page dynamique, faire des insertions, mises à jour, suppressions dans ta table et vérifier les données POST avant de les enregistrer.
Donc on peut continuer ainsi... mais pas de champ en varchar pour stocker des données temporelles...
Désolé pour ce retard, en effet, comme soupçonné depuis le début, mon easyphp ne fonctionnait pas correctement suite au souci de plusieurs DLL windows, j'ai dû formater et réinstaller le tout :-)
Tout est ok en ce moment, merci bcp
Par contre, j'ai une question, concernant la partie Fonctions, j'ai suivi 2 fois le cours, mais je n'ai strictement rien compris au système des fonctions.
J'essaye de comprendre à quoi peu servir une fonction par rapport au formulaire que je souhaite réaliser pour mon test, mais je ne trouve pas de solution.
Entant le cours parle de calculCube ( En fin, moi, j'aurai utilisé autre chose que le calcul du cube :-p ) mais bon je respect le choix et je pense que c'est à cause de cela que je n'ai pas compris, car je suis trop, mais alors là trop naze en math.
Aurais-tu un autre exemple pour quoi svp ?
Je me suis basé sur mon formulaire, ma logique est :
Comment calculer le montant d'une location de voitures à l'aide de la date.
Date aller + date retour = total jours + heure aller + heure retour = total ?
Une fonction demande un peu d'exercices pour bien comprendre.
Ensuite même si elle apporte plus de lisibilité dans ton code, car elle est extérieur au script de traitement et qu'il suffit de la changer pour modifier le comportement général, elle est surtout utile si tu en as a souvent besoin. Autrement dit que plusieurs scripts lui fait appel.
Exemple, un script de connexion, inscription, mot de passe oublié et modifier mdp/pseudo/mail. Il est évident qu'une fonction de sécurisation du pseudo, mail et mdp servira aux 4 formulaires. On mettra ces fonctions dans un script externe ( fc_verif.php par exemple) qui sera inclus selon l'action en cours.
ps: on dépasse le cadre du HTML, il faut travailler dessus et poser tes questions dans un autre forum (js, php, java, etc...). Le HTML n'est pas un langage de programmation.
Ensuite pour les dates il faut s'exercer aussi, perso j'utilise le langage SQL (donc dans mes requête à la DB) qui mâche le travail, il est puissant pour cela, il tient même compte des années bissextiles, chose que tu auras du mal à faite toi même...
Dans ton cas un simple between entre 2 dates te sortira le nombre de jours, heures, minutes et secondes écoulées. As toi de choisir le format de sortie ensuite, Intéressant non?
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.