Page 1 sur 1

besoin correction tri dynamique personnalisé

Posté : 23 sept. 2012, 19:21
par neomega
bonjour pourriez vous me dire pourquoi ce script ne veut pas fonctionner sur PHP version 5.2.17 alors qu'il fonctionne très bien sur PHP Version 4.4.9

n’étant pas le créateur de ce script et étant débutant en PHP je ne sait pas du tout ou se trouve l'erreur
j'avait commencer a poser certaine question sur ce post : php-debutant/revenir-sur-une-ancienne-v ... 65681.html
mais le titre ne relater pas mon problème correctement

un des problème qui s'y trouve même version PHP 4.4.9 c'est que des variable ne sont pas défini mais pourtant sa fonctionne :?

page exemple liste des devis
<?php

if($_SESSION['id_comm']==3)
	{	$admin_tri="";	}
	else
	{	$admin_tri="user_devis =".$_SESSION['id_comm']." and";	}


// Conexion a la base de données


$Host="mon serveur";
$User="mon user";
$Pass="mon pass";
$Base="la base";


$connect = mysql_connect($Host,$User,$Pass);
mysql_select_db($Base,$connect);





$time=time();
$mois12=60*60*24*365;
$time_last=$time-$mois12;

if(isset($_GET['time_tri'])){
	$time_tri="and 	date_devis<$time_last ";	
}
	else{
		$time_tri="and 	date_devis>$time_last ";	
		}
/* tri les plus anciens et les plus recentes "fonctionne" */
if($_GET['time_tri']=="last"){
	$last="<a href=?var_menu=liste_devis>Voir les plus recentes</a>";	
}
	else{
		$last="<a href=?time_tri=last&var_menu=liste_devis>Voir les plus ancients</a>";	
		}
/*------------*/

if($_GET['full']==1)
{
$full_tri="&full=1";

switch($tri)
	{
		case 'user': $req="select * from devis,clients where $admin_tri client_devis=id_client $time_tri order by user_devis"; break;
		case 'num': $req="select * from devis,clients where $admin_tri client_devis=id_client $time_tri order by num_devis"; break;
		case 'date':$req="select * from devis,clients where $admin_tri client_devis=id_client $time_tri order by date_devis desc"; break;
		default:	$req="select * from devis,clients where $admin_tri client_devis=id_client $time_tri order by nom_client"; break;
	}
$devis_liste="<tr height=50><td align=center colspan=6><a href=?var_menu=liste_devis>Voir la liste de devis en cours</a><br><br>
$last</td></tr>";
}
else
{
	switch($tri)
	{
		case 'user': $req="select * from devis,clients where $admin_tri client_devis=id_client and fin_devis !=1 $time_tri order by user_devis"; break;
		case 'num': $req="select * from devis,clients where $admin_tri client_devis=id_client and fin_devis !=1 $time_tri order by num_devis"; break;
		case 'date':$req="select * from devis,clients where $admin_tri client_devis=id_client and fin_devis !=1 $time_tri order by date_devis desc"; break;
		default:	$req="select * from devis,clients where $admin_tri client_devis=id_client and fin_devis !=1 $time_tri order by nom_client"; break;
	}
$devis_liste="<tr height=50><td align=center colspan=6><a href=?var_menu=liste_devis&full=1>Voir la liste complete pour 12 derniers mois</a><br><br>
$last</td></tr>";

}
if($_SESSION['id_comm']==3)
{
	$comm_titre="<a href=?tri=user&var_menu=liste_devis$full_tri><b>Commercial</a></b>";
	$width="width=100";
}

echo "<table width=700 border=0 align=center cellspacing=0>
<tr><td colspan=6 align=center class=titre_section>Liste de Devis<BR>&nbsp;</td></tr>
<tr>
<td><a href=?tri=nom&var_menu=liste_devis$full_tri><b>Nom de client</b></a></td>
<td><a href=?tri=num&var_menu=liste_devis$full_tri><b>N°</b></a></td>
<td><a href=?tri=date&var_menu=liste_devis$full_tri><b>Date</b></a></td>
<td><b>Type</b></td><td></td><td $width>$comm_titre</td></tr>";



$count=0;

//$req="select * from devis,clients where client_devis=id_client order by nom_client";
$res=Cnx_bd($req,0);
while($rep=mysql_fetch_object($res))
	{
		$reduc=0;
		if($count%2==1)
			{	$color="bgcolor=#e9e8e8";	}
					else
			{	$color=" f";			}

		if($rep->entreprise_client&&$rep->entreprise_client!="Entreprise")
		{	$corpo= "$rep->entreprise_client<br>";	}
		else
		{	$corpo= "";	}
		
		if($rep->id_client!=$id)
		{ 
			$client="$corpo $rep->prenom_client $rep->nom_client<br>$rep->ville_clients";	
			$saut="<tr><td>&nbsp;</td></tr>";
		}
		else
		{	
			$client="";	
			$saut="";
		}
		echo $saut;
		echo "<tr height=25><td width=150>$client</td><td width=60 $color>$rep->num_devis-$rep->num_sub_devis</td>";
		
		$req2="select prix_devis from equi_devis where equi_num_devis=$rep->num_devis  and equi_sub_devis=$rep->num_sub_devis and id_equi_devis=0";
		$res2=Cnx_bd($req2,0);
			while($rep2=mysql_fetch_object($res2))
			{	$reduc=$rep2->prix_devis;	}

		if($rep->type_devis==1)
			{	$action="action=genesol_pdf.php";	$type="Solaire";	}
			else
			{	$action="action=genepac_pdf.php";	$type="PaC";	}

		$id_comme=$rep->user_devis;

		echo "<td $color width=100>".strftime("%d %B %Y",$rep->date_devis)."</td><td $color>$type</td>";
		echo "<td $color width=100><form method=post $action target=\"_blank\">
		<input type=hidden name=devis_num value=".$rep->num_devis.">
		<input type=hidden name=devis_sub_num value=".$rep->num_sub_devis.">
		<input type=hidden name=reduc value=$reduc>

		<input type=submit value=Imprimer></form></td>";
		if($rep->fin_devis==1)
		{	$fin="<td $color width=50>Paiment enregistré</td>";	}
		else
		{	$fin="<td $color></td>";				}
		
		if($_SESSION['id_comm']==3)
		{	$req2="select * from administration where id=$id_comme";
			$res2=Cnx_bd($req2,0);
			while($rep2=mysql_fetch_object($res2))
				{	$comm=$rep2->login;	}
		}
		else
		{	$comm="";					}

		echo "<td $color>$comm</td>$fin</tr>";		
		$id=$rep->id_client;
		$count++;

	}
echo $devis_liste;
?>
<tr height=50><td align=center colspan=6><a href=?var_menu=0>Retour</a></td></tr></table>
en espérant que vous pourrai m'aider MERCI D'AVANCE

Re: besoin correction tri dynamique personnalisé

Posté : 24 sept. 2012, 08:25
par Mazarini
Est ce que tu as essayé en ajoutant le 2 lignes : extract($_GET); et extract($_POST); en début de script ?

Re: besoin correction tri dynamique personnalisé

Posté : 24 sept. 2012, 20:53
par neomega
alors avec ceci LE TRI MARCHE NIKEL

et pas mal d'erreur on disparu

il ne reste que celle ci

Notice: Undefined index: time_tri in /homepages/11/d257698003/htdocs/facture_controle/www/liste_devis.php on line 20

Notice: Undefined index: full in /homepages/11/d257698003/htdocs/facture_controle/www/liste_devis.php on line 28

Notice: Undefined variable: full_tri in /homepages/11/d257698003/htdocs/facture_controle/www/liste_devis.php on line 57

Notice: Undefined variable: full_tri in /homepages/11/d257698003/htdocs/facture_controle/www/liste_devis.php on line 65

Notice: Undefined variable: full_tri in /homepages/11/d257698003/htdocs/facture_controle/www/liste_devis.php on line 66

Notice: Undefined variable: full_tri in /homepages/11/d257698003/htdocs/facture_controle/www/liste_devis.php on line 67

Notice: Undefined variable: id in /homepages/11/d257698003/htdocs/facture_controle/www/liste_devis.php on line 88

Re: besoin correction tri dynamique personnalisé

Posté : 24 sept. 2012, 22:38
par moogli
Comme déjà dit sur l'autre sujet utilise isset ou empty sur chaque index de get ou post.

(Tu ne le fait pas partout).

@+

Re: besoin correction tri dynamique personnalisé

Posté : 25 sept. 2012, 14:02
par Mazarini
Attention, la solution extract() n'est pas la bonne solution. C'est surtout pour dépanner. Ca signifie que ton application n'était à priori pas très sur et que l'on a laissé le problème en l'état.

Il faut faire l'initialisation des variables une par une et contrôler les valeurs. Mais ca demande pas mal de travail. J'avoue avoir déjà fait ce genre de travail et avoir demandé un paramétrage analogue de php et cité explicitement le register global. L'hébergeur a d'ailleurs été très retissant. Entre les 2 il y a un gros écart de charge de travail pour reprendre toutes les pages.

Re: besoin correction tri dynamique personnalisé

Posté : 26 sept. 2012, 22:31
par neomega
je vien de dessayer
if (isset($_GET['time_tri']=="last"))
	{
		$last="<a href=?var_menu=liste_devis>Voir les plus recentes</a>";	
	}
else{
		$last="<a href=?time_tri=last&var_menu=liste_devis>Voir les plus ancients</a>";	
	}
ou meme !empty a la place du isset et j'ai une page blanche avec cette erreur

Erreur d'analyse : syntax error, T_IS_EQUAL inattendu, attendait ',' ou ')' dans mon site/liste_devis.php sur la ligne : la voici
if (isset($_GET['time_tri']=="last"))

Re: besoin correction tri dynamique personnalisé

Posté : 27 sept. 2012, 10:29
par Mazarini
$last="<a href=?time_tri=last&var_menu=liste_devis>Voir les plus ancients</a>"; 
if (isset($_GET['time_tri'])) {
   if ($_GET['time_tri']=="last") {
      $last="<a href=?var_menu=liste_devis>Voir les plus recentes</a>";       
   }
}