CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[PHP] Verifier qu'une table existe

TutorialPod
TutorialPod
Niveau 6
29 novembre 2010 à 22:15:15

Bonjour, bonsoir !
J'ai un gros problème en PHP, très embarrassant.

En fait, je fais une requete dans ma base de donnée, qui va chercher toutes les informations d'une table, qui a nom variable.

<?php
$page = "test";
$req = $bdd->query('SELECT * FROM ' . $page . ' ');
?>

Et sur chaque page, le contenu du $page change. Or, il se peut que la table n'existe pas dans la base de donnée.
Je mets donc un "or die()" à la fin.

Ca marche bien, mais le problème, c'est qu'un or die arrete le script de la page; en gros ca arrete de charger la page, et le footer ne s'affiche pas etc..

Ma question : est-ce qu'il y a un moyen de vérifier qu'une table existe ?
Merci :)

deepblue
deepblue
Niveau 16
29 novembre 2010 à 23:26:09

SHOW TABLES FROM taBaseDeDonne LIKE 'taTable'

Rasta_beuh
Rasta_beuh
Niveau 8
30 novembre 2010 à 12:57:31

non tu tes req si false tu a une erreur !
si null

deepblue
deepblue
Niveau 16
30 novembre 2010 à 13:16:14

Rasta_beuh, j'te mets dans un avion et on regardera pendant le vol si tu as assez de kerozen pour terminer le voyage, ok ?

C'est stupide de générer des erreurs.

Rasta_beuh
Rasta_beuh
Niveau 8
30 novembre 2010 à 14:51:30

ah okey ... tu peut retourner sur terre !

je lui conseil juste une voix pas un code ...

alors soit plus humble et moins insultant on est loin d'avoir tous ta science infuses :ok:

deepblue
deepblue
Niveau 16
30 novembre 2010 à 15:11:56

J'ai imagé ce que tu as donné comme idée.

Et je n'ai pas la sicence infuse, la solution que j'ai donné je l'ai cherchée.

(les gens se froissent vraiment pour quedal...)

Rasta_beuh
Rasta_beuh
Niveau 8
30 novembre 2010 à 16:12:08

"Pour les requêtes du type SELECT, SHOW, DESCRIBE, EXPLAIN et les autres requêtes retournant un jeu de résultats, mysql_query() retournera une ressource en cas de succès, ou FALSE en cas d'erreur."

http://php.net/manual/fr/function.mysql-query.php

aller du coup easy ...

sur ce ton image avec le kérosène n'est franchement pas
adapter ..

"J'ai imagé ce que tu as donné comme idée.

Et je n'ai pas la sicence infuse, la solution que j'ai donné je l'ai cherchée.
(les gens se froissent vraiment pour quedal...)"

Perso je m’en fous ... mais juste pour dire c'est un ressentie
...
et ça peut te porter préjudice en plus tes juste étudiant ...

:d) j'aime pas donner la solution direct je fais chercher les gens ... c'est plus didactique!

deepblue
deepblue
Niveau 16
30 novembre 2010 à 16:40:10

Est-ce que le concept de : "je regarde si les choses existent avant de les utiliser" te paraît intéressant ? Il existe une requête qui permet de savoir si une table existe. Il veut utiliser une table qui n'existe pas forcément. D'un point de vue algorithmique, tu vas tester si la table existe avant de faire joujou avec.

Mon status d'étudiant est un autre problème. Je ne met pas de niveau devant un morceau de papier (et ne crois pas que je me prends pour un king).

Rasta_beuh
Rasta_beuh
Niveau 8
30 novembre 2010 à 17:01:46

d'un point de vu conceptuelle sa table existe à la base mais bon ...

Mon status d'étudiant est un autre problème. Je ne met pas de niveau devant un morceau de papier (et ne crois pas que je me prends pour un king).
Ici en tous cas on a l'impression.

:d) je suis d'accord mais ce n'est pas le cas de la société.

deepblue
deepblue
Niveau 16
30 novembre 2010 à 17:24:32

"d'un point de vu conceptuelle sa table existe à la base mais bon ...", c'est bien le problème, on ne le sait pas : "Or, il se peut que la table n'existe pas dans la base de donnée.".

Pour continuer ta parenthèse sur la société : oui on lit les bouts de papier avant d'accepter le mec à un entretiens, sauf que je n'ai jamais nié ça. Le sujet initial était : vérifier qu'un table existe dans une base de donnée. Ma réponse est en accord avec la problématique. Faire un "select * from foo" en ne sachant pas si foo existe, même si on aura un false en retour qu'on pourra le traité (un false avec mysql_query en tout cas), c'est juste conceptuellement mauvais.
Si tu fais une requête et qu'il n'y a aucun résultat : va pas le false. Si tu fais une requête mais que derrière, ça génère une erreur "table foo does not exist", aucun intéret de scotcher ton code avec un test boolean. En objet, j'aurais levé une exception.

TutorialPod
TutorialPod
Niveau 6
01 décembre 2010 à 12:14:05

Oula, ne vous prenez pas trop la tete hein ^^
Vos solutions me semblaient trop compliqué, donc finalement j'en ai trouvé une autre :

$page = "test";
if($req = $bdd->query('SELECT * FROM ' . $page)) {
// Les actions si la table existe
} else {
echo "La table n'existe pas !";
}

Ca marche bien :)
"Résolu" :-)

Bunyan
Bunyan
Niveau 17
01 décembre 2010 à 12:29:29

Ce que disait Rasta_beuh et ce que déconseillait fortement de faire Deepblue en somme :)

deepblue
deepblue
Niveau 16
01 décembre 2010 à 12:50:22
  • soupir*
LeLion-67
LeLion-67
Niveau 10
03 décembre 2010 à 15:28:15

Cela dit, moi j'aurai plus fais un show tables puis un preg_match/autre.

LeLion-67
LeLion-67
Niveau 10
03 décembre 2010 à 15:29:02

Ah ben c'est presque ce que disait deepblue.

M'apprendra à lire qu'a moitié !

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment