par
XaaE » 09 avr. 2021, 18:11
Bonjour à tous ! Je bloque depuis pas mal de temps sur une erreur de syntaxe que je ne vois vraiment pas... Je cherche à remplir ma table équipe avec des valeurs prises aléatoirement : le nom et le contact seront pris dans un array prédéfinis, le niveau est un entier compris entre 1 et 100. Pour l'id du tournois, j'essaye de récupérer tout les id de ma table 'Tournoi', d'en faire un array et trouver un indice aléatoire compris entre 0 et (longueur de l'array -1). J'ai l'impression d'avoir tout bien fait mon la page m'affiche :
Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1
Voici le code :
Code : Tout sélectionner
<?php
require 'header.php';
require 'BDD.php';
$nomEquipe = array('OL','AS Rome', 'OM', 'PSG', 'Monaco','MHSC', 'Lille', 'Manchester United', 'Manchester City', 'Liverpool', 'Leicester');
$lenghtNomEquipe = count($nomEquipe);//On recup la longueur du tableau $nomEquipe
$contact = array('[email protected]', '[email protected]', '[email protected]', '[email protected]', '[email protected]', '[email protected]');
$lenghtContact = count($contact);//On recup la longueur du tableau $contact
$req_idT = $bdd->query('SELECT DISTINCT idTournoi FROM tournois');//On recupere tout les id des tournois existant dans la BDD
$id_du_tournoi = $req_idT->fetchAll();//On obtient donc un array contenant les id
$lenghtIdT = count($id_du_tournoi);//Longueur du tableau $id_du_tournoi
echo $lenghtIdT;
$req_insererEquipe = $bdd->prepare('INSERT INTO equipe(nom, niveau, contact, idT) VALUES (:nom, :niveau, :contact, :idT');
for($i = 0; $i < 10; $i++){
$idNomEquipe = rand(0, ($lenghtNomEquipe-1));//Nombre aléatoire entre 0 et la longueur du tableau --> Pour insérer un élément de manière aléatoire présent dans le tableau $nomEquipe dans la BDD
$idContact = rand(0, ($lenghtContact-1));//Nombre aléatoire entre 0 et la longueur du tableau --> Pour insérer un élément de manière aléatoire présent dans le tableau $contact dans la BDD
$id_for_tournoi = rand(0, ($lenghtIdT-1));//Nombre aléatoire entre 0 et la longueur du tableau --> Pour insérer un élément de manière aléatoire présent dans le tableau $id_du_tournoi dans la BDD
$name = $nomEquipe[$idNomEquipe];
$niv = rand(1, 100);
$contact = $contact[$idContact];
$idT = $id_du_tournoi[$id_for_tournoi];
$req_insererEquipe->execute(array(
':nom'=>$name,
':niveau'=>$niv,
':contact'=>$contact,
':idT'=>$idT["idTournoi"]
));
}
Merci d'avance pour votre aide

Bonjour à tous ! Je bloque depuis pas mal de temps sur une erreur de syntaxe que je ne vois vraiment pas... Je cherche à remplir ma table équipe avec des valeurs prises aléatoirement : le nom et le contact seront pris dans un array prédéfinis, le niveau est un entier compris entre 1 et 100. Pour l'id du tournois, j'essaye de récupérer tout les id de ma table 'Tournoi', d'en faire un array et trouver un indice aléatoire compris entre 0 et (longueur de l'array -1). J'ai l'impression d'avoir tout bien fait mon la page m'affiche :
Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1
Voici le code :
[code]<?php
require 'header.php';
require 'BDD.php';
$nomEquipe = array('OL','AS Rome', 'OM', 'PSG', 'Monaco','MHSC', 'Lille', 'Manchester United', 'Manchester City', 'Liverpool', 'Leicester');
$lenghtNomEquipe = count($nomEquipe);//On recup la longueur du tableau $nomEquipe
$contact = array('
[email protected]', '
[email protected]', '
[email protected]', '
[email protected]', '
[email protected]', '
[email protected]');
$lenghtContact = count($contact);//On recup la longueur du tableau $contact
$req_idT = $bdd->query('SELECT DISTINCT idTournoi FROM tournois');//On recupere tout les id des tournois existant dans la BDD
$id_du_tournoi = $req_idT->fetchAll();//On obtient donc un array contenant les id
$lenghtIdT = count($id_du_tournoi);//Longueur du tableau $id_du_tournoi
echo $lenghtIdT;
$req_insererEquipe = $bdd->prepare('INSERT INTO equipe(nom, niveau, contact, idT) VALUES (:nom, :niveau, :contact, :idT');
for($i = 0; $i < 10; $i++){
$idNomEquipe = rand(0, ($lenghtNomEquipe-1));//Nombre aléatoire entre 0 et la longueur du tableau --> Pour insérer un élément de manière aléatoire présent dans le tableau $nomEquipe dans la BDD
$idContact = rand(0, ($lenghtContact-1));//Nombre aléatoire entre 0 et la longueur du tableau --> Pour insérer un élément de manière aléatoire présent dans le tableau $contact dans la BDD
$id_for_tournoi = rand(0, ($lenghtIdT-1));//Nombre aléatoire entre 0 et la longueur du tableau --> Pour insérer un élément de manière aléatoire présent dans le tableau $id_du_tournoi dans la BDD
$name = $nomEquipe[$idNomEquipe];
$niv = rand(1, 100);
$contact = $contact[$idContact];
$idT = $id_du_tournoi[$id_for_tournoi];
$req_insererEquipe->execute(array(
':nom'=>$name,
':niveau'=>$niv,
':contact'=>$contact,
':idT'=>$idT["idTournoi"]
));
}[/code]
Merci d'avance pour votre aide ;)