Vous n'êtes pas identifié(e).
Bonjour tout le monde,
J'ai un formulaire qui s'appelle numéro.php et un autre qui s'appelle edite.php, ce dernier ne marche pas.
Il affiche : Exécution de la requête impossible
Pourriez-vous m'aider ?
Merci d'avance.
<?php
{ session_start();}
require("db_connect.php");
$EDITEUR = $_POST["EDITEUR"];
$REVUE = $_POST["REVUE"];
$ANNEE = $_POST["ANNEE"];
$STOCK = $_POST["STOCK"];
$COMMENTAIRE = $_POST["COMMENTAIRE"];
$requete = "SELECT ID_EDITEUR, ID_REVUE, ANNEE, STOCK, COMMENTAIRE FROM stock WHERE ID_REVUE = '$ID_REVUE', ANNEE = '$ANNEE'";
$resultat = mysql_query($requete) or die("Exécution de la requête impossible" );
?>
<html><head><title>test </title></head><body>
<?php
$nb = -1;
++$nb;
$chaine = "<html><head><title>test</title></head><body>";
echo "<html><head><title>test</title></head><body>";
while ($ligne = mysql_fetch_array($resultat))
{
echo'<P>_____________________________________________</p>';
$nb = ++$nb;
echo '<p>'. $nb . $ligne["EDITEUR"] . $ligne["REVUE"] . $ligne["ANNEE"] . $ligne["STOCK"] . $ligne["COMMENTAIRE"] .'</p>';
}
?>
</body></html>
Hors ligne
Salut,
La syntaxe des clause WHERE n'autorise pas l'utilisation de virgules. cf la doc.
Donc c'est ...WHERE clause_1 AND clause_2 ou bien ...WHERE clause_1 OR clause_2 par exemple.
Promotion de PPOO : Programmation Propre Orientée Objet !!
Recommande AAO : Apéritif Avec Olives...
Glop, glop
Hors ligne
Salut,
Merci pour votre réponse, effectivement mais le problème d'affichage persiste. En effet, dans numero.php, j'ai la requete suivante :
$requete = "SELECT EDITEUR, REVUE, ANNEE, NUMERO, TITRE, VOLUME, MIN(DATE_ENTREE) AS PREM_ENTREE, SUM(IF(((DATE_ENTREE > '2001-01-01') AND (DATE_SORTIE < '2001-01-01')),1,0)) AS EN_STOCK, STOCK FROM stock ";
et j'ai aussi un target="_blank"
<form name="edite" action="edite.php" method=POST target="_blank">
Pour que le résultat s'affiche dans une autre page edite.php.
Je me demande si le fait que les deux formulaires avec deux requêtes différentes et donc deux résultats différents se connectant à la même base db_connect.php soit l'origine du problème.
Merci par avance pour votre aide
Hors ligne
As tu teste ta requete? Parceque quand tu utilises le SUM de SQL il te faut un GROUP BY()
Hors ligne
la première requête fonctionne sans problème mais la deuxième qui est dans edite.php s'execute à partir de l'affichage de la première.
Hors ligne
En fait c'est la deuxième qui pose problème.
Hors ligne
ce que je te demande c'est est ce que quand tu testes ta requete ou il y a le SUM, MIN, est ce qu'elle fonctionne?
la deuxième qui est dans edite.php s'execute à partir de l'affichage de la première.
Je ne comprends pas ce que tu veux dire.
Teste ta deuxieme requete dans ton SGBD et stp dis moi si tu as un resultat
Hors ligne
Excuse,
Voilà j'ai numero.php
<?php
{ session_start();}
$vraijour=date("Y-m-d",mktime(0,0,0,date("m"),date("d"),date("Y")));
require("db_connect.php");
$lejour = $vraijour;
if ($_GET["DATE"])
{$lejour = $_GET["DATE"];}
if ($_POST["titrerev"])
{$_SESSION["titrerev"] = $_POST["titrerev"];}
$coderev = $_SESSION["titrerev"] ;
if ($_POST["edit"])
{$_SESSION["edit"] = $_POST["edit"];}
$codedit = $_SESSION["edit"] ;
if ($_POST["fonctions"])
{$_SESSION["fonctions"] = $_POST["fonctions"];}
$codefonc = $_SESSION["fonctions"] ;
$requete = "SELECT EDITEUR, REVUE, ANNEE, NUMERO, TITRE, VOLUME, MIN(DATE_ENTREE) AS PREM_ENTREE, SUM(IF(((DATE_ENTREE > '2001-01-01') AND (DATE_SORTIE < '2001-01-01')),1,0)) AS EN_STOCK, STOCK FROM stock ";
$condition = "";
if ($coderev != "ALL")
{
$condition .= "AND (stock.REVUE = '$coderev') ";
$group = "REVUE";
}
if ($codedit != "ALL")
{
$condition .= "AND (EDITEUR = '$codedit') ";
$group = "EDITEUR";
}
if ($codefonc == "F4")
{
$condition .= "AND ((DATE_ENTREE > '2001-01-01') AND (DATE_SORTIE < '2001-01-01')) ";
}
if ($condition > " ")
{$condition = "WHERE " . substr($condition,4,strlen($condition)-3);}
$requete .= $condition . " GROUP BY REVUE, ANNEE, NUMERO";
$debut = file_get_contents("base_debut.txt");
echo $debut . "\n";
$header = file_get_contents("base_header.txt");
echo $header . "\n";
$lancart = '0000';
$resultat = mysql_query($requete);
$chtab = "var data = [" . "\n";
while ($ligne = mysql_fetch_assoc($resultat)){
++$ordre;
$chtab .= "{" . "\n";
foreach($ligne as $key => $val) {
$chtab .= "\"$key\":\"$val\",";
}
$chtab = ereg_replace(",$","\n},",$chtab);
$stock = $ligne["STOCK"];
}
$chtab = ereg_replace(",$","];",$chtab);
echo $chtab;
echo "\n";
$fin = file_get_contents("base_fin.txt");
echo $fin . "\n";
?>
<body>
<table class="tab" bgcolor="#99CCCC" >
<tr>
<td class="logo"><img src="img/logo.jpg" height="50px"></td>
<td class="titrerev"><h3><font color="#000000">Numéros commandés</font></h3></td> <td class="typecons"><?php echo $requete; ?></span></td>
<td class="info"><input type="button" value="Retour" onclick="retour()"></td>
<td class="info"><input type="button" value="Imprimer" onclick="window.print()"></td>
<td class="info"><input type="button" value="Exporter" onclick="csv()" ></td>
<td class="info"> </td>
<td class="info"><form name="lejour" action="">
<input type="texte" name="date" value="<?php echo $lejour; ?>" /></form></td>
</tr>
</table>
<div id='test'> </div>
<TABLE bgcolor="#66EEEE" STYLE="border:1px solid red;">
<div id="cache">
<form name="formu" method=POST action="maj.php">
<input type="hidden" name="DATE" value="VIDE" />
</form>
</div>
<div>
<form name="edite" action="edite.php" method=POST target="_blank">
<TABLE bgcolor="#99CCCC" STYLE="height:100px;border:1px solid blue;">
<tr><td colspan="10" align="Right"><input name = "valider" type="submit" value=" DETAILS " /></td>
</tr>
</TABLE>
</form>
</div>
</body>
</html>
Cela fonctionne sans problème,
mais edite.php n'affiche rien
edite.php :
<?php
{ session_start();}
require("db_connect.php");
$EDITEUR = $_POST["EDITEUR"];
$REVUE = $_POST["REVUE"];
$ANNEE = $_POST["ANNEE"];
$NUMERO = $_POST["NUMERO"];
$TITRE = $_POST["TITRE"];
$VOLUME = $_POST["VOLUME"];
$DATE_ENTREE = $_POST["DATE_ENTREE"];
$DATE_SORTIE = $_POST["DATE_SORTIE"];
$PRIX_VENTE = $_POST["PRIX_VENTE"];
$PRIX_VENDU = $_POST["PRIX_VENDU"];
$STOCK = $_POST["STOCK"];
$COMMENTAIRE = $_POST["COMMENTAIRE"];
$requete = "SELECT EDITEUR, REVUE, ANNEE, NUMERO, TITRE, VOLUME, DATE_ENTREE, DATE_SORTIE, PRIX_VENTE, PRIX_VENDU, STOCK, COMMENTAIRE FROM stock WHERE (REVUE = '$REVUE') AND (ANNEE = '$ANNEE') AND (NUMERO = '$NUMERO') AND (TITRE = '$TITRE') AND (VOLUME = '$VOLUME')";
$resultat = mysql_query($requete) or die("Exécution de la requête impossible" );
?>
<html><head><title>test </title></head><body>
<?php
$nb = -1;
++$nb;
$chaine = "<html><head><title>test</title></head><body>";
echo "<html><head><title>test</title></head><body>";
while ($ligne = mysql_fetch_array($resultat))
{
echo'<P>_____________________________________________</p>';
$nb = ++$nb;
echo '<p>'. $nb . $ligne["EDITEUR"] . $ligne["REVUE"] . $ligne["ANNEE"] . $ligne["NUMERO"] . $ligne["TITRE"] . $ligne["VOLUME"] . $ligne["DATE_ENTREE"] . $ligne["DATE_SORTIE"] . $ligne["PRIX_VENTE"] . $ligne["PRIX_VENDU"] . $ligne["STOCK"] . $ligne["COMMENTAIRE"] .'</p>';
}
?>
</body></html>
Donc la requete qui est dans numero.php marche, alors que celle dans edite.php n'affiche rien.
Merci.
Hors ligne
trois choses :
premierement a quoi te sert
si tu les SELECT apres dans ta requete??
Deuxiemement: Dans ton SGBD, donne des valeurs a tes champs et teste ta requete.
troisiemement: cest MYSQL_FETCH_ARRAY($resultat, MYSQL_ASSOC )
Sinon il ne sait pas ce que c'est que $ligne["EDITEUR"]
Hors ligne
En fait, commence par ecrire
pour voir si c'est de la que vient ton probleme.
Hors ligne
Saluton,
Donc la requete qui est dans numero.php marche, alors que celle dans edite.php n'affiche rien.
Une requête est soit bien formée du point de vue de la syntaxe et peut être exécutée ou, dans le cas contraire générer un message d'erreur de la part du SGBDR.
Mais qu'une requête s'exécute ne garantit pas que le résultat soit celui escompté.
Le résultat peut être vide, ou ne pas correspondre à ce que l'on attend parce que la logique retranscrite en SQL dans la requête n'est pas celle que l'on croit.
Et ta requête
if ($coderev != "ALL")
{
$condition .= "AND (stock.REVUE = '$coderev') ";
$group = "REVUE";
}
if ($codedit != "ALL")
{
$condition .= "AND (EDITEUR = '$codedit') ";
$group = "EDITEUR";
}
if ($codefonc == "F4")
{
$condition .= "AND ((DATE_ENTREE > '2001-01-01') AND (DATE_SORTIE < '2001-01-01')) ";
}
if ($condition > " ")
{$condition = "WHERE " . substr($condition,4,strlen($condition)-3);}
$requete .= $condition . " GROUP BY REVUE, ANNEE, NUMERO";
a une logique, à tout le moins, douteuse, tant qu'on n'en a pas vu la résultante.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
trois choses :
premierement a quoi te sert
au début, je voulais que le résultat de edite.php s'affiche en bas, mais bon je peux les supprimer
Deuxiemement: Dans ton SGBD, donne des valeurs a tes champs et teste ta requete.
Tu parles de la requete qui dans numero ou edite, de toute façon les deux marchent dans mon SGBD avec des valeurs
troisiemement: cest MYSQL_FETCH_ARRAY($resultat, MYSQL_ASSOC )
Sinon il ne sait pas ce que c'est que $ligne["EDITEUR"]
à quelle place je dois changer cela ?
Merci
Hors ligne
trois choses :
premierement a quoi te sert
au début, je voulais que le résultat de edite.php s'affiche en bas, mais bon je peux les supprimerDeuxiemement: Dans ton SGBD, donne des valeurs a tes champs et teste ta requete.
Tu parles de la requete qui dans numero ou edite, de toute façon les deux marchent dans mon SGBD avec des valeurs
troisiemement: cest MYSQL_FETCH_ARRAY($resultat, MYSQL_ASSOC )
Sinon il ne sait pas ce que c'est que $ligne["EDITEUR"]
à quelle place je dois changer cela ?Merci
Teste dans ton SGBD la requete qui t'affiche la page blanche. Cette page peut etre blanche parceque ta requete ne renvoie rien et dans ce cas, il y a un pb de conception de la requete.
dans ton code, tu as un MYSQL_FETCH_ARRAY. Je te demande d'ajouter cela dans la ligne 37 de ton edite.php
Hors ligne
Je l'ai testé en donnant des valeurs et ça a marché dans la base, mais cela ne change rien pour la page blanche.
Hors ligne
Hors ligne
as tu utilise MYSQL_FETCH_ARRAY($resultat, MYSQL_ASSOC )
Hors ligne
Merci,
je devrais faire cela non
while($ligne=mysql_fetch_array($resultat,MYSQL_ASSOC))
Hors ligne
oui.
Hors ligne
désolé, mais c'est récalcitrant pas de résultat
Hors ligne
je veux dire cela n' a rien changé
Hors ligne
as tu utilise MYSQL_FETCH_ARRAY($resultat, MYSQL_ASSOC )
Et pourquoi pas directement mysql_fetch_assoc($resultat) ?
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
tu veux dire
while($ligne=mysql_fetch_array($resultat,MYSQL_ASSOC)) ????
Je l'ai déjà essayé
Hors ligne
while ($ligne = mysql_fetch_assoc($resultat))
non plus
Hors ligne
Après la ligne
Puis nous retransmettre ici ce que cela écrit dans le source html ?
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Voilà le code de numero.php (juste une partie parceque je n'ai pas le droit de dépasser 65535 caractère)
var headers = [
{"text":"EDITEUR","key":"EDITEUR","sortable":true,"fixedWidth":false,"defaultWidth":"100px"},
{"text":"Revue","key":"REVUE","sortable":true,"fixedWidth":false,"defaultWidth":"100px"},
{"text":"Année","key":"ANNEE","sortable":true,"fixedWidth":false,"defaultWidth":"100px"},
{"text":"Numéro","key":"NUMERO","sortable":true,"fixedWidth":false,"defaultWidth":"100px"},
{"text":"Titre","key":"TITRE","sortable":true,"fixedWidth":false,"defaultWidth":"250px"},
{"text":"Volume","key":"VOLUME","sortable":true,"fixedWidth":false,"defaultWidth":"90px"},
{"text":"Entrée","key":"PREM_ENTREE","sortable":true,"fixedWidth":false,"defaultWidth":"130px"},
{"text":"Nbre","key":"EN_STOCK","sortable":true,"fixedWidth":false,"defaultWidth":"90px"},
{"text":"Stock","key":"STOCK","sortable":true,"fixedWidth":false,"defaultWidth":"90px"},
];
var data = [
{
"EDITEUR":"Sc. Po","REVUE":"AUTR","ANNEE":"2009","NUMERO":"1","TITRE":"La fabrique des identités sexuelles","VOLUME":"49","PREM_ENTREE":"2009-05-12","EN_STOCK":"5","STOCK":"d3"
}];
Window.onDomReady( function(){
function exampleClick(ev){
}
function date_sortie(ev){
document.formu.REVUE.value = (this.data.REVUE);
document.formu.DATE_SORTIE.value = "MAJ";
document.formu.DATE.value = document.lejour.date.value;
document.formu.submit();
}
document.edite.REVUE.readOnly="";
document.edite.action = "edite.php";
document.edite.valider.value = "OK";
document.getElementById('chnouveau').style.display = "block";
document.getElementById('chsupprime').style.display = "block";
document.edite.refresh;
}
mootable = new MooTable( 'test', {debug: false, height: '350px', headers: headers, sortable: true, useloading: false, resizable: true});
mootable.addEvent( 'afterRow', function(data, row){
row.cols[0].element.setStyle('cursor', 'pointer');
row.cols[1].element.setStyle('cursor', 'pointer');
row.cols[2].element.setStyle('cursor', 'pointer');
row.cols[0].element.addEvent( 'click', edition.bind(row) );
row.cols[1].element.addEvent( 'click', exampleClick.bind(row) );
row.cols[2].element.addEvent( 'click', exampleClick.bind(row) );
});
mootable.loadData( data );
});
</script>
</head>
<body>
<script type='text/javascript'>
function retour () {
document.location.href = 'selection.php';
}
</script>
<table class="tab" bgcolor="#99CCCC" >
<tr>
<td class="logo"><img src="img/logo.jpg" height="50px"></td>
<td class="titrerev"><h3><font color="#000000">Numéros commandés</font></h3></td> <td class="typecons">SELECT EDITEUR, REVUE, ANNEE, NUMERO, TITRE, VOLUME, MIN(DATE_ENTREE) AS PREM_ENTREE, SUM(IF(((DATE_ENTREE > '2001-01-01') AND (DATE_SORTIE < '2001-01-01')),1,0)) AS EN_STOCK, STOCK FROM gestion_stock WHERE (gestion_stock.REVUE = 'AUTR') GROUP BY REVUE, ANNEE, NUMERO</span></td>
<td class="info"><input type="button" value="Retour" onclick="retour()"></td>
<td class="info"><input type="button" value="Imprimer" onclick="window.print()"></td>
<td class="info"><input type="button" value="Exporter" onclick="csv()" ></td>
<td class="info"> </td>
<td class="info"><form name="lejour" action="">
<input type="texte" name="date" value="2009-06-18" /></form></td>
</tr>
</table>
<div id='test'> </div>
<TABLE bgcolor="#66EEEE" STYLE="border:1px solid red;">
<div id="cache">
<form name="formu" method=POST action="maj.php">
<input type="hidden" name="DATE" value="VIDE" />
<input type="hidden" name="DATE_SORTIE" value="VIDE" />
<input type="hidden" name="PRIX_VENDU" value="VIDE" />
</form>
</div>
<div>
<form name="edite" action="edite.php" method=POST target="_blank">
<TABLE bgcolor="#99CCCC" STYLE="height:100px;border:1px solid blue;">
<tr><td colspan="10" align="Right"><input name = "valider" type="submit" value=" DETAILS " /></td>
</tr>
</TABLE>
</form>
</div>
</body>
</html>
et celui de edite.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=windows-1252"></HEAD>
<BODY></BODY></HTML>
un grand merci et je suis prenant s'il y a une autre solution
Hors ligne