par
Cyrano » 13 mai 2006, 17:34
C'est presque ça, sauf que :
ta requête est erronée : tu utilises SELECT * pour ne récupérer que deux champs, ce n'est pas terrible. Ensuite tu utilises LIKE sans joker, autant utiliser "=" : tu pourrais donc améliorer ça en faisant:
$verif = mysql_query("SELECT `nom`, `description` FROM `mix` WHERE artiste LIKE '%". $_SESSION['login'] ."%' ");
ou bien:
$verif = mysql_query("SELECT `nom`, `description` FROM `mix` WHERE artiste = '". $_SESSION['login'] ."' ");
Le résultat risque de ne pas être le même selon le cas.
Ensuite, si tu as plusieurs lignes de résultat, ben ton code ne peut en ressortir que la première : logique, il faudrait mettre ça dans une boucle.
Mais pour ça, il faudrait créer les tableaux vides
AVANT, sinon à chaque tour, tu vas écraser les valeurs précédentes.
Le reste semble bon, voici donc la partie à revoir corrigée :
if(isset($_POST['pseudo']))
{
$arr = array("Nom" => array(), "Description" => array());
$tableau = array("id" => array(), "nom" => array());
$verif = mysql_query("SELECT `nom`, `description` FROM `mix` WHERE artiste LIKE '%". $_SESSION['login'] ."%' ");
while(($row = mysql_fetch_array($verif)) != false)
{
$arr['Nom'][] = $row['nom'];
$arr['Description'][] = $row['description'];
$tableau['id'][] = $row['nom'];
$tableau['nom'][] = $row['description'];
}
/* Création d'un tableau : la première partie sera l'en-tête et n'a pas besoin d'être répétée */
?>
Est-ce que tu visualises à peu près correctement le déroulement ? C'est important, sinon, j'explique pour rien, j'aime mieux que tu arrêtes pour assimiler et demander des compléments d'information plutôt que de faire une impasse... Mais réfléchis bien et pose toi les question : "
Ceci sert à quoi ? à faire telle chose, ok, ensuite, etc..."
C'est presque ça, sauf que :
ta requête est erronée : tu utilises SELECT * pour ne récupérer que deux champs, ce n'est pas terrible. Ensuite tu utilises LIKE sans joker, autant utiliser "=" : tu pourrais donc améliorer ça en faisant:
[php]$verif = mysql_query("SELECT `nom`, `description` FROM `mix` WHERE artiste LIKE '%". $_SESSION['login'] ."%' ");[/php]
ou bien:
[php]$verif = mysql_query("SELECT `nom`, `description` FROM `mix` WHERE artiste = '". $_SESSION['login'] ."' ");[/php]
Le résultat risque de ne pas être le même selon le cas.
Ensuite, si tu as plusieurs lignes de résultat, ben ton code ne peut en ressortir que la première : logique, il faudrait mettre ça dans une boucle.
Mais pour ça, il faudrait créer les tableaux vides [u]AVANT[/u], sinon à chaque tour, tu vas écraser les valeurs précédentes.
Le reste semble bon, voici donc la partie à revoir corrigée :
[php]if(isset($_POST['pseudo']))
{
$arr = array("Nom" => array(), "Description" => array());
$tableau = array("id" => array(), "nom" => array());
$verif = mysql_query("SELECT `nom`, `description` FROM `mix` WHERE artiste LIKE '%". $_SESSION['login'] ."%' ");
while(($row = mysql_fetch_array($verif)) != false)
{
$arr['Nom'][] = $row['nom'];
$arr['Description'][] = $row['description'];
$tableau['id'][] = $row['nom'];
$tableau['nom'][] = $row['description'];
}
/* Création d'un tableau : la première partie sera l'en-tête et n'a pas besoin d'être répétée */
?>[/php]
Est-ce que tu visualises à peu près correctement le déroulement ? C'est important, sinon, j'explique pour rien, j'aime mieux que tu arrêtes pour assimiler et demander des compléments d'information plutôt que de faire une impasse... Mais réfléchis bien et pose toi les question : "[i]Ceci sert à quoi ? à faire telle chose, ok, ensuite, etc...[/i]"