Aller au contenu

EmGeI

Actif
  • Compteur de contenus

    10
  • Inscrit(e) le

  • Dernière visite

Messages postés par EmGeI

  1. Ben bouclé il boucle

    while ($i <= 10) {
    $operator_id = $_POST['operator_id'];
    $ndc = $_POST['ndc'.$i];

    // Construction de la requête SQL
    $req .= " ('$operator_id', '$ndc'),";
    $i++;

    mais il boucle de trop...

    Si par exemple je rentre des infos dans 3 champs lui va me faire un insertion de 10 champs vu que

    while ($i <= 10

    en gros ma question est comment faire pour qu'il n'insert que le nombre de champs remplis.

    Donc si j'ai 3 champs il me fait un insert de 3 champs et si j'en ai 20 il me le fait pour les 20.

    Je ne sais pas si je suis clair en fait :unsure:

  2. Bonjour à tous,

    Voici mon soucis.

    J'ai un formulaire de deux champs : un hidden et un text.

    Etant donné que les infos à rentré sont aléatoire j'ai un bouton qui me permet de

    rajouté des champs dans le formulaire.

    Lors du submit du ce formulaire les infos sont stockées dans une DB.

    Le problème est que lors du l'envoie du form, il prend en compte un nombre défini de donnée

    et non le nombre de champs envoyé

    EX:

    champs 1 : info1

    champs 2 : info2

    Lors du submit il va me sortir :

    INSERT INTO table (champs caché, champ) VALUES ('champs caché', ''), ('champs caché', 'info 2'), ('champs caché', ''), ('champs caché', ''), ('champs caché', ''), ('champs caché', ''), ('champs caché', ''), ('champs caché', ''), ('champs caché', ''), ('champs caché', ''), ('champs caché', '')

    Et le champs 1 n'est pas pris en compte

    Voici le code de mes pages

    CODE
    *************** FORM.HTML ***************

    <html>

    <head>

    <title>Document sans nom</title>

    <script language="javascript">

    <!--

    function create_champ(i)

    {

    var i2 = i + 1;

    document.getElementById('input_'+i).innerHTML = '<div id="champs_'+i+'">ndc '+i+' :<input type="text" name="ndc'+i+'"></div></span>';

    document.getElementById('input_'+i).innerHTML += (i <= 10000) ? '<span id="input_'+i2+'"><input class="input2" type="button" onClick="java script:create_champ('+i2+')" value="Insérer un autre champ"></span>' : '';

    }

    -->

    </script>

    </head>

    <body>

    <form name="toto" action="insert.php" method="post">

    <input name="operator_id" type="text"/>

    <div id="champs_1">

    <div align="left"> Produit 1 :

    <input name="ndc 1" type="text"/>

    </div>

    </div>

    <div align="left"> <span id="input_2">

    <input name="button" type="button" class="input2" onClick="java script:create_champ(2)" value="Insérer un autre champ">

    </span></div>

    <input type="submit" value="submit"/>

    </form>

    </body>

    </html>

    *************** FORM.HTML ***************

    *************** INSERT.PHP ***************

    <?php

    $i = 0;

    $req = "INSERT INTO table (operator_id, ndc) VALUES";

    while ($i <= 10) {

    $operator_id = $_POST['operator_id'];

    $ndc = $_POST['ndc'.$i];

    // Construction de la requête SQL

    $req .= " ('$operator_id', '$ndc'),";

    $i++;

    }

    // Suppression de la dernière virgule de la requête construite

    $req = substr($req,0,strlen($req)-1);

    $connexion = mysql_connect("localhost","root","") or exit("Erreur 101");

    mysql_select_db( "mobtest" , $connexion) or exit("Erreur 102");

    mysql_query($req) or exit('Erreur SQL !'.$req.'<br>'.mysql_error());

    echo $req;

    mysql_close();

    ?>

    *************** INSERT.PHP ***************

    J'ai fais pas mal de recherche et pas mal de modification mais rien a faire ca ne fonctionne pas

    Si vous avez une proposition ou une piste pouvant m'aider je vous en serais très reconnaissant.

    Merci d'avance et bonne journée à tous.

  3. Je viens de regarder un peu avec cette requete mais il m'affiche une quarantaine d'opérateur qui n'ont rien avoir avec ce que je lui demande.

    Je vais regarder ca plus en profondeur ce week end et je te dirai si cela fonctionne.

    Je te remercie quand même quel que soit le résultat. ;)

  4. Bon j'ai trouvé une requête qui fonctionnait un peu mieux pour ce que je voulais.

    La requête précédente ne fonctionnant pas.

    Voici le code de ma page pour le moment :

    [b]FORMULAIRE DE RECHERCHE[/b]

    <table class="main" style="width: 100%;" cellspacing="1" cellpadding="4">
    <tr class="head">
    <td colspan="3" valign="top">
    <a href="index.php">Accueil</a> > Information for <?php echo($country); ?> 
    </td>
    </tr>
    <tr>
    <td class="con2" align="left" valign="top" colspan="2">
    <table width="100%">
    <tr>
    <td colspan="3" class="con1" align="center">
    <form name="reject" method="post" action="req_search.php">
    <table>
    <tr>
    <td>CC</td>
    <td><input type="text" name="cc" /></td>
    </tr>
    <tr>
    <td>NDC</td>
    <td><input type="text" name="ndc" /></td>
    </tr>
    <tr>
    <td colspan="2"><input name="submit" value="Submit" type="submit"></td>
    </tr>
    </table>
    </form>
    </td>
    </tr>
    </table>

    [b]PAGE DE TRAITEMENT[/b]

    <?php

    //Connexion à la DB
    include("includes/connexion.php");

    if(isset($_GET['cc'])){
    $cc=$_GET['cc'];
    }

    if(isset($_GET['ndc'])){
    $ndc=$_GET['ndc'];
    }

    $r = mysql_query("SELECT operator, operator.iso, country, country.iso FROM operator, country WHERE e164_ndc like '%$ndc%' AND country_code = '$cc' and operator.iso = country.iso;") or die ("".mysql_error());

    //$r = mysql_query ("SELECT operator FROM operator WHERE e164_ndc REGEXP '^$ndc[^0-9] ' OR e164_ndc REGEXP '[^0-9]$ndc$' OR e164_ndc REGEXP '[^0-9]$ndc[^0-9]';") or die ("".mysql_error());

    while($reject=mysql_fetch_array($r))
    {
    $iso = $reject["iso"];
    $country = $reject["country"];
    $operator = $reject["operator"];

    echo $country." ".$operator."<br>";

    }
    ?>

    J'ai un autre soucis. Pour le moment pour mes recherche j'utilise deux INPUT TEXT

    dans un form et cela fonctionne mais il faudrait que je passe par un seul INPUT.

    En gros pour le moment je découpe manuellement le nombre. Par exemple :

    32498556655

    Dans mon champs CC je met 32 et dans mon champs NDC je met 498.

    Le problème est que les personnes qui vont utilisé la base ne savent pas

    forcement où découpé.

    Par exemple :

    1306XXXXXXXXX = Canada | Rogers Wireless Inc.

    14XXXXXXXXXX = USA | Cingular Wireless.

    Donc j'aimerais faire mon formulaire de la manière suivante :

    <table class="main" style="width: 100%;" cellspacing="1" cellpadding="4">
    <tr class="head">
    <td colspan="3" valign="top">
    <a href="index.php">Accueil</a> > Information for <?php echo($country); ?> 
    </td>
    </tr>
    <tr>
    <td class="con2" align="left" valign="top" colspan="2">
    <table width="100%">
    <tr>
    <td colspan="3" class="con1" align="center">
    <form name="reject" method="post" action="req_search.php">
    <table>
    <tr>
    <td>MSISDN</td>
    <td><input type="text" name="MSISDN" /></td>
    </tr>
    <tr>
    <td colspan="2"><input name="submit" value="Submit" type="submit"></td>
    </tr>
    </table>
    </form>
    </td>
    </tr>
    </table>

    En gros faire une boucle :

    Si 'premier digit est trouvé dans la base'

    Afficher le résultat

    Sinon 'tester les deux premier digit'

    Sinon 'tester les 3 premier digit'

    Sinon 'Afficher aucune correspondance'

    Et ce test doit être fait sur le CC et sur le NDC. Sur le CC pour trouvé

    le pays et sur le NDC pour trouvé l'opérateur.

    32498XXXXXX Belgium | Mobistar

    32478XXXXXX Belgium | Proximus

    J'ai chercher du côté des REGEX, des chaines de caractère, ... Enfin je crois que j'ai fait le tour de tout

    mais je ne sais pas quelle fonction utilisé ni par où commencer

    Je m'arrache les cheveux depuis deux jours sur ce truc je vais craquer......... :(

  5. Bonjour à tous,

    Je me prends la tete pour un formulaire de recherche mais je ne trouve pas la solution.

    J'ai deux tables :

    [b]OPERATOR[/b]
    id_operator
    country_id
    operator
    ndc

    [b]COUNTRY[/b]
    id_country
    country
    cc

    Je dois faire un formulaire de recherche qui me trouve le Country et l'opérator lorsque je tape le NDC et le CC.

    Le seul problème c'est qu'il y a plusieurs donnée dans le champs ndc.

    Exemple :

    OPERATOR

    1 | MOBISTAR | 490, 491, 492, 493, 494, 495, 496, 497, 498, 499

    COUNTRY

    BEL | 1 | Belgium | 32

    Via le formulaire je dois retrouvé Belgium | Mobistar en tapant par exemple 32492.

    Là où je bloque en fait c'est comment faire ma requete mysql.

    Est ce que je créé une nouvelle table OPERATOR_COUNTRY avec les différentes info,

    ou dois je utiliser un FULLTEXT,...????? Ou puis je le faire directement via mon php???

    Je suis complètement perdu donc si quelqu'un avait un début de piste je suis entièrement

    preneur.

    D'avance merci.

  6. Merci pour ta réponse. Mais ca m'affiche la même chose.

    Le problème n'est pas la requete MySQL mais l'ordre des boucles et des conditions.

    En fait ca doit faire une truc du genre :

    Afficher une province

    Si une ville dans la province contient un partenaire.

    Enfin un truc du genre avec comme template :

    PROVINCE

    Ville

    Partenaire

    Moi il m'affiche toute les provinces et toute les villes de belgique, même celle ou il n'y a aucun partenaire... :(

    Pour l'exemple voilà ce que j'ai : http://www.ishibelgique.com/partenaire.php

    et voici ce que je voudrais : http://www.ishibelgique.com/partenaire2.php

  7. Bonjour,

    Voici mon soucis.

    J'ai 3 tables dans ma bdd.

    CODE
    Province :

    id_province

    province

    Localite :

    id_localite

    province_id

    cp

    ville

    Partenaire :

    id_partenaire

    localite_id

    nom

    adresse

    gsm

    tel

    fax

    email

    url

    J'affiche les données sur ma page partenaire, mais tout les champs apparaissent. J'aimerai afficher uniquement les provinces où il y a des localité avec un partenaire.

    Par exemple si j'ai un partenaire a bruges et un autre à liège, n'afficher que ses provinces et localité là.

    J'espère que je ne vous embrouille pas trop.

    Voici le code de ma page :

    CODE
    <?

    // Initialisation de la base de donnée

    include("include/connexion.php");

    // Affichege du Header

    include("header.php");

    $p=mysql_query("SELECT * FROM province;") or die ("".mysql_error());

    ?>

    <div id="white">

    <div id="sidebar">

    <h2>Choisissez une province : </h2>

    <ul>

    <?php

    while($data = mysql_fetch_array($p))

    {

    $province = $data['province'];

    $id_province = $data['id_province'];

    ?>

    <li><a href="#<?php echo $id_province?>">

    <?php echo $province?></a></li>

    <?php

    }

    ?>

    </ul>

    </div>

    <div id="content">

    <div class="leftColumn">

    <h2><a href="#" id="1">Nos Partenaires</a></h2>

    <table>

    <?php

    $p=mysql_query("SELECT * FROM province;") or die ("".mysql_error());

    while($data = mysql_fetch_array($p))

    {

    $province = $data['province'];

    $id_province = $data['id_province'];

    if ($p == 0){

    echo "";

    }else{

    ?>

    <tr>

    <td><h3><a href="#" id="<?php echo $id_province?>"></a><?php echo $province; ?>

    <a href="#top" id="2"><img src="images/upArrow.gif" border="0"></a></h3></td>

    </tr>

    <?php

    }

    $q=mysql_query("SELECT * FROM localite WHERE localite.province_id = '$id_province' ORDER BY ville ASC;") or die ("" .mysql_error());

    while($loc = mysql_fetch_array($q))

    {

    $id_loc = $loc['id_localite'];

    $ville = $loc['ville'];

    $cp = $loc['cp'];

    if ($q == 0){

    echo "";

    }else{

    ?>

    <tr>

    <td><h4><?php echo $cp." ".$ville; ?></h4></td>

    </tr>

    <?php

    }

    $r = mysql_query("SELECT * FROM partenaire WHERE partenaire.localite_id = '$id_loc';") or die ("" .mysql_error());

    while($part = mysql_fetch_array($r))

    {

    $partenaire = $part['nom'];

    $adresse = $part['adresse'];

    $gsm = $part['gsm'];

    $tel = $part['tel'];

    $fax = $part['fax'];

    $email = $part['email'];

    $url = $part['url'];

    if ($r == 0){

    echo "";

    }else{

    ?>

    <tr>

    <td>

    <table>

    <tr>

    <td>

    <fieldset>

    <legend>

    <?php echo $partenaire; ?>

    </legend>

    <?php echo $adresse."<br> ".$cp." ".$ville."<br>";

    echo "Téléphone : ".$tel." - Fax : ".$fax." - GSM : ".$gsm."<br>";

    echo "E-Mail : ".$email." - Site web : ".$url;?>

    </fieldset>

    </td>

    </tr>

    <tr>

    <td> </td>

    </tr>

    </table>

    </td>

    </tr>

    <?php

    }

    }

    }

    }

    ?>

    </table>

    </div>

    <div class="rightColumn">

    </div>

    <?php

    // Affichege du Footer

    include("footer.php");

    ?>

    D'avance merci ;)

×
×
  • Créer...