Bonjour,

Voila je rencontre un petit problème avec mon code. Je suis en train de suivre la formation Tutoriel PHP : Développer un site .
Précisemment la vidéo suivante: https://youtu.be/Aeb_pUAIA0U?list=PLjwdMgw5TTLX9UU3k2-zX0cWNgO6K-Q02

Ce que je fais

J'en suis à cette étape: https://youtu.be/Aeb_pUAIA0U?list=PLjwdMgw5TTLX9UU3k2-zX0cWNgO6K-Q02&t=1005
J'ai copier coller le code SQL obtenu sur MySQL Workbench dans l'interface SQL de PHPmyadmin et j'ai executé le code.

-- MySQL Script generated by MySQL Workbench
-- mer. 06 mai 2020 17:55:28 CEST
-- Model: New Model    Version: 1.0
-- MySQL Workbench Forward Engineering

SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';

-- -----------------------------------------------------
-- Schema BDD
-- -----------------------------------------------------

-- -----------------------------------------------------
-- Schema BDD
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `BDD` DEFAULT CHARACTER SET utf8 ;
USE `BDD` ;

-- -----------------------------------------------------
-- Table `BDD`.`users`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `BDD`.`users` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `login` VARCHAR(255) NULL,
  `password` VARCHAR(255) NULL,
  PRIMARY KEY (`id`))
ENGINE = MyISAM
DEFAULT CHARACTER SET = utf8;

-- -----------------------------------------------------
-- Table `BDD`.`posts`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `BDD`.`posts` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(255) NULL,
  `content` TEXT NULL,
  `created` DATETIME NULL,
  `online` INT NULL,
  `type` VARCHAR(255) NULL,
  `slug` VARCHAR(255) NULL,
  `user_id` VARCHAR(45) NULL,
  PRIMARY KEY (`id`),
  INDEX `fk_posts_users1_idx` (`user_id` ASC))
ENGINE = MyISAM
DEFAULT CHARACTER SET = utf8;

-- -----------------------------------------------------
-- Table `BDD`.`configs`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `BDD`.`configs` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(255) NULL,
  `value` VARCHAR(255) NULL,
  PRIMARY KEY (`id`),
  UNIQUE INDEX `name_UNIQUE` (`name` ASC))
ENGINE = MyISAM
DEFAULT CHARACTER SET = utf8;

-- -----------------------------------------------------
-- Table `BDD`.`medias`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `BDD`.`medias` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `mediascol` VARCHAR(255) NULL,
  `file` VARCHAR(255) NULL,
  `post_id` INT NULL,
  `type` VARCHAR(255) NULL,
  PRIMARY KEY (`id`),
  INDEX `fk_medias_posts_idx` (`post_id` ASC))
ENGINE = MyISAM
DEFAULT CHARACTER SET = utf8;

SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

Une fois executé j'obtiens un nouvel affichage qui reprend chacune des lignes du code en SQL précédé de la mention:

" MySQL a retourné un résultat vide (aucune ligne). (Traitement en 0.00xx secondes.)"

où les "xx" sont des nombres qui varient selon l'instruction SQL à laquelle, elle se rapporte. (Je précise cette étape puisque dans la vidéo on obtient pas cet affichage même si chaque ligne de code semble s'être bien executée)

Sous l'onglet, "structure", j'obtiens presque la même chose que dans la vidéo, dans le tableau qui résume ma bdd je retrouve bien les 4 tables: configs, medias, posts et users.

Mais là j'ai un premier problème
au niveau de la ligne en dessous, je peux lire:

  1. "4 tables" OK
  2. "Somme", OK
  3. "0", OK
  4. "InnoDB" (comme dans la vidéo alors que toutes les tables sont en MyISAM, je comprends pas pourquoi ...)
  5. "latin1_swedish_ci" alors que toutes mes tables sont bien en " utf8_general_ci" comme dans la vidéo
  6. "7Kio", OK
  7. "0 o". OK

Mon second problème:
Je vais voir plus en détail la table configs comme dans la vidéo : https://youtu.be/Aeb_pUAIA0U?list=PLjwdMgw5TTLX9UU3k2-zX0cWNgO6K-Q02&t=1013
et voilà mon principal problème

Ce que je veux

Je souhaiterai obtenir la table config avec tous les attribut comme dans la vidéo.

Ce que j'obtiens

Dans le code sql j'obtiens ceci

SELECT * FROMconfigs``

il manque l'instruction "Limit 0 , 30"

Puis je n'obtiens pas du tout l'affichage comme dans la vidéo, je n'ai qu'un tableau d'une ligne où chaque colonne est remplie par un attribut de la table configs: "id", "name", "value"

Puis en dessous j'obtiens le message d'erreur suivant:

Warning in ./libraries/sql.lib.php#613
 count(): Parameter must be an array or an object that implements Countable

Backtrace

./libraries/sql.lib.php#2128: PMA_isRememberSortingOrder(array)
./libraries/sql.lib.php#2079: PMA_executeQueryAndGetQueryResponse(
array,
boolean true,
string 'BDD',
string 'configs',
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
string '',
string './themes/pmahomme/img/',
NULL,
NULL,
NULL,
string 'SELECT * FROM `configs`',
NULL,
NULL,
)
./sql.php#221: PMA_executeQueryAndSendQueryResponse(
array,
boolean true,
string 'BDD',
string 'configs',
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
string '',
string './themes/pmahomme/img/',
NULL,
NULL,
NULL,
string 'SELECT * FROM `configs`',
NULL,
NULL,
)

Pourriez-vous, je vous prie, m'indiquer l'erreur que j'ai commise dans mon code.

2 réponses


RedHood
Auteur

Ok j'aimerais t'envoyer des captures d'écran, quitte à carrément réinstaller phpmyadmin. Mais je peux faire comment?

RedHood
Auteur

Du coup, il n'y aura pas de réponse à ma question?