jeca

Inscris le 04/11/2008 à 13:23
  • Signature
    cordialement
  • Nombre de sujets
    Aucun
  • Nombre de messages
    14
  • Nombre de commentaires
    Aucun
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses derniers messages sur les forums

jeca
le 26/03/2009 à 14:09
Génération d'une requete SQL en fonction des donnnées d'un formulaire
Bonjour,

Tout d'abord, il y a une erreur sur cette ligne :
<option value"1">1</option>
Il maque le signe "=".

Ensuite, ton formulaire est mal réalisé, car si tu le soumets sans faire de sélection, le programme va considérer que tu veux un statut pour une région, qu'il ne pourra trouver, évidemment. Donc :
<html>
<head>
<title>Page de soumission du formulaire</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
</script>
</head>

<body>
<form action="index.php" method="post">
<fieldset>
<p>
<label for="secteur">Statut </label>
<select name="societe_statut" id="societe_secteur">
<option value="1">-- Tous --</option>
<option value="Inconnu">Inconnu</option>
<option value="Suspect">Suspect</option>
<option value="Prospect">Prospect</option>
<option value="Client ponctuel">Client ponctuel</option>
<option value="Client">Client</option>
<option value="Client important">Client important</option>
<option value="Fournisseur">Fournisseur</option>
</select>
</p>
<p>
<label for="secteur">Secteur : </label>
<select name="societe_secteur" id="societe_secteur">
<option value="1">-- Tous --</option>
<option value="Ile-de-France">Ile-de-France</option>
<option value="Normandie">Normandie</option>
<option value="Nord">Nord</option>
<option value="Centre">Centre</option>
<option value="Bretagne">Bretagne</option>
<option value="Sud">Sud</option>
</select>
</p>
<p>
<label>&nbsp;</label><input type="submit" value="Enregistrer" />
</p>
</fieldset>
</form>
</body>
</html>


En outre, les conditions dans "index.php" ne correspondent pas au résultat attendu. De plus, dans une requête, les chaines de caractères s'encadre avec des apostrophes, et non pas avec des guillemets.
Essaie ce code :
<?php
if($_POST['societe_statut'] == '1' && $_POST['societe_secteur'] == '1')
{
$numero = 'condition N° 1 : tous les statuts pour tous les secteurs';
$where = '';
}
else if($_POST['societe_statut'] != '1' && $_POST['societe_secteur'] == '1')
{
$numero = 'condition N° 2 : un statut pour tous les secteurs';
$where = ' WHERE societe_statut = \'' . $_POST['societe_statut'] . '\'';
}
else if($_POST['societe_statut'] == '1' && $_POST['societe_secteur'] != '1')
{
$numero = 'condition N° 3 : tous les statuts pour un secteur';
$where = ' WHERE societe_secteur = \'' . $_POST['societe_secteur'] . '\'';
}
else
{
$numero = 'condition N° 4 : un statut pour un secteur';
$where = ' WHERE societe_statut = \'' . $_POST['societe_statut'] . '\'
AND societe_secteur = \'' . $_POST['societe_secteur'] . '\'';
}

$sql = 'SELECT *
FROM societe
LEFT JOIN contact ON societe.societe_nom = contact.contact_societe'
. $where . '
ORDER BY societe_nom ASC';
// $demande = mysql_query($sql);

echo $numero . '<br><br>' . $sql;
?>

La variable "$numero" n'est là que pour vérification.

Enfin, je subodore (c'est beau ça) que la structure de BDD n'est pas la meilleure, car tu ne devrais pas travailler avec des libellés, mais avec des clés.
cordialement
jeca
le 13/11/2008 à 07:46
recuperer l'id d'un enregistrement
Bonjour,

Extrait du manuel mysql :
Retourne le dernier identifiant automatiquement généré par une colonne AUTO_INCREMENT.

mysql> SELECT LAST_INSERT_ID();
-> 195

Le dernier ID généré est conservé par le serveur pour chaque connexion. Un autre client ne la modifiera donc pas, même s'ils génèrent une autre valeur AUTO_INCREMENT de leur coté. Ce comportement permet de s'assurer que les actions des autres clients ne perturbe pas les actions du client en cours.

Donc, pas besoin de réinventer la roue.
cordialement
LoadingChargement en cours