Résolu Besoin d'aide PHP / MySQL - noob

Statut
N'est pas ouverte pour d'autres réponses.

AskaL

Premium
Inscription
14 Janvier 2015
Messages
1 531
Réactions
136
Points
9 836
RGCoins
0
Bonsoir, j'ai une amie qui doit faire un travail sur la langage php sql, mais elle ne comprend pas ce qu'il faut faire, Elle a un lien internet avec des coûts, par exemple 2 centimes, et un mot en gras, et elle doit mettre une orhzse en indiquant les mot en gras, sa doit lui indiquer le prix mais sa ne lui marque rien.

Désoler si c'est très mal expliquer.. Et merci de votre aide
 

AskaL

Premium
Inscription
14 Janvier 2015
Messages
1 531
Réactions
136
Points
9 836
RGCoins
0
Une photo de son devoir :
1483816100-15967299-455003648222449-520218768-o.jpg
 

Daniel.Dev

Membre
Inscription
29 Novembre 2016
Messages
160
Réactions
90
Points
1 566
RGCoins
0
Je lui est fais une base, à elle de modifier et de continuer d'approfondir ça, le principal c'est que c'est correct :)

Code PHP

PHP:
<?php
// function pour ne pas prendre en compte les balises html dans une chaine de caractère (utiliser pour afficher la chaîne)
function htmlwrap($str, $maxLength, $char='<br />'){
    $count = 0;
    $newStr = '';
    $openTag = false;
    $lenstr = strlen($str);
    for($i=0; $i<$lenstr; $i++){
        $newStr .= $str{$i};
        if($str{$i} == '<'){
            $openTag = true;
            continue;
        }
        if(($openTag) && ($str{$i} == '>')){
            $openTag = false;
            continue;
        }
        if(!$openTag){
            if($str{$i} == ' '){
                if ($count == 0) {
                    $newStr = substr($newStr,0, -1);
                    continue;
                } else {
                    $lastspace = $count + 1;
                }
            }
            $count++;
            if($count==$maxLength){
                if ($str{$i+1} != ' ' && $lastspace && ($lastspace < $count)) {
                    $tmp = ($count - $lastspace)* -1;
                    $newStr = substr($newStr,0, $tmp) . $char . substr($newStr,$tmp);
                    $count = $tmp * -1;
                } else {
                    $newStr .= $char;
                    $count = 0;
                }
                $lastspace = 0;
            }
        }
    }

    return $newStr;
}

// __________________________________________________________________________________________________________________________
 
// Phrase défini (soit article)
$phrase = "<b>Lorem</b> ipsum dolor <b>sit</b> amet, <b>consectetur</b> <b>adipiscing</b> elit. Vestibulum <b>scelerisque</b> <b>velit</b> ac ligula <b>metus</b>."; // Phrase de 102 caractères

// Reset des balises <b></b>
$phrase_texte =  str_replace('<b>', '', $phrase); // On ne calcule pas les balise <b>
$phrase_texte2 =  str_replace('</b>', '', $phrase_texte);// On ne calcule pas les balise </b>

// Phrase finale
$phrase_coupee = wordwrap($phrase_texte2, 32, "<br />", true); // Retour à la ligne tous les 32 caractères sans couper de mots et sans les balises <b> et </b>

// Calculs en fonction des lignes
$nb_lignes = count (explode ("<br />", $phrase_coupee)); // Compter le nombre de ligne de la chaine $phrase_coupee
$nb_lignes_calcul = $nb_lignes * 1.5; // Calcul du prix des lignes (1.5€ par ligne)
$nb_mots_gras = substr_count($phrase, '<b>');
$nb_mots_gras_calcul = $nb_mots_gras * 0.02;
$prix_total = $nb_lignes_calcul + $nb_mots_gras_calcul;




// __________________________________________________________________________________________________________________________
// Afficher les résultats
// __________________________________________________________________________________________________________________________
echo htmlwrap($phrase, 32, "<br />");
echo '<br /><hr /><br />
<u>Calculs de la chaîne :</u><br />
Il y a <b>'.strlen($phrase_texte2).' caractères</b> dans cette chaîne.<br />
Il y a <b>'.$nb_lignes.' lignes</b> dans cette chaîne.<br />
Il y a <b>'.substr_count($phrase, '<b>').' mots en gras</b> dans cette chaîne.<br /><br />

<u>Calcul du prix :</u><br />
Il y a <b>'.$nb_lignes.' lignes</b> soit un total de <b>'.$nb_lignes_calcul.' euros</b>.<br />
Il y a <b>'.$nb_mots_gras.' mots en gras</b> soit un total de <b>'.$nb_mots_gras_calcul.' euros</b>.<br /><br />

<u>Total du prix :</u><br />
<b>'.$nb_lignes_calcul.'</b> + <b>'.$nb_mots_gras_calcul.'</b> = <b>'.$prix_total.' euros</b>.<br />
Le prix total est de <b>'.$prix_total.' euros</b>.';

?>

RÉSULTATS

a46dae12972442b3b898100d9908b451.png
 
Dernière édition:

JB 🚀

Administrateur
Inscription
25 Février 2011
Messages
3 320
Réactions
10 339
Points
27 886
RGCoins
1 573
J'ai édité le titre de ta discussion pour que celle-ci soit plus compréhensible.

A l'avenir essaie de faire des titres plus longs et détaillés, plus le titre est long et détaillé, plus tu obtiendras de vues ainsi que des réponses . :tchuss:
 

Praxis'

Ancien staff
Inscription
7 Février 2016
Messages
9 908
Réactions
4 345
Points
20 471
RGCoins
214
Salut AskaL, :membre:

Ta demande est-elle résolue ?
Clique sur 'Cette réponse a répondu à ma question' si quelqu'un a su t'aider, pour le remercier et pouvoir déplacer ton topic dans la section adéquate.

Cordialement,
Praxis |ES
 
Cette réponse a aidé l'auteur de cette discussion !
Statut
N'est pas ouverte pour d'autres réponses.
Haut