[Résolu] problème avec Switch et MySQL

problème avec Switch et MySQL [Résolu] - PHP - Programmation

Marsh Posté le 27-05-2007 à 14:55:58    

Bonjour,
 
Voici mon code :
 

Code :
  1. <div id="home">
  2. <?php
  3.  require_once('connect.php');
  4.  $db = mysql_connect($host,$user,$pws);
  5.    mysql_select_db($bdd,$db);
  6.  $incl = mysql_query('SELECT id,title FROM cours ORDER BY id ASC');
  7.  $links = mysql_query('SELECT id,address FROM cours ORDER BY title ASC');
  8.  if (isset($_GET['id']))
  9.  {
  10.   $id= 'majeur';
  11.   switch($_GET['id'])
  12.   {
  13.    while ($row = mysql_fetch_array($incl))
  14.    {
  15.     case "".$row['id']."": include ("".$row['address']."" ); break;
  16.    }
  17.   }
  18.  }
  19.  else
  20.  {
  21.   echo "<table><tr><td><ul>";
  22.   while ($row = mysql_fetch_array($links))
  23.   {
  24.    echo "<li><a class=\"menu_main\" href=\"index.php?cat=art&amp;idcours=".$row['id']."\">".$row['title']."</a></li>";
  25.   }
  26.   echo "</ul></td></tr></table>";
  27.  }
  28.  mysql_close($db);
  29. ?>
  30. </div>


et mon erreur :

Code :
  1. Parse error: parse error, expecting `T_CASE' or `T_DEFAULT' or `'}'' in w:\site\includes\cours.php on line 16


merci d'avance ;)


Message édité par Gavrinis le 28-05-2007 à 10:31:57
Reply

Marsh Posté le 27-05-2007 à 14:55:58   

Reply

Marsh Posté le 27-05-2007 à 16:17:01    

il attend un case dans le switch et tu lui mets un while, donc ca ne fonctionne pas :)
au passage, essayer de nommer les etiquettes "case" par ce que te renvoi la BDD, c'est extreme :o


Message édité par did-54 le 27-05-2007 à 16:18:58
Reply

Marsh Posté le 27-05-2007 à 19:50:18    

comment faire alors ? :??:

Reply

Marsh Posté le 27-05-2007 à 19:52:00    

si tu n'explique pas ce que tu veux faire...

Reply

Marsh Posté le 27-05-2007 à 19:58:51    

et bien j'ai plusieurs cours listé dans ma base de donnée

Code :
  1. insert into cours (id,title,address) values ('','fibre','includes/fibre.php');

et j'aimerais pouvoir les lister sous forme de lien dans une page mais il me faudrait des includes pour bien faire car j'aimerais que le cours apparait à un endroit précis

Reply

Marsh Posté le 27-05-2007 à 21:07:02    

Et plutôt qu'un case unique perdu dans une boucle, pourquoi tu utilises pas tout bêtement un if ?
 
Genre (à la volée)

Code :
  1. while (...){
  2. if ($_GET['id'] == $row['id']) {
  3.   include(...)
  4. }
  5. }

Reply

Marsh Posté le 27-05-2007 à 23:30:17    

oui pourquoi pas, j'ai essayé mais j'ai de nouveau une erreur

Code :
  1. Notice: Undefined index: title in w:\site\includes\cours.php on line 27

et je ne vois pas trop comment la résoudre

Reply

Marsh Posté le 28-05-2007 à 00:13:58    

//edit : oula, effectivement, ça me réussit pas les réponses nocturnes...

 

Et pour aller plus loin que WiiDS, on dirait même que tu as interverti tes 2 requêtes :)


Message édité par naceroth le 28-05-2007 à 01:23:58
Reply

Marsh Posté le 28-05-2007 à 01:17:13    

L'erreur est pourtant clair. Tu fais un while mysql_fetch_assoc sur cette requete :
 
SELECT id,address FROM cours ORDER BY title ASC
 
Puis ensuite tu fais un echo et dans cet echo tu indiques $row['title']
 
OR ! Dans cette requête tu remarqueras que tu n'as PAS sélectionné title. D'ou l'erreur.
 
Note que les messages d'erreur de PHP sont relativement clair et qu'il faudrait que tu apprennes a te bouger seul plutot qu'a venir demander de l'aide pour un oui ou pour un non.


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
Reply

Marsh Posté le 28-05-2007 à 10:14:34    

effectivement Naceroth, j'avais interverti mes deux requêtes :ange:
 
WiiDs c'est vrai c'était une bête erreur mais pourtant j'admets avoir lu mon code plusieurs fois mais cette erreur ne me sautait pas aux yeux, habituellement je cherche moi même mes erreurs et je ne saute pas directement sur un forum mais là étant donné que je ne trouvais pas, j'ai fini par venir vers vous

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed