Rezultate 1 la 10 din 10

Subiect: Putin ajutor php-mysql

  1. #1
    Avatarul lui Paul
    Paul este deconectat Membru SeoPedia
    Reputatie:
    30
    Data înscrierii
    22nd November 2010
    Locaţie
    Timisoara
    Vârstă
    36
    Posturi
    506
    Putere Rep
    30


    Implicit Putin ajutor php-mysql

    Salutare,

    Am nevoie de putin ajutor, dau o bere rece. Caut de ceva vreme programator insa nu gasesc. Oricum task-ul prezentat e unul minor.

    $sql = "INSERT INTO `baza` (`numar`)
    VALUES ('".$ad["numar-id"]."')";


    $ad["numar-id"] genereaza mai multe numere, dar in baza de date se salveaza doar ultimul numar generat.

    1.Ar trebuii sa se salveze in baza de date toate numerele generate fiecare pe randul lui.
    2.Sa se salveze in baza de date doar numere, deci orice altceva inafara de numere sa fie exclus, numarul sa fie formatat, adica fara spatii.
    3.Sa nu se salveze in baza de date numere care contin mai mult sau mai putin de 10 cifre, sau cand nu exista valoare deloc.
    4.Sa nu se salveze in baza de date un numar ce este deja salvat.

    Mersi
    .

  2. #2
    Avatarul lui Floki
    Floki este deconectat Membru SeoPedia
    Reputatie:
    22
    Data înscrierii
    15th March 2015
    Vârstă
    56
    Posturi
    301
    Putere Rep
    22


    Implicit

    Salvezi $ad["numar-id"] intr-un array, il prelucrezi (punctele 2-3), executi un array_unique (partial 4), apoi pentru fiecare element din array cauti in baza de date (restul pentru 4) si daca nu-l gasesti il inserezi (pct 1)

  3. #3
    Avatarul lui puthre
    puthre este deconectat Ambasador
    Reputatie:
    81
    Data înscrierii
    21st February 2011
    Locaţie
    București
    Posturi
    2.154
    Putere Rep
    81


    Implicit

    Sau pentru punctul 4 pui campul ca fiind unique in db.
    Caut cu jingle.ro.

  4. #4
    Avatarul lui Floki
    Floki este deconectat Membru SeoPedia
    Reputatie:
    22
    Data înscrierii
    15th March 2015
    Vârstă
    56
    Posturi
    301
    Putere Rep
    22


    Implicit

    Am tot discutat pe privat, unul dintre noi greseste pe undeva undeva.

    Cod PHP:
    <?php
    //cam asa arata rezultatul preluat de pe alt site
    //$ad["numar-id"]="0755 065716 0744 678 069 0766 497 532 076 071 9733 0740 219 163";


    $MyArray=array();
    $Temp=array();
    $Temp=explode(" 07"$ad["numar-id"]);

    foreach (
    $Temp as $Key=>$Value){
        if(
    $Key==0){
            
    $Value=str_replace(" """$Value);
        }else{
            
    $Value="07".str_replace(" """$Value);
        }
        if(
    strlen($Value)==10 && (int)$Value==$Value){
            
    array_push($MyArray$Value);
        }
    }

    $MyArrayUnique=array_unique($MyArray);

    //print_r($MyArrayUnique);exit;

    $connection = new mysqli('localhost'$username$password$database);

    foreach (
    $MyArrayUnique as $Number) {
        
    $sql_check="SELECT id FROM table_name WHERE field_name='".$Number."' LIMIT 1";
        
    $result_check=$connection->query($sql_check);
        if(
    $result_check->num_rows==0){
            
    $sql="INSERT INTO table_name values(null, '".$Number."')";
            
    $connection->query($sql);
        }
    }

    $connection->close();
    ?>
    Eu am testat si functioneaza. Daca cineva are o solutie mai buna sau imbunatatiri, este binevenit.

    Problema este alta: modul in care sunt preluate datele. O preluare JSON/XML te scapa de multe batai de cap; sau concateneaza numerele cu un string de genul "##" pentru a putea sa le separi ulterior. In formula actuala e greu sa recuperezi numere de genul "0722 0733 xxx", "+40722 0733 xxx" si numere fixe.

  5. #5
    Avatarul lui astterx
    astterx este deconectat Membru SeoPedia
    Reputatie:
    24
    Data înscrierii
    21st May 2013
    Locaţie
    craiova
    Posturi
    128
    Putere Rep
    24


    Implicit

    problema apare la numere, insa daca cunosti formatul nu ar fi o problema.
    daca ai inclusiv cu +40 poti face un preg_replace sa scoti prefixul si eventual un str_replace(" ", "") sa scoti spatiile.
    vei obtine un sir foarte lung de numere, din care vei lua grupuri de cate 10 tinand cont ca ai eliminat prefixul tarii

  6. #6
    Avatarul lui Ciprian.Olaru
    Ciprian.Olaru este deconectat Membru SeoPedia
    Reputatie:
    0
    Data înscrierii
    6th August 2007
    Locaţie
    Bucuresti
    Posturi
    573
    Putere Rep
    0


    Implicit

    daca sunt exclusiv numere din romania.. poti incerca sa elimini spatiile (si eventual stringl "+4") si apoi sa le spargi in grupuri de cate 10 cifre. e posibil totusi sa ai erori daca siteul de unde le preiei nu face verificari de validatate (ex: daca nu vreau sa imi dau numarul real de telefon.. tastez "0000" si cele mai multe siteuri il accepta - pt ca oricum as puteasa dau unul cu format valid, dar fals).

    cea mai sigura varianta de rezolvare e sa stabilesti cu siteul sursa macar un separator mai putin comun decat spatiul, daca nu un alt format de comunicare.

  7. #7
    Avatarul lui puthre
    puthre este deconectat Ambasador
    Reputatie:
    81
    Data înscrierii
    21st February 2011
    Locaţie
    București
    Posturi
    2.154
    Putere Rep
    81


    Implicit

    Le mai poti sparge dupa spatiu si lungime minima:
    Cod:
    <?php                                                                                                                                                                                                                                                                          
    $str="0755 065716 0744 678 069 0766 497 532 076 071 9733 0740 219 163 +40720 55 22";                                                                                                                                                                                           
    $c=0;                                                                                                                                                                                                                                                                          
    for ($x=0; $x < strlen($str)-1; $x++){                                                                                                                                                                                                                                         
        if($str[$x] == ' ' && ($str[$x+1] == '0' || $str[$x+1] == '+') && $c >= 10){                                                                                                                                                                                               
            $str[$x] = '$';                                                                                                                                                                                                                                                        
            $c = 0;                                                                                                                                                                                                                                                                
        } else {                                                                                                                                                                                                                                                                   
            $c++;                                                                                                                                                                                                                                                                  
        }                                                                                                                                                                                                                                                                          
    }                                                                                                                                                                                                                                                                              
    $str = preg_replace('/\s+/', '', $str);                                                                                                                                                                                                                                        
    var_dump(explode('$',$str));
    Dupa executie:
    Cod:
    array(6) {
      [0]=>
      string(10) "0755065716"
      [1]=>
      string(10) "0744678069"
      [2]=>
      string(10) "0766497532"
      [3]=>
      string(10) "0760719733"
      [4]=>
      string(10) "0740219163"
      [5]=>
      string(10) "+407205522"
    }
    Caut cu jingle.ro.

  8. #8
    Avatarul lui astterx
    astterx este deconectat Membru SeoPedia
    Reputatie:
    24
    Data înscrierii
    21st May 2013
    Locaţie
    craiova
    Posturi
    128
    Putere Rep
    24


    Implicit

    Citat Postat în original de puthre Vezi Post
    Le mai poti sparge dupa spatiu si lungime minima:
    Cod:
    .......
      [5]=>
      string(10) "+407205522"
    }
    problema apare la prefix, 9 cifre si "+" in exemplu dat de puthre

  9. #9
    Avatarul lui puthre
    puthre este deconectat Ambasador
    Reputatie:
    81
    Data înscrierii
    21st February 2011
    Locaţie
    București
    Posturi
    2.154
    Putere Rep
    81


    Implicit

    Citat Postat în original de astterx Vezi Post
    problema apare la prefix, 9 cifre si "+" in exemplu dat de puthre
    Ce problema?
    Caut cu jingle.ro.

  10. #10
    Avatarul lui astterx
    astterx este deconectat Membru SeoPedia
    Reputatie:
    24
    Data înscrierii
    21st May 2013
    Locaţie
    craiova
    Posturi
    128
    Putere Rep
    24


    1 out of 1 members found this post helpful.

    Implicit

    Citat Postat în original de puthre Vezi Post
    Ce problema?
    am gresit eu, codul este ok, problema cifrei lipsa era din cauza stringului $str="0755 065716 0744 678 069 0766 497 532 076 071 9733 0740 219 163 +40720 55 22";

Informații subiect

Utilizatori care navighează în acest subiect

Momentan este/sunt 1 utilizator(i) care navighează în acest subiect. (0 membrii și 1 vizitatori)

Thread-uri Similare

  1. Putin ajutor va rog
    De beke în forumul Server side
    Răspunsuri: 0
    Ultimul Post: 5th June 2013, 22:20
  2. Putin ajutor in php !
    De Paul în forumul Server side
    Răspunsuri: 10
    Ultimul Post: 27th March 2012, 15:27
  3. Putin ajutor
    De piciu1993 în forumul Client side
    Răspunsuri: 2
    Ultimul Post: 10th August 2011, 23:22
  4. Putin ajutor
    De Nica Cristian în forumul Bar, lobby...
    Răspunsuri: 5
    Ultimul Post: 1st December 2008, 11:13

Permisiuni postare

  • Nu puteţi posta subiecte noi.
  • Nu puteţi răspunde la subiecte
  • Nu puteţi adăuga ataşamente
  • Nu puteţi modifica posturile proprii
  •