PHP problème de return dans les fonctions
Résolu
Leinox
Messages postés
227
Date d'inscription
Statut
Membre
Dernière intervention
-
Leinox Messages postés 227 Date d'inscription Statut Membre Dernière intervention -
Leinox Messages postés 227 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je suis encore débutant en php et je me heurte à un soucie d'une fonction qui ne me retourne rien...
Je vous met tout le code nécessaire, il y a des include, mais ils fonctionnent parfaitement, de même pour mes variables qui contiennent toutes les bonnes valeurs... sauf la variable de return...
log_test.php
function_log.php
Affiché sur ma page j'ai mes balises toto et entre elle le tableau que j'attend.
en dessous j'ai affiché le message
NULL
comme quoi ma variable, pleine juste avant ma fonction return, est maintenant vide...
A l'origine je souhaitais renvoyer un tableau multi-dimensionnel... mais vu que je n'arrive même pas a renvoyer un booléen...
je suis encore débutant en php et je me heurte à un soucie d'une fonction qui ne me retourne rien...
Je vous met tout le code nécessaire, il y a des include, mais ils fonctionnent parfaitement, de même pour mes variables qui contiennent toutes les bonnes valeurs... sauf la variable de return...
log_test.php
<?php session_start(); // On démarre la session // entête et menu de navigation include("../header/tophead.php"); include("../nav_menu/nav_log.php"); ?> <!DOCTYPE html> <html> <head> // mon entête commune a toutes mes autres pages <?php include '../functions/include_head.php'; ?> <title>Validation</title> </head> <body> <?php // verification de la presence de $_post et recuperation des variables if (!empty($_POST)) { include ('../functions/function_log.php'); //php contenant ma fonction $table1 = 'sc_users'; // nom de ma table user $table2 = 'sc_groupes'; // nom de ma table groupe $retour_log_test = array(); // je définie cette variable comme étant un array vide var_dump($retour_log_test = (log_test($table1, $table2))); // execute la fonction, retourne le resultat dans un variable (hum...) et affiche ce résultat var_dump($retour_log_test); // affiche a nouveau la valeur de mon retour de ma fonction... si possible... } else { echo "header('Location: ./log_fail.php')"; // mis le renvoie en echo pour pas me faire éjecter de ma page en permanence... } // suite du code avec traitement des données sensément récupérés en retour de fonction... </body> </html>
function_log.php
<?php function log_test ($userstable, $groupestable) // pour me connecter a ma db et récupérer mes données { if (!empty($userstable) && !empty($groupestable)) { $log_test_login_sql = 'SELECT nickname, sc_password FROM '.$userstable.' '; // préparation de ma requete pour la table user $log_test_groupes_sql ='SELECT idsc_groupes from '. $groupestable. ' '; // préparation de la requete pour la table group include '../protect_folder/sql_connect.php'; // ici se fait la connexion a la base de données $log_test_login_data = mysql_query($log_test_login_sql) or die(mysql_error()); // passage de ma requete pour user $log_test_groupes_data = mysql_query($log_test_groupes_sql) or die(mysql_error()); // passage de ma requete pour group mysql_close(); // fermeture de la connexion log_test_table ($log_test_login_data, $log_test_groupes_data); } else echo "header('Location: ./log_fail.php')"; // mis le renvoie en echo pour pas me faire éjecter de ma page en permanence... } function log_test_table ($log_data, $group_data) // pour transformer ma donnée en tableau et la renvoyer { if (!empty($log_data) && !empty($group_data)) { while ($log_data_table = mysql_fetch_assoc($log_data)) // je créais mon tableau pour user { $log_data_compare[] = $log_data_table; } while ($group_data_table = mysql_fetch_assoc($group_data)) // je créais mon tableau pour group { $group_data_compare[] = $group_data_table; } $retour_log_group_compare = array($log_data_compare, $group_data_compare); // je place dans un tableau mes deux tableaux echo 'toto'; var_dump($retour_log_group_compare); // affiche le contenu de ma variable entre "toto" et "/toto" pour etre sur de l'emplacement de cette affichage echo '/toto'; return true; // devrait renvoyer vrai si tout se passe bien } else { echo "header('Location: ./log_fail.php')"; return false; // devrait renvoyer faux en cas de soucie } }
Affiché sur ma page j'ai mes balises toto et entre elle le tableau que j'attend.
en dessous j'ai affiché le message
NULL
comme quoi ma variable, pleine juste avant ma fonction return, est maintenant vide...
A l'origine je souhaitais renvoyer un tableau multi-dimensionnel... mais vu que je n'arrive même pas a renvoyer un booléen...
A voir également:
- PHP problème de return dans les fonctions
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Zuma return - Télécharger - Jeux vidéo
- Notice de fonctionnement - Guide
- Syntaxerror: 'return' outside function - Forum Python
2 réponses
Bonjour,
Tu écris
$retour_log_test = (log_test($table1, $table2)
Mais la fonction log_test ne renvoie aucune valeur : il n'y a aucun return dans cette fonction !
Si tu veux qu'elle te renvoie quelque chose, il faut que tu mettes return qqchose, ce que tu as bien fait pour la fonction log_test_table
Tu écris
$retour_log_test = (log_test($table1, $table2)
Mais la fonction log_test ne renvoie aucune valeur : il n'y a aucun return dans cette fonction !
Si tu veux qu'elle te renvoie quelque chose, il faut que tu mettes return qqchose, ce que tu as bien fait pour la fonction log_test_table
Leinox
Messages postés
227
Date d'inscription
Statut
Membre
Dernière intervention
29
2 jours que je cherche et la solution est évidente. Merci le père !