Page 1 sur 1

2 fonctions MySQL resultat 0

Posté : 02 août 2005, 03:04
par philippe.z
Bonjour voici mon code
function categorie(){
	require_once('Connections/bdaop.php');
	mysql_select_db($database_bdaop, $bdaop);
	$query_categories = "SELECT * FROM activite ORDER BY activite ASC";
	$categories = mysql_query($query_categories, $bdaop) or die(mysql_error());
	$row_categories = mysql_fetch_assoc($categories);
	$totalRows_categories = mysql_num_rows($categories);
	$cat = "CATEGORIES<br>";
	while($row_categories = mysql_fetch_assoc($categories)){
		foreach($row_categories as $value){
			$cat .= "<option>$value</option>";
		}
	}
	return $cat;
};

function sscate($sscat){
		if(isset($sscat)){
		require_once('Connections/bdaop.php');
		mysql_select_db($database_bdaop, $bdaop);
		
		$query_sscat = "SELECT ssactivite FROM ss_activite WHERE activite LIKE CONVERT( _utf8 '$sscat' 
USING latin1) ORDER BY ssactivite ASC";
		$scat = mysql_query($query_sscat, $bdaop) or die(mysql_error());
		$row_sscat = mysql_fetch_assoc($ssat);
		$totalRows_sscat = mysql_num_rows($scat);
		
		$souscat = "<option value=\"\">--Sous-Catégories--</option>";
		do{
			foreach($row_sscat as $valeur){
				$souscat .= "<option id=\"$valeur\" value=\"$valeur\">$valeur</option>";
			}
		} while($row_sscat = mysql_fetch_assoc($scat));
	} else {
		$souscat = "<option value=\"\" selected >--Sous-Catégories--</option>";
	}
	return $souscat;
};
$a = categorie();
$b = sscate('alimentation');
printf("les categories %s et les sous cat de alim %s",$a, $b);
j'explique le probleme, le printf n'inscrit rien sauf si je supprime la premiere fonction et il m'affichera le resultat pour la seconde ou bien si je supprime la seconde il m'affichera le resultat de la premiere, apparemment les 2 ensemble me donnent une page blanche !! je ne comprends pas.
Je précise juste que le code est bon, séparément c'est 2 fonctions fonctionnent parfaitement
Quelqu'un pourrai-til m'éclairer ?
Merci

Posté : 02 août 2005, 08:39
par Cyrano
Je n'ai rien trouvé de suspect mais je propose quelques petites modifications de détail :
<?php
function categorie()
{
    require_once('Connections/bdaop.php');
    mysql_select_db($database_bdaop, $bdaop);
    $query_categories = "SELECT * FROM activite ORDER BY activite ASC";
    $categories = mysql_query($query_categories, $bdaop) or die(mysql_error());
    $row_categories = mysql_fetch_assoc($categories);
    $totalRows_categories = mysql_num_rows($categories);
    $cat = "CATEGORIES<br>";
    while($row_categories = mysql_fetch_assoc($categories))
    {
        foreach($row_categories as $value)
        {
            $cat .= "<option>". $value ."</option>";
        }
    }
    return $cat;
}

function sscate($sscat)
{
    if(isset($sscat))
    {
        require_once('Connections/bdaop.php');
        mysql_select_db($database_bdaop, $bdaop);

        $query_sscat = "SELECT ssactivite FROM ss_activite WHERE activite LIKE CONVERT( _utf8 '". $sscat ."' USING latin1) ORDER BY ssactivite ASC";
        $scat = mysql_query($query_sscat, $bdaop) or die(mysql_error());
        $row_sscat = mysql_fetch_assoc($ssat);
        $totalRows_sscat = mysql_num_rows($scat);

        $souscat = "<optgroup label=\"--Sous-Catégories--\">";
        while($row_sscat = mysql_fetch_assoc($scat))
        {
            foreach($row_sscat as $valeur)
            {
                $souscat .= "<option id=\"". $valeur ."\" value=\"". $valeur ."\">". $valeur ."</option>";
            }
        }
    }
    else
    {
        $souscat = "<optgroup label=\"--Sous-Catégories--\" selected>";
    }
    return $souscat;
}

/* Tests de vérification : */
$a = categorie();
$b = sscate('alimentation');
print("les categories ". $a ." et les sous cat de alim ". $b);
?>
Essaye ça et reviens nous dire ce que tu obtiens...
Note que j'ai mis entre autres suggestions le remplacement de l'option avec un titre de sous-catégorie par la balise optgroup qui est plus appropriée.

Posté : 02 août 2005, 09:43
par mere-teresa
Modération : question avec des requêtes ? (bon ok, c'est le PHP qui merd****** mais, on peut le mettre dans "Base de données", non ?

edit : bon ok , mais je le re-déplace pas :)

Posté : 02 août 2005, 09:45
par Cyrano
Non non mere-teresa, à priori un problème PHP, mais que je n'ai pas encore correctement identifié.

CA ne marche pas

Posté : 02 août 2005, 11:29
par philippe.z
Bonjour Cyrano et Bonjour Mere-Teresa,

Ton code ne fonctionne toujours pas, c'est vraiment étrange, je ne vois pas comment la présence de 2 fonctions peut empecher l'une ou l'autre de fonctionner, je vais essayer de mettre d'autres fonctions en enlevant une des 2.
Je viens de voir que le site est a présent hébergé en php 5.03 est-ce que ca peut venir de la ?

retrogradage de php

Posté : 02 août 2005, 12:02
par philippe.z
Bon j'ai fais le necessaire pour repasser sur un php4 histoire de voir si le souci vient de la mais le temps de propagation des dns ne me permettra pas de savoir cela avant 24 ou 48h je vais faire d'autres essais pour essayer de comprendre

Posté : 02 août 2005, 15:29
par Ripat
Il s'agit effectivement d'un problème php mais qui n'a rien à voir avec la version. Tu perds ton temps à remonter une ancienne version de php.

Le problème se situe probablement au niveau du require_once().

Si il est invoqué dans la première fonction, il ne le sera plus dans la deuxième. Tu perds donc tes paramètres de connexion au serveur MySQL.

Active tes error_reporting - error_reporting(E_ALL); - et tu devrais avoir un:
mysql_select_db(): supplied argument is not a valid MySQL-Link

Solution: dans chacune de tes fonctions remplace require_once par include. Ca devrait passer.

Edit: Vérifie également ta ligne
        $row_sscat = mysql_fetch_assoc($ssat);
d'où vient $ssat ???

Bien joué !!

Posté : 02 août 2005, 18:45
par philippe.z
Effectivement c'était le
require_once
qui posait problème, j'ai remplacé par
require
et depuis ca fonctionne, c'était la premiere fois que j'utilisais le "once" et je crois qu'on ne m'y reprendra plus !! en tout cas merci pour votre aide je vais maintenant me dépecher de supprimer les modif DNS et resté en PHP5 :wink:

Posté : 02 août 2005, 19:21
par Cyrano
un petit [Résolu] peut-être :?: