8768 sujets

Développement web côté serveur, CMS

Pages :
Bonjour, j'extrait d'une BDD des valeurs , (logique vous me direz)
Je viens de passer 1h30 environ sur les requêtes que je dois faire donc les requêtes n'est pas à modifier par conséquent je vous ne l'affiche pas

Voilà le résultat des ma requete principale qui me posent pbm :

upload/1510925581-67776-capture.png
(résultat de Workbench mais c'est le meme sur le site en local)

En gros je dois utiliser ses infos pour faire ça : upload/1510925629-67776-capture2.png

Je me tourne vers vous pour m'éclairer sur comment traiter les infos via des tests PHP pour ne pas me retrouver avec par exemple 5x le même tableau

Merci d'avance , bonne journée

EDIT 1 : j'ai pensé à mettre un foreach dans un for qui traite les différentes lettres
un truc dans le genre ->

for($theme='A'; $theme != 'L'; $theme++)
{
   /*Nouvelle requete sql ici */
    foreach(.......)
}


ça peut le faire ? oui ? non ?
PS_EDIT 1 : j'ai du contenu jusqu'a la lettre K
Modifié par OnePunch (17 Nov 2017 - 15:12)
Salut

au vue de la sortie que tu attend il serait plus simple de faire un array multiniveau de ton résultat puis ensuite de te promener dans ce nouvel array pou rl'affichage

ce pourrait être ça :


array('A'=>array('intitule'=>'langues', 'infos'=>array('code'=> 'A', 'domaine'=>'2', 'langue'=>'allemand')))

ensuite tu fais un foreach de foreach et tu auras tout
Le problême c'est que je suis pas à l'aise avec des tableau multiniveaux et que je sais encore moins les crée Smiley ohwell
bon déjà ton résultat de bdd il est comment ? dans quoi ??
tu fais un while sur le fetch ?? tu poses déjà tout dans un tableau ?
Pour l'instant mon tableau de résultat c'est la variable qui as stocker le résultat de la requete , mais j'ai trouvé une solution normalement

Mon problème pour les tests, c'est que je n'arrive pas compter le nombres de lignes présents dans le résultat de la requete

Je pensais utiliser mysqli_num_rows mais j'ai une erreur avec ...

if(mysqli_num_rows($req)==0)
    {
        echo "bla bla bla";
    }


msg d'erreur : Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result,
Modifié par OnePunch (17 Nov 2017 - 15:52)
imaginons que ton tableau soit $tab
$newTab = array();
foreach $t in $tab
{
        if (t.intitule == 'Langues')
        {
                array_push($newTab , t.code_theme ."". t.code_domaine ." | ". t.intitule_domaine);
        }
}

return $newTab;


J'ai pas du tout tester, mais c'est un exemple à adapter. et dans on $newTab tu as uniquement ce que tu cherches.
ça répond pas vraiment à ma question Smiley smile

Que tu testes si il y a des résultats c'es tune bonne idée...

bon en gros si je comprend bien pour l'instant tu as juste $req qui est égal à la query..

et ben on est pas arrivé au bout là Smiley lol


if(mysqli_num_rows($req) > 0){
  while($res = mysqli_fetch_row($req)){
     $array[$res[0]][$res[2]] = array($row[1], $row[3]);
  }
} else{
 echo "pas de résultats";
}

// là c'est pour que tu vois le résultat
echo "<pre>";
print_r($array);
echo "</pre>";


voilà ça prend 3 secondes et c'est franchement basique Smiley smile
pchlj a écrit :

voilà ça prend 3 secondes et c'est franchement basique Smiley smile


Basique pour toi peut etre car c'est surement ton boulot mais moi je suis seulement au stade d'être en formation pour apprendre
pas de soucis si tu es en formation Smiley smile
du coup vois tu le résultat ?? est-ce que tu le comprend et est-ce que tu envisage la façon dont tu va t'en servir ?
non je ne vois pas le résultat , j'ai tjours une erreur mais pas grave , je vais me débrouiller avec , j'ai le week end pour y rélféchir

et je comprends tjours pas pourquoi le mysqli_num_rows me sors tjours la meme erreur à la con
Voila le code avec la requete :

for($theme='A'; $theme != 'L'; $theme++)
{
    $req = $bdd->query("SELECT themes.code AS code_theme, domaines.code AS code_domaine, domaines.id AS id_domaine, domaines.intitule AS intitule_domaine, domaines.code AS code_domaine FROM stages INNER JOIN domaines ON stages.domaine_id = domaines.id INNER JOIN themes ON domaines.theme_id = themes.id WHERE stages.intitule LIKE '%excel%' AND themes.code ='".$theme."' GROUP BY code_domaine")->fetchAll(PDO::FETCH_ASSOC);

    if(mysqli_num_rows($req) == 0)
    {
        echo "<pre>Aucun résultat pour la lettre ".$theme."</pre>";
    }
    else
    {
        echo "<pre>";
        echo "Lettre ".$theme."<br>";
        print_r($req);
        echo "</pre>";  
    }
}


J'ai en permanence cette erreur :
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, array given in C:\xampp\htdocs\Projet_Somer\view\theme.php on line 10
C'est la ligne ou j'utilise mysqli_num_rows
fail ça m'as mis le meme msg qu'en haut au moment de la création du msg d'en haut
Modifié par OnePunch (17 Nov 2017 - 16:06)
ohlala Smiley smile
oui alors forcément Smiley smile

déjà tu mélange de la PDO avec du procédural...donc ça va pas bien marcher Smiley smile et en plus comme tu fait un fetchAll en sortie de ta query pour l'assignation à $req, en fait $req contient un array avec l'ensemble des résultats de ta requète donc le message d'erreur est très clair Smiley lol
Si tu veux tester si il y a des résultats avant d'afficher passe par un count Smiley smile
pchlj a écrit :
déjà tu mélange de la PDO avec du procédural..

Tu entends quoi par du procédural ?

pchlj a écrit :
Si tu veux tester si il y a des résultats avant d'afficher passe par un count


Le problème de SELECT COUNT c'est que ça ne m'arranges pas car il ne sors pas ce que je veut
mysqli_num_rows est le mode procédural php équivalent à $req->num_rows en PDO Smiley smile

je parle de faire count($req) puisque $req est un array Smiley smile
là tu bidouille des trucs sans trop savoir ce que tu fais Smiley lol mais c'est un peu normal si tu apprends Smiley cligne
Meilleure solution
ouai je fais ce que je peut avec ce que j'ai appris et ce que mes formateurs m'ont appris Smiley smile

En tout cas je t'aime , le count($req) me permet d'afficher ce qu'il faut !

EDIT : enfin non je t'aime pas trop , tu es malpoli avec tes smileys Smiley decu Smiley cligne
Modifié par OnePunch (17 Nov 2017 - 16:31)
calme toi Smiley lol trop d'amour c'est pas bon non plus Smiley biggol
content que cela t'ai débloqué Smiley smile

A voir après si tu arrives à afficher ce dont tu as besoin Smiley cligne

Bon courage, hésite pas à revenir Smiley cligne
En gros maintenant je dois m'embeter à tout afficher mais j'arrive déja à sortir les infos qu'il me faut et tester si j'ai des infos ou pas suivant la lettre de mon thème

Ducoup je vais m'amuser ce week end si je travaille ou sinon ça sera Lundi xD
Dernière question : est-ce que je peut sortir 1 seule infos de mon tableau sql sans faire de foreach $blabla as $bloblo ?
Pages :