Page 1 sur 1

Script d'affichage de données extraites d'une base

Posté : 27 juil. 2005, 16:25
par harry67
Bonjour,
Voici un script qui teste les champs d'une table, lorsque le champ vaut 0, il n'y à rien, si le champ vaut 1, il affiche quelque chose. Pourtant, lorsque je l'éxécute, il ne fonctionne pas, j'obtiens ce message d'erreur : Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /affichage_livres.php on line 18

Quelqu'un pourrait-il me corriger mon script? Merci d'avance.
<?php
$host="*********"; 
$user="***********"; 
$mpasse="***********"; 
$database="************"; 

$connexion = mysql_connect($host, $user, $mpasse)
or die ("Connexion à la base impossible"); 

$db = mysql_select_db($database) 
or die("Sélection de la base impossible"); 

$sql = "SELECT botanique FROM sac
$res = mysql_query($sql)
      or die ("La requête à échoué");
$ligne1 = mysql_fetch_array($res, MYSQL_ASSOC);
if ($ligne1 == 0)
{ $1="1";
}
else ($ligne1 == 1)
{ echo "1 livre de Botanique";
}
$sql = "SELECT quidditch FROM sac
$res = mysql_query($sql)
      or die ("La requête à échoué");
$ligne2 = mysql_fetch_array($res, MYSQL_ASSOC);
if ($ligne2 == 0)
{ $1="1";
}
else ($ligne1 == 1)
{ echo "1 livre de Quidditch";
}
$sql = "SELECT divination FROM sac
$res = mysql_query($sql)
      or die ("La requête à échoué");
$ligne3 = mysql_fetch_array($res, MYSQL_ASSOC);
if ($ligne3 == 0)
{ $1="1";
}
else ($ligne3 == 1)
{ echo "1 livre de Divination";
}
$sql = "SELECT dfcm FROM sac
$res = mysql_query($sql)
      or die ("La requête à échoué");
$ligne4 = mysql_fetch_array($res, MYSQL_ASSOC);
if ($ligne4 == 0)
{ $1="1";
}
else ($ligne4 == 1)
{ echo "1 livre de Défense contre les Forces du Mal";
}
$sql = "SELECT meta FROM sac
$res = mysql_query($sql)
      or die ("La requête à échoué");
$ligne5 = mysql_fetch_array($res, MYSQL_ASSOC);
if ($ligne5 == 0)
{ $1="1";
}
else ($ligne5 == 1)
{ echo "1 livre de Métamorphose";
}
mysql_close($connexion);
?>

Posté : 27 juil. 2005, 16:32
par Jawad
Tu aurais pu nous préciser où étais la ligne 18... Et vérifie que ton copier-coller est exact (et ne rajoute pas des sauts de ligne comme peuvent le faire certains éditeurs);

Tu peux toujours tenter de remplacer la ligne:
$sql = "SELECT botanique FROM sac 
Par:
$sql = "SELECT botanique FROM sac";
Et rajoute "; à la fin de chaque ligne où tu as un $sql=

Posté : 27 juil. 2005, 17:58
par kmeleon
Allez je corrige, voici le script complet:
<?php
$host="*********";
$user="***********";
$mpasse="***********";
$database="************";

$connexion = mysql_connect($host, $user, $mpasse) or die ("Connexion à la base impossible");

$db = mysql_select_db($database) or die("Sélection de la base impossible");

$sql = "SELECT botanique FROM sac";
$res = mysql_query($sql) or die ("La requête à échoué");
$ligne1 = mysql_fetch_array($res, MYSQL_ASSOC);
if ($ligne1 == 0){ 
  $1="1";
} else if ($ligne1 == 1){ // Bien rajouter le if !
  echo "1 livre de Botanique";
}
$sql = "SELECT quidditch FROM sac";
$res = mysql_query($sql) or die ("La requête à échoué");
$ligne2 = mysql_fetch_array($res, MYSQL_ASSOC);
if ($ligne2 == 0){
  $1="1";
} else if ($ligne1 == 1){ // Là aussi !
  echo "1 livre de Quidditch";
}
$sql = "SELECT divination FROM sac";
$res = mysql_query($sql) or die ("La requête à échoué");
$ligne3 = mysql_fetch_array($res, MYSQL_ASSOC);
if ($ligne3 == 0){
  $1="1";
} else if ($ligne3 == 1){ // Pareil !
  echo "1 livre de Divination";
}
$sql = "SELECT dfcm FROM sac";
$res = mysql_query($sql) or die ("La requête à échoué");
$ligne4 = mysql_fetch_array($res, MYSQL_ASSOC);
if ($ligne4 == 0){ 
  $1="1";
} else if ($ligne4 == 1) { // Et encore ...
  echo "1 livre de Défense contre les Forces du Mal";
}
$sql = "SELECT meta FROM sac";
$res = mysql_query($sql) or die ("La requête à échoué");
$ligne5 = mysql_fetch_array($res, MYSQL_ASSOC);
if ($ligne5 == 0){ 
  $1="1";
} else if ($ligne5 == 1) { // J'en peut plus !!!
  echo "1 livre de Métamorphose";
}
mysql_close($connexion);
?>
Concrètement, n'oublie pas qu'une structure conditionelle se fait sous la forme:
if () {
  // mes trucs
} else {
  // mes autres trucs
}

// Ou alors

if () {
  // mes trucs
} else if () {
  // mes trucs, le retour
} else if () {
  // mes trucs, le retour du come-back du bis (et ainsi de suite)
} else {
  // si aucune de ces conditions n'a été réunie
}
Et aussi, comme on vient de le préciser, de bien mettre "; à la fin des requêtes sql...