Tom's Guide > Forum > Programmation > divers problèmes sur un programme en php
divers problèmes sur un programme en php - Programmation
TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Bonjour,
Je suis débutante en programmation et j'ai de petits soucis avec un programme, pouvez vous m'aider svp merci d'avance.
Je sais que le message est super long mais je ne savais pas comment expliquer ces erreus alors j'espères que vous ne m'en voudrez pas trop.

Voici mon script :
require ("table.php" );
session_start ();
require ("params.php" );
//ecriture de l'instance dans les variables de session
$_SESSION["auto"]=new table ($user, $host,$passwd,$db);
//$marqcode=$_GET["marqcode"];
print '<?xml version="1.0" encoding="iso-8859-15"?>';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//En"
"http://www.w3.org/TR/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">

<head>
<title>liste des modèles</title>
<*script type="text/javascript">
<!--
function charge (url, target, args)
{
arg = new Array () ;
eargs = new String () ;
eargs = "?";
for (i=0;i<arg.length;i++)
{
elem=arg.split("=" ) ;
eargs=eargs+elem[0]+"="+escape(elem[1])+"&";
}
eargs=eargs.substr (0,eargs.length-1);
url=url+eargs;
target.location.replace (url);
}

function chg (code)
{
document.location = "liste.php?code="+marqcode+"&<?php print session_name()."=".session_id(); ?>";
}
//-->
</*script>
</head>

<body>
<?php
//activation des messages d'erreur
$_SESSION["auto"]->errorenable();
$_SESSION["auto"]->connect ();
?>
<div style="text-align: center">
<table width=100% border="1" style="background-color: #DBDBDB">
<?php
$query = "selec marqcode, marqnom from marque order by marqnom";
$lignes=$_SESSION["auto"]->request ($query);
print ("
<tr>
<td colspan=\"4\">
<form action=\"javascript: void\">
<div>
Changer de marque :
<select name=\"lstmarq\" id=\"lstmarq\" onchange=\"chg(this.value)\">" );
foreach ($lignes as $ligne)
{
list ($marqcodem,$marqnom) = $ligne;
print ("
<option value=\"$marqcodem\"" );
if ($marqcode==$marqcodem)
{
print ("selected=\"selected\"" );
$marque = $marqnom;
}
print ("
>$marqnom</option>" );
}
print ("
</select>
</div>
</form>
</td>
</tr>" );
print ("
<tr>
<td colspan=\"4\">LISTE DES ".strtoupper($marque)."</td>
</tr>" );
print ("
<tr>
<td align=\"center\">
<b>Photo</b>
</td>
<td align=\"center\">
<b>Modèles</b>
</td>
</tr>" );
$query = "selec voitcode,modele,image from voiture where marqcode=\$marqcode\" order by modele";
$lignes=$_SESSION["auto"]->request ($query);
foreach ($lignes as $ligne)
{
list ($voitcode,$modele,$image) = $ligne;
printf ("
<tr>
<td>
<a
href=\"javascript:charge('fiche.php','voitcode=%s&%s=%s')\">%s</a>
</td>
<td align=\"right\">%s</td>


</tr>",$voitcode,session_name(),session_id(),$modele,$image);
}
mysql_close ();
?>
</table>
<?php print ("ID de session : ".session_id()."\n" ); ?>
</div>
</body>
</html>


Et mes messages d'erreur :

Notice: Undefined variable: marque in c:\documents and settings\administrateur\mes documents\site\programmes php\liste.php on line 96

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\documents and settings\administrateur\mes documents\site\programmes php\table.php on line 172

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in c:\documents and settings\administrateur\mes documents\site\programmes php\table.php on line 175

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in c:\documents and settings\administrateur\mes documents\site\programmes php\table.php on line 182

Warning: Invalid argument supplied for foreach() in c:\documents and settings\administrateur\mes documents\site\programmes php\liste.php on line 109

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

il faudrai mettre le code de table.php
Les erreurs sont plus dans ce fichier!
Et ligne96 dans liste.php, la variable $marque n'est pas définie!

Répondre à mr_keyser

<?php
/*
#----------------------------------------------------------------------------#
# Projet : GESTION PARC MATERIEL INFORMATIQUE #
#----------------------------------------------------------------------------#
# Nom du programme : table.php #
# Langages : php, html, javascript #
#----------------------------------------------------------------------------#
# objectif : #
# Fonctions de connexion et de requete à la base sql #
# #
# #
# #
#----------------------------------------------------------------------------#
*/

//------------------------------------------------------------------------------
//fonction d'affichage de message.
//------------------------------------------------------------------------------
function message( $msg )
{
print "
<*script type=\"text/javascript\">
<!--
alert( '".str_replace("'","\'",$msg)."');
//-->
</*script>
";
}
//class d'objet table
class table
{
//les attributs
var $user;
var $passwd;
var $host;
var $db;
var $idc;
var $msgerror; //variable contenant le dernier message d'erreur
var $boolerror; //variable booleenne pour gérer les erreurs
var $nbtuple;

//------------------------------------------------------------------------------
//constructeur : initialisation données membres
//------------------------------------------------------------------------------
function table($user,$host,$passwd,$db)
{
$this->user=$user;
$this->passwd=$passwd;
$this->host=$host;
$this->db=$db;
$this->idc=FALSE;
$this->boolerror=TRUE;
$this->msgerror="";
$this->nbtuple=0;
}
//------------------------------------------------------------------------------
//fonction d'activation des messages d'erreurs
//------------------------------------------------------------------------------
function errorenable()
{
$this->boolerror=TRUE;
}
//------------------------------------------------------------------------------
//fonction d'inibition des messages d'erreurs
//------------------------------------------------------------------------------
function errordisable()
{
$this->boolerror=FALSE;
}
//------------------------------------------------------------------------------
//fonction retournant le contenu du dernier message d'erreur
//------------------------------------------------------------------------------
function geterror()
{
return $this->msgerror;
}
//------------------------------------------------------------------------------
//fonction de connexion
//------------------------------------------------------------------------------
function connect()
{
//test de la présence des paramêtres
//print "<div>user: $this->user - host: $this->host - passwd: $this->passwd - db: $this->db</div>
";
if( $this->user=="" || $this->host=="" || $this->db=="" )
{
$this->msgerror = "Les informations de connexion sont incompletes";
if( $this->boolerror )
{
message( $this->msgerror );
}
return FALSE;
}
else
{
//réalisation de la connexion
$this->idc=mysql_connect($this->host, $this->user, $this->passwd);
if( $this->idc == FALSE)
{
//echec de connexion à la base
$this->msgerror = "Les informations de connexion sont INCORRECTES";
if( $this->boolerror )
{
message( $this->msgerror );
}
return FALSE;
}
else
{
//connexion à la base réussie

//sélection de la base
if( mysql_selec_db( $this->db ) )
{
//selection de la base réussie

}
else
{
//echec de connexion à la base
$this->msgerror = "La sélection de la base est impossible";
if( $this->boolerror )
{
message( $this->msgerror );
}
return FALSE;
} //fin du if de selection de la base
} //fin du if de connexion
} //fin du if de la présence des info de connexion
} //fin de la fonction jvconnect
//------------------------------------------------------------------------------
//fonction de traitement des requetes SQL
//------------------------------------------------------------------------------
function request( $larequete )
{
//test de la présence d'une chaine de requete en argument
//if( requete == "" )
if( $larequete == "" )
{
$this->msgerror = "La chaine de requete est vide";
if( $this->boolerror )
{
message( $this->msgerror );
}
return FALSE;
}
else
{
//test de d'une connexion établie
if( $this->idc == FALSE)
{
$this->msgerror = "La connexion à la base n'est pas établie";
if( $this->boolerror )
{
//il n'y a pas de connexion
message( $this->msgerror );
}
return FALSE;
}
else
//la connexion est établie
{
//éxecution de la requete
$result = mysql_query( $larequete ) ;
//test du type de requete
//print "<br>$larequete<br>";
switch( strtoupper( substr( ltrim($larequete),0,6 ) ) )
{
case "SELECT":
//requete de selection
//conservation du nombre de tuple
$this->nbtuple = mysql_num_rows( $result );
//traitement du résultat de la requete
$i = 0;
while ( $ligne = mysql_fetch_row ( $result ) )
{
$tabl[ $i ] = $ligne ;
$i++ ;
} //fin du while

//liberation de la mémoire
mysql_free_result( $result );
//test du nombre de résultats
if( $this->nbtuple == 0 )
{
//aucune ligne de résultat
return TRUE;
}
else
{
//au moins 1 ligne de résultat : on retourne le tableau des lignes
return $tabl;
}
break;
case "INSERT":
//requete d'insertion
if( $derincrement=mysql_insert_id() )
{
//la requete insert a modifié une colonne en auto_increment
//on retourne le n°d'increment
return $derincrement;
}
else
{
//la requete insert n'a PAS modifié une colonne en auto_increment
return TRUE;
}
break;
case "UPDATE":
//requete de mise à jour
return TRUE;
break;
} //fin du switch

} //fin du test d'une connexion établie

} //fin du test de la vérification de la chaine de requete

} //fin de la fonction request
} //fin de la class otable

?>

Répondre à elodies

remplace
//éxecution de la requete
$result = mysql_query( $larequete ) ;

par

//éxecution de la requete
$result = mysql_query( $larequete ) or die("erreur a l'execution de la requete" ) ;

puis execute, ca te dira deja si l'erreur viens de l'execution ou de la requete!
Parcque la, $result à l'air vide, ou null, ou je sais pas quoi, mais il pose probleme!

Répondre à mr_keyser

Merci,
C'est bien une erreur dans l'exécution de ma requête, je vais essayer de trouver cette erreur et si vous avez une solution entre temps, elle sera la bienvenue.

Répondre à elodies

Le prblème est résolue j'avais un pb de le nom dans ma table voiture (mauvais nom dans la requête).
Merci bcp pour ton aide et j'en aurais surement besoin plus tard.

Répondre à elodies

Rebonjour,
Encore une question:
je veux réaliser un tableau de 4 colonnes avec le résultat d'une requête, ou je veux afficher une image et une description mais en deux fois deux colonnes (j'espères que vous me comprenez) et je n'ai réussi qu'à avoir le résultat en deux colonnes alors comment faire autrement ?
Voici une partie de mon programme :
<?php
$query="selec * from marque order by marqnom";
$result=$_SESSION["auto"]->request ($query) or die ("
</table>
<br/>
<b><u>Erreur dans la requete :<u><br/>
    $query<br/>
    Mysql:".mysql_error()." </b>
</div>
</body></html>" );


foreach ($result as $ligne)
{
list ($marqcode, $marqnom, $image) = $ligne;
print ("
<tr>
<td align=\"center\">" );

if (file_exists ("images/".$image))
{
print ("
<img src=\"images/$image\" width=\"60\" height=\"60\" alt=\"$marqnom\"/>" );
}
else
{
print ("
 " );
}
print ("
</td>
<td>
$marqnom
</a>
</td>
</tr>" );
}

Répondre à elodies
Tom's Guide > Forum > Programmation > divers problèmes sur un programme en php
Aller à :

Il y a 2354 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens