Connexion à une table MySql

Eléphanteau du PHP | 22 Messages

14 mai 2015, 16:59

Bonjour,
je me heurte à un probleme (ca devient assez fréquent pour moi ces temps-ci x)
Voici mes nombreuses erreur:
Mysqli_connect unkonwn database ficheclub (alors que pourtant elle existe --')
Undefined index: value
Mysqli queri expect parameter 1 to be mysqli boolean given
Mysqli_fetch_array expect parameter 1 to be mysqli_result null given

Avez vous des idées pour corriger cela?
Merci d'avance ;-)
Voici mon code:
//on se connecte a l base de donnes
$link = mysqli_connect("localhost","root","","ficheclub");

//on prend les info de la table en faisant le tri pour ne prendre que la ligne du club selectioné précedement
$query = "SELECT * FROM ficheclub where nom='".$_POST['value']."'";
$result=mysqli_query($link,$query);		
 
	echo( "<table border=\"1\" cellpadding=\"1\" cellspacing=\"1\" align=\"center\">\n" );
	echo( "<tr>
	<td><div align=\"center\">nom du club</div></td>
	<td><div align=\"center\">initiales</div></td>
	<td><div align=\"center\">president</div></td>
	<td><div align=\"center\">entraineur</div></td>
	</tr>");

 while($row = mysqli_fetch_array($result)) { 
	echo("<td><div align=\"center\">".$result["nomLONG"]."</div></td>\n" );
	echo( "<td><div align=\"center\">".$result["nom"]."</div></td>\n" );
	echo( "<td><div align=\"center\">".$result["president"]."</div></td>\n" );
	echo( "<td><div align=\"center\">".$result["entraineur"]."</div></td>\n" );
	echo( "</tr>\n" );
}

Mammouth du PHP | 688 Messages

14 mai 2015, 17:06

le nom de la base de donnée, ce n'est pas pareil que le nom d'une table d'une base de donnée.
la base de donnée ne s'appelle pas ficheclub d'où le message d'erreur.

Eléphanteau du PHP | 22 Messages

14 mai 2015, 17:33

Merci j'ai changé ca
Il ne me reste plus qu'une erreur :
Undefined index: name
name est une valeur que je poste grace a une menu déroulant sur une autre page
La page que vous avez comme code ci dessus est applée grace a la methode jquery
pouvez vous m'aider svp?

Avatar du membre
Mammouth du PHP | 1609 Messages

14 mai 2015, 17:38

Undefined index c'est quand tu essaies d'accéder à un index non défini d'un tableau.
On ne voit aucune tentative d'accès à un index name dans ton code.
Développeur web depuis + de 20 ans

Eléphanteau du PHP | 22 Messages

14 mai 2015, 17:44

ah oui au temps pour moi j'avais changé quelque chose :
name a été remplacé pas value dans .$_POST['value'].
donc du coup :Undefined index: value

Avatar du membre
Mammouth du PHP | 1609 Messages

14 mai 2015, 17:46

Le formulaire est-t-il bien soumis en post ? tu parles de jquery, la valeur de la liste déroulante est-elle bien envoyée dans ce code jquery ?
Développeur web depuis + de 20 ans

Eléphanteau du PHP | 22 Messages

14 mai 2015, 17:50

// recuperation des clubs
$.ajax({
url: "serveur/ficheclub.php",
type:"POST",
data: '$_POST['club']=' + club,
success: function( data ) {
$( "#ficheclub" ).php( data );
}
});

Ah oui du coup il faudrait que je mette : ?
data: '$_POST['name']=' + name,

EDIT selection dans la liste deroulante:
<select value="club">

Avatar du membre
Mammouth du PHP | 1609 Messages

14 mai 2015, 18:03

Dans les exemples ici : http://api.jquery.com/jquery.ajax/
$.ajax({
  method: "POST",
  url: "some.php",
  data: { name: "John", location: "Boston" }
})
  .done(function( msg ) {
    alert( "Data Saved: " + msg );
  });
Donc dans ton cas ce serait plutôt :
$.ajax({
  url: "serveur/ficheclub.php",
  type:"POST",
  data: { club: $('select[name="club"]').val() },
  success: function(data) {
    $("#ficheclub").php(data);
  }
});
Et côté PHP tu peux utiliser $_POST['club'].

Attention par contre ton select n'a pas d'attribut name, il faut que tu l'ajoutes pour que ça fonctionne.

Tu peux aussi lui mettre un attribut id et utiliser la syntaxe suivante pour récupérer la valeur (en admettant que l'id soit égale à club bien sur) :
$('select#club').val()
Développeur web depuis + de 20 ans

Eléphanteau du PHP | 22 Messages

14 mai 2015, 18:12

bon j'ai changé ce que tu m'a proposé mais la meme erreur reste :
undefined index : club
j'ai changé le $_POST['name'] en $_POST['club'] sur la seconde page (il fallair bien le changer la??)
J'ai aussi mit l'attibut club du coup au select

Avatar du membre
Mammouth du PHP | 1609 Messages

14 mai 2015, 18:18

Si tu as un undefined index club, c'est qu'à priori tu n'as pas fait ce que je t'ai suggéré.

Avec ça :
$.ajax({
  url: "serveur/ficheclub.php",
  type:"POST",
  data: { club: 'toto' },
  success: function(data) {
    $("#ficheclub").php(data);
  }
});
$_POST['club'] doit être égal à toto.
Développeur web depuis + de 20 ans

Eléphanteau du PHP | 22 Messages

14 mai 2015, 18:24

je ne comprend pas... Il faut que je mette :
$_POST[' $('select[name="club"]').val() ']
?
(dans la page appelée?)

Avatar du membre
Mammouth du PHP | 1609 Messages

14 mai 2015, 18:31

Tu mélanges javascript et php.
$_POST c'est le tableau php des variables transmises en post.
$('select[name="club"]').val() c'est du jquery permettant de récupérer la valeur de la liste déroulante <select name="club">.
Développeur web depuis + de 20 ans

Eléphanteau du PHP | 22 Messages

14 mai 2015, 18:39

ba du coup j'ai bien:
$.ajax({
  url: "serveur/ficheclub.php",
  type:"POST",
  data: { club: $('select[name="club"]').val() },
  success: function(data) {
    $("#ficheclub").php(data);
  }
});
sur la premiere page
et sur la seconde page :
$query = "SELECT * FROM ficheclub where nom=' ".$_POST['club']." ' ";
Mais ca ne marche pas :/

Avatar du membre
Mammouth du PHP | 1609 Messages

14 mai 2015, 18:44

As-tu bien ajouté l'attribut name sur ton select ?

<select value="club"> ça n'existe pas.

Un select c'est :
<select name="club">
  <option value="club 1">Club 1</option>
  ...
</select>
Modifié en dernier par Saian le 14 mai 2015, 18:47, modifié 1 fois.
Développeur web depuis + de 20 ans

Eléphanteau du PHP | 22 Messages

14 mai 2015, 18:47

EDIT
par contre, apres <select name="club">,
<option value=...
value n'est réutilisé nul part
c'est normal ou pas?
Modifié en dernier par banania le 14 mai 2015, 18:53, modifié 2 fois.