Undefined variable en PHP5 et MYSQL5

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Undefined variable en PHP5 et MYSQL5

par jojolapine » 04 avr. 2007, 15:13

You'r welcome ;-)

par Jean-Michel-Lyon » 04 avr. 2007, 15:03

Merci égalenemt à jojolapine, parce que malgré la correction sur le nom de la table avec <? ça ne marchait toujours pas alors que maintenant avec <?php ça marche.

C'est une des premières questions que je pose sur ce forum, je dois dire que tous vous êtes éfficaces et patients.

Bravo.

Jean-Michel

par Invité » 04 avr. 2007, 15:00

Merci à Tous,

Problème résolu, j'avais mal ortographié le nom de ma table, je suis désolé d'avaoir posé une question si nulle.

Jean-Michel

par jojolapine » 04 avr. 2007, 14:54

à tout hasard, remplace tout les <? par des <?php, car les shorts_open_tag sont peut-être désactivé sur le serveur ?

par Invité » 04 avr. 2007, 14:46

C'est ce que j'ai fait, j'ai placé cette ligne
$result = mysql_query($sql) or die(mysql_error());
mais aucune erreur ne s'affiche, mis à part Notice: Undefined variable: row in C:\\Web\browse.php on line 55

Jean-Michel

par jojolapine » 04 avr. 2007, 14:41

Bonjour,

J'avais enlevé les @ mais comme ça na faisais rein, je vous donnais mon code pour essayer de vous aider, désolé si ce n'était pas ce que vous attendiez, je rectifie donc et voici ce que j'ai après avoir enle vé les @.


J'ai enlevé les @, le message d'erreur est toujours le même soit : Notice: Undefined variable: row in C:\\Web\browse.php on line 55

Jean-Michel
il t'avais également été conseillé d'afficher les erreurs sql, via des appels aux fonctions mysql de ce genre
mysql_*(...) or die(mysql_error());

par Jules Petibidon » 04 avr. 2007, 14:35

un truc tout bete :

dans le code de la création de table, tu crées une table "catégories"...
et dans ton code PHP, tu recherches tes infos dans une table "catégorie"...
je pense qu'il y a quelque chose à en conclure... ;)

accessoirement je sais pas comment est configuré ton serveur, mais afficher les erreurs est un excellent remede contre la fatigue visuelle et l'étourderie ;)

par Invité » 04 avr. 2007, 13:07

Bonjour,

J'avais enlevé les @ mais comme ça na faisais rein, je vous donnais mon code pour essayer de vous aider, désolé si ce n'était pas ce que vous attendiez, je rectifie donc et voici ce que j'ai après avoir enle vé les @.


J'ai enlevé les @, le message d'erreur est toujours le même soit : Notice: Undefined variable: row in C:\\Web\browse.php on line 55

Jean-Michel

par zeus » 04 avr. 2007, 10:56

D'une manière plus nuancée, je suis 300% d'accord avec Expreg ...

Nous avons été plusieurs à te donner des pistes, nous ne t'avons pas redemandé ton code, tu ne nous as pas écouté :(

Pour qu'on arrive à t'aider, il faudrait peut être que tu mettes un peu du tiens ;)

par Expreg » 04 avr. 2007, 10:54

D'où vient cette impression que tu n'écoutes pas ce qu'on te dit ?

Il y a 3 ou 4 personnes qui te demandent de virer les @ de ton code et à la lecture de celui-ci ce n'est pas fait.
Tu ne semble pas très coopératif dans le réglement de ton problème.

par Jean-Michel-Lyon » 03 avr. 2007, 21:46

Voilà, je mets mon code et le script de création de la table, si quelqu'un a la gentillesse de tester.

Merci à vous,

Voici le script de création de la table

Code : Tout sélectionner

CREATE TABLE `categories` ( `id` int(11) NOT NULL auto_increment, `description` varchar(100) NOT NULL default '', PRIMARY KEY (`id`) ) TYPE=MyISAM AUTO_INCREMENT=1 ;
Voici le code
<?php
$dbconn = @mysql_connect('localhost', 'root', 'mdp');
if (!$dbconn)
{
die('Error connecting to DB!');
}
	 //if (! @mysql_select_db('letschip_lcinewdb') ) 
	if (! @mysql_select_db('nombase') ) 
	{ 
		die( '<p>Unable to locate the main ' . 
       	 	'database at this time.</p>' ); 
	} 


if(isset($_GET['id']))
	$ID = $_GET['id'];
else
	$ID = 1;  

// Shipping is 3.50 per unit weight
$ship_factor = 3.5  
?>
<html>

<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Browse Products</title>
<style>
<!--
.ms-color2-main { border-left-style: none; border-right-style: none; border-top-style: none; 
               border-bottom: 1.5pt solid black; background-color: silver }
.ms-color2-tl { font-weight: bold; color: white; border-left-style: none; border-right-style: 
               none; border-top-style: none; border-bottom: 1.5pt solid black; 
               background-color: maroon }
.ms-color2-top { font-weight: bold; color: white; border-left-style: none; border-right-style: 
               none; border-top-style: none; border-bottom: 1.5pt solid black; 
               background-color: maroon }
-->
</style>
</head>

<body bgcolor="#669900" link="#FFFF00" vlink="#FFFFFF">

<p><b><font face="Verdana" color="#FFFF00" size="5">Browse Products By Team.</font></b></p>
<table border="1" width="100%" id="table1" class="ms-color2-main">
	<!-- fpstyle: 9,011111100 -->
	<tr>
	<?
		$sql = "SELECT * from categorie";
  	 	$result = @mysql_query($sql);
		while  ($row = mysql_fetch_array($result))
		{
		?>
		<td class="ms-color2-tl"><a href='browse.php?id=<?php echo($row['id']) ?>'> <?php 

echo($row['description']) ?></a></td>
		<?
		}
	?>
	</tr>
</table>
<p>&nbsp;</p>

</body>

</html>

par Truc » 03 avr. 2007, 21:45

Par contre, je ne comprend pas comment on rentre dans le while si $row n'est pas renseigné
L'un des champs "description" ou "id" n'existe pas dans la table "categories"... souci d'orthographe peut être. :-k

N'oublie pas le point virgule en fin de echo.

par zeus » 03 avr. 2007, 21:06

Déjà, pour le débugage, vire les @ qui feront apparaitre les messages d'erreurs.

Ensuite, le message d'erreur signifie que $row n'existe pas, donc que la fonction mysql_fetch_array() n'arrive pas à retourner qqchose.

Par contre, je ne comprend pas comment on rentre dans le while si $row n'est pas renseigné

par titerm » 03 avr. 2007, 21:03

Déjà, commence par virer tous les @ devant les fonctions, cacher les messages d'erreur ne resous pas les erreurs... Et quand ca marche pas, on sait pas pourquoi...

Ensuite, qd tu verras les messages d'erreurs, tu sauras à quel endroit ca cafouille.

par Invité » 03 avr. 2007, 20:30

Toujours la même erreur :

Notice: Undefined variable: row in C:\Web\browse.php on line 56

Mais j'ai l'impression que la select ne se fait pas, la connexion à la base s'effectue (ça j'en suis sûr) parce que j'ai mis un message, par contre les accès aux tables ne se font pas.

Je suis avec IIS5 , avez-vous une idée ?

Jean-Michel