ArisC miniblogs

  • ArisC
    0

    Man atkal vajag palīdzību !!!

    https://i.gyazo.com/29a5a364520ce5fa1d28d85a3ae54069.png

    Man nepieciešams, lai no tabulas tiek saskaitīti visi (rpenaltys) pret vienu team (PHI).
    Iznākumam ir jāsanāk = 6
    P.S vajag,lai arī tiek skaitīts klāt, automātiski, kad pievieno klāt vel.

  • ArisC
    0

    Function getLocation($loc, $id, $seostring)
    {
    switch($loc)
    {
    case 'user':
    $loca = "skatās lietotāja kontu";
    break;
    case 'account':
    $loca = "Labo savu profilu";
    break;
    case 'news_view':
    $loca = "lasa jaunumus";
    break;
    default:
    $loca = "nedarīja neko";
    break;
    }
    return $loca;
    }
    Kāpēc es nevaru dabūt laukā $seostring ?

    • ArisC
      0

      Kā tad tiek izvilkts $id ?

      • mad
        0

        Nu tur acīmredzami netiek izmantots ne id, ne seostring.

    • conux
      0

      Tavā iedotajā kodā $id netiek atgriezts.

  • ArisC
    +1

    Nevaru iebraukt kā to dabūt gatavu.
    Tātad man datubāzē ir savadīti dati. Spēlētāja vārds atkārtojas vairākās ailēs un katru reizi ar citiem datiem, man vajag lai viņu izvelk tikai vienu reizi un ar saskaitītiem datiem kopā.

    $res = mysql::query( 1 , "SELECT added, player_name, id, goal, asst FROM league_nhl_playerstats WHERE added >= '1461610032' GROUP BY player_name ORDER BY goal + asst DESC ");

    • mad
    • ArisC
      0

      Ar SUM() saskaitīs tikai punktus un vārdu izvilks vairākas reizes, bet man vajag, lai vienu vārdu izvelk vienu reizi un saskaita viņam punktus

      • ArisC
        0

        Un lai pirmo izvelk to, kuram ir vairāk punkti

  • ArisC
    0

    Ar kādu funkciju varēja saīsināt tekstu, tā lai pirmais vārds ir pilns un pēc atstarpes ir tikai viens burts. Piemēram Andris Plūme. Un redzams tikai Andris P.

    • Fukzzs
      +2
      <?php
      $vards = 'Andris Berzins';
      $pos = stripos($vards, ' ');
      echo substr($vards, 0, $pos + 2).'.';
      ?>
      • ArisC
        0

        Liels paldies !

  • ArisC
    0

    Varbūt kās zin kas par problēmu, ka no datubāzes neizvelkt garumzīmes ? Eksportējot un uzliekot datubazes datus uz localhost viss iet, bet kad uzlieku uz hosta, tad garumzīmes neradas.

    • alberts00
      0

      Kā tu liec datubāzi uz hosta? Kāds tur ir coolation un kāds ir lokāli?

    • ArisC
      0

      MySQL connection collation latin1_swedish_ci. man ir paņemts itap hostings

      • Dawgora
        0

        Tev localhost ir utf8_general_ci vai kaut kas tamlīdzīgs, vai ne?

  • ArisC
    0

    Es no datubāzes izvelk skaitļus pēc šī koda

    $monit_res = mysql_query("SELECT * FROM `tabula` WHERE admin >'0' ", $MySQLConn);
    while ($monit_admins = mysql_fetch_assoc($monit_res))
    {

    echo''. $monit_admins['id'] . ' ';
    }

    viņš man izvelk skaitļus : 357785132
    Bet man tiem skaitļiem vajadzīga atstarpe pēc katra izviltā skaitļ, bet tā lai es varētu tos lietot pie WHERE

    $monit_res1 = mysql_query("SELECT * FROM `tabula` WHERE account ='Te tie skaitļi kurus izvelk' ", $MySQLConn);

    • ArisC
      0

      @mad vabūt tu zini....

    • Kristiāns S
      0

      Ikdienišķais atgādinājums nelietot mysql_query


      "WHERE account =" vietā var izmantot "WHERE account IN (id, id, id)"

      SELECT * FROM `tabula` WHERE account IN (3,5,7,7,8,5,1,3,2)

      uztaisi arrayu ārpus while loopa un pašā loopā saliec tur tos id kurus tev vajag

      $arr = [];

      while ($monit_admins = mysql_fetch_assoc($monit_res))
      {
      $id = $monit_admins['id'];
      array_push($arr, $id);
      echo''. $id . ' ';
      //....
      }

      //$arr => [3, 5, 7, 7, 8, 5, 1, 3, 2]

      vari viņus salikt kopār ar izmantojot implode

      $prep = implode(',', $arr);
      //$prep => "3,5,7,7,8,5,1,3,2"

      Vienīgi pēc tava iedotā "357785132" nevar saprast kur ir katra skaitļa robeža, savādāk kaut kā neloģiski, ka ir divi lietotāji ar id 3 un 7.

      Laikam biji domājis 35, 77, 85, 132

      • mad
        0

        Ja es pareizi saprotu, ko tu mēģini izdarīt, tad tur visīsāk un efektīvāk būtu vispār neiesaistīt PHP.

        Tos datus no otrās tabulas var atlasīt vienā DB pieprasījumā vai nu ar subkveriju:

        SELECT * FROM `tabula2` WHERE `account` IN(SELECT `id` FROM `tabula1` WHERE `admin` > 0)

        Vai arī JOINu:

        SELECT `tabula2`.* FROM `tabula2` INNER JOIN `tabula` ON `tabula`.`id` = `tabula2`.`account` AND `tabula`.`admin` > 0

         

        Lietot JOINus būtu ieteicamāk, jo tad tiek pilnvērtīgi izmantoti indeksi, ja tādi ir izveidoti. Savukārt IN() ar daudziem parametriem indeksus nemāk lietot un pie lielāka datu daudzuma paliks lēns.
        Bet rezultātu ziņā abi konkrētie pieprasījumi atgriezīs vienu un to pašu.

    1 - 2 -

    Atpakaļ Uz augšu