Jump to content
php.lv forumi

JOJOManLV

Reģistrētie lietotāji
  • Posts

    19
  • Joined

  • Last visited

Posts posted by JOJOManLV

  1. function optionlistBuild($root, $level){
            global $con_link;
            $query = mysqli_query($con_link, "SELECT * FROM `pages_new` WHERE `master` = '$root'")or die(mysqli_error($con_link));
            $kaja = "";
    
            while($data = mysqli_fetch_assoc($query)){
    
                $a = array_fill(1, $level, '  ');
    
                $kaja .= "<option value='".$data['id']."'>".implode('',$a).'|-'.$data['name']."</option>";
                $kaja .= $this->optionlistBuild($data['id'], $level+1);
            }
    
            return $kaja;
        }
    

    un izsauc:

    optionlistBuild('0', 1);
    

     Nostrādāja gandrīz ideāli, nedaudz pielaboju un sanāca tas ko man vajaga. Protams nav tas pat optimālakāis variants, bet manam mērķim būs pietiekami.

  2. >nevēlos katrā funkcijā veidot ekstra parametru, vienkārši lai paodotu datus

    Slikti, ka nevēlies, jo tas ir pareizais risinājums. Ja funkcijai vajag kaut kādus datus, tos jāpadod vai nu caur parametriem, vai, ja tā ir objekta metode, tad vēl objekta konstruktorā vai setteros var. Bet ar globālajiem PHP ir baigās auzas un man pa 5+ gadiem reāli vēl nav nācies sastapties ar kodu, kurā globāli variabļi tiešām būtu labākais variants.

     

    Es nestrīdos, itkā kādu laiciņu tā darīju taču likās galīgi nepareizi, ka katrā funkcijā kurā nepieciešamība pēc pieslēgšanās DB es uz funkciju padodu ne tikai datus bet arī mana variantā $con_link.

     

    Bet vai tiešām tas es savu konekciju ar DB veidoju pareizi? Vai nevajag viņu veidot sāvādāk, varbūt ir kādas idejas kā aptuveni tas varētu izskatīties?

     

    jo man ir config failā

    <?php
    $db_host = "localhost";
    $db_user = "user";
    $db_pass = "pass";
    $db_table = "db";
    
    $con_link = mysqli_connect($db_host, $db_user, $db_pass, $db_table);
    mysqli_set_charset($con_link, "utf8");
    
    include("function.php");
    
    ?>
    
    

    Attiecīgi zem viņa inkludoju function failu.

     

    Līdz šim itkā funkcijās ar tiem GLOBAL liku un nav problēmas piekļūt mainīgajam.

    un ķipa ja man ir funkcija

    adddatatoDB($datikasietuzdb){
       global $con_link;
       // daram velkl kaut ko
       $query = mysqli_query($con_link, "INSERT Blabla'")or die(mysqli_error($con_link));
    }

    Kā jau redzējāt augšējā piemērā kā to daru..

     

    Tad laikam pareizāk būtu šādi ja?

    adddatatoDB($con_link, $datikasietuzdb){
       // daram velkl kaut ko
       $query = mysqli_query($con_link, "INSERT Blabla'")or die(mysqli_error($con_link));
    }
    

    Tāpēc jau esmu šeit lai no pieredzējušajiem mācītos kā tad ir pareizāk.

     

    Laikam lieki piebilst ka neizmantoju OOP kas laikam ir slikti. Bet pirms tā riktīgi ķerties pie OOP gribēju ar pamatiem tikt galā.

  3. Pēc mana uzskata, tava ideja par funkcija izveidošanu nav pareiza. Kur nu vel global izmantošana.

     

    Izveido multi dimensiālu array pirms funkcijas un pašā funkcija apstrādā, tikai array. Nevis veido MySql izsaukumus. Tādā veidā funkcijai būs lielāks pielietojums un nebūs jāuztraucas, vai pie funkcijas izsaukšanas MySql ir pieslēdzies.

     Da labi? Es jau gan tikai mācos, bet tu jau mani biedē... :D

     

    Global izmantoju jo neiznu normālāku veidu kā padod datus uz funkciju prieks queryija.(nevēlos katrā funkcijā veidot ekstra parametru, vienkārši lai paodotu datus), Kā tad īsti sanāk pareizi? Jo dati par SQL tiek galbāti atsevišķā failā... Idejsiki ir config.php kurā inkluudoju function.php Un tad attiecīgi visu kur vajaga inkluudoju tikai config.php

     

    Un kas vainas manai ideja par funkciju?

  4. Sveiki.

    Gribējos painteresēties pie masteriem par šo lietu ko ierakstīju tēmas nosaukumā.

     

    Palielam eošais kods izskatās šādi.

    function optionlistBuild($root, $add){
    	global $con_link;
    	$query = mysqli_query($con_link, "SELECT * FROM `pages_new` WHERE `master` = '$root'")or die(mysqli_error($con_link));
    	$kaja = "";
    	if(($root == '0') && ($add == '0')){
    		while($data = mysqli_fetch_assoc($query)){
    			$kaja .= "<option value='".$data['id']."'>".$data['name']."</option>";
    			$kaja .= optionlistBuild($data['id']);
    		}
    	}
    	if($root !== '0'){
    		if($add == '1'){
    			while($data = mysqli_fetch_assoc($query)){
    				$kaja .= "<option value='".$data['id']."'>   |-- ".$data['name']."</option>";
    			}
    		}else{
    			while($data = mysqli_fetch_assoc($query)){
    				$kaja .= "<option value='".$data['id']."'> |- ".$data['name'];
    				$kaja .= "</option>".optionlistBuild($data['id'], '1');
    			}
    		}
    		
    	}
    	return $kaja;
    }
    

    un ārā sanāk kaut kas šāds

     

    protams attiecīgi funkcija izvādās iekš <select></select>

     

    xbehc08gtrgk36tarz.png

    Manu problēmu padara sarežģitu iemesls ka vajadzīgs reszultāts iekš <select> tagiem attiecīgi kā redzams lai var atšķirt apakšlīmeņus.

     

    Taču īsti kaut kā neliekas pareizi, jo īstenībā vēlos ar bezgalīgu iespēju attēlot rezultātus.

    Šīnī brīdi ir tikai 3 līmeņi

    Un vai iespējams rezultātu izdot no funkcijas vienā lielā masīvā? Ar domu ka šajā funkcijā nav nekādu HTML formatējumu un attiecīgi es viņu varu pielāgot gan <select> tagiem, gan lapas navigācija iekš meņu.

     

    Ja kādam ir kāds savādāks paņēmiens droši padalās idejās.

     

    Paldies.

     

  5. Nu bet loģiski, jo ar "RewriteRule ^(.*)$ index.php?page=$1 [L]" tu par vienīgo GET parametru uzstrādi to kluci, kas seko pēc domēna, vai tur "home/2", vai "home/shit/blah/lol/fail".

     

    Pareizi ir darīt tā, ka tu no tā "home/2" izpīpē, kas tur par parametriem ir domāts.

    Principā tālāk strādājot ar explode vai kas nu man labāk patīk es atdalu tos slashu(/) vai ja kkas cits tad kko citu un tālāk apstrādāju ja?

     

    labi bet tagad izveidoju itā te

     

    <IfModule mod_rewrite.c>
        RewriteEngine On
    
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
    
        RewriteRule ^([^/]*)$ index.php?page=$1 [L]
        RewriteRule ^([^/]*)/(.*)$ index.php?page=$1&step=$2 [L]
    
    </IfModule>
    
    
    

    bet te es iegūsti ar $_get visus mainīgos ko man vjaag? ka ir labāk? ar $_get vai tomēr tā kā sākumā?

  6. <a href="/home">Sākums</a>

    <a href="/registration">Reģistrācija</a>

    <a href="/registration">step 2</a>

    <a href="/home/2">step 2</a>

    Nenormāls paldies.... :) nostrādāja

     

    bet tagad es ar $_get['step'] nevaru iegut vērtību; viņas vienkārši nav... at page vērtība ir home/2

  7. Tātad joks novecojis un aktuāls man... tātad vecais labais paņēmiens ar cilvēkiem salasāmajiem linkiem

     

     

    mans .htaccess fails

     

    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^(.*)$ index.php?page=$1 [L]
        RewriteRule ^(.*)/(.*)$ index.php?page=$1&step=$2 [L]
    </IfModule>
    
    <Files .htaccess>
    order allow,deny
    deny from all
    </Files>
     

    Tālāk mans index fails

    <!DOCTYPE html>
        <html>
            <head>
                <title></title>
                <meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
                <link rel="StyleSheet" type="text/css" href="style.css" /> 
            </head>
            <body>
                <div id="header">portāls</div>
                <div id="container">
                    <div id="left">
                        
                    </div>
                    <div id="right">
                           <div id="nav">
                            <a href="home">Sākums</a>
                            <a href="registration">Reģistrācija</a>
                            <a href="registration">step 2</a>
                            <a href="home/2">step 2</a>
                            </div>
                        <div id="lapa">
                            <?php
                                print_r(explode('/',$_GET['page']));
                            ?>
                            <?php
                                @$links = $_GET['page'];
                                if($links == "home"){
                                    include('pages/sakums.php');
                                }elseif($links == "registration"){
                                    include('pages/register.php');
                                }else{
                                    include('pages/sakums.php');
                                }
                            ?>
                        </div>
                    </div>
                </div>
                <div id="footer">Apakša</div>
            </body>
        </html>
    

    Kā jau redzma drošvien bardaks :D

     

    Bet lieta tāda: kamēr links ir ar vienu mainīgo <a href="home">Sākums</a> vis strādā ok bet tiko ir <a href="home/2">step 2</a> tad urla sak dublēties home mainigais un beigās reuzltāts sanāk /home/home/home/2 atkarigs no tā cik aktīvi spied linku ti reizes rādās...

     

    Kur ir problēma? mēģināju arī citus paņēmienus visur atduros pret to ka sāk dublēties...
     

  8. Palasi, ko dara tā funkcija un padomā līdzi: http://php.net/manua...tmlentities.php

     

    Ieteikums: ieraksti google "php sql injections"

     

    nu okej... ar sql nedaduz pāršāvu pār strīpu...(bet tas nebija domāts kā vienīgais, es viņu lietoju kā papildus fīču lai palielinātu drošību)

    bet īsti neibraucu ko tu vēlies pateikt? nu viņš konvertē html simbolus šitādos šitādos te &... kodos(neiznu kā tos sauc)

  9. tākā man bija mysqli aizmirsu izdarīt vienu lietu(šito gēlu apgūsti tikai)

    mysqli_query($sql, "set names utf8");

    viss nsotrādāja, bet ar htmlentitites kopā nevar likt savadāk nestrāda tad ir ķeburi ;)

  10. humora pēc pirms insert vaicājuma izpildi kodā SET NAMES UTF8 vaicājumu

     

    šitā te domā mysql_query("set names utf8");

    tas jau ira... bet man insert daļa ir ar mysqli_query.... var pirmstam rakstīt ar mysql_query("set names utf8");

     

     

    Nekas nemainās...

     

     

     

    Em noņēmu nost to htmlentitites... db vairs neparādās ar tim & bet ķeburi paliek?

  11. Nenāk... Joprojām db ir šitie te &... pievienoju caur skriptu... kad peievino caur phpmyadmin tad garumzīmes datubāzē ir mājaslpā vis ok... bet caur skriptu iet ar tiem keburiem... vaina skriptā ne? a moš tas tāpēc ka eju ar mysqli_connect ?

  12. Augējei keburi ir mājaslapā un apakšejie ir db

    hen02kvk4m44l5i9po7.jpg

    un savienojums ar db

    $con = mysql_connect('localhost', 'roo', 'root');

    if (!$con)

    {

    die('Nevar savienoties ar db: ' . mysql_error());

    }

    mysql_select_db("noliktava", $con);

    mysqli_query("set names utf8");

    $result = mysql_query("SELECT * FROM preces WHERE app = 'app'");

    while($row = mysql_fetch_array($result))

  13. Nu kā man ir php skripts kas vienkāŗši ievada datus datubāzē....

    Visai datubāzes tabulai uzstādīts collation utf8_general_ci arī visām rindiņām tas pats... php kodā pirms visiem query ir mysql_query("SET NAMES UTF8 COLLATE utf8_general_ci"); nekas nesanāk... datubā parādās Å¡kodÄ un arī pie izcades ir tas mysql_query("SET NAMES UTF8 COLLATE utf8_general_ci");

     

    bet mājaslapā tik un tā parādās ķeburi...

    Skatos uz šo itkā tas latina1 nepatīk... bet to es nepsēju mainit... :) vai vismaz nemāku...

    vfkzda7ywi0io1fqnug0.jpg

  14. Gribēju zināt...

    1.kārt...

    kādā kodējumā jāveido db lai varētu izvadīt garumzīmes? kurš būtu viss piemērotākais kodējums?

    2.kārt...

    kas jānorāda (php kodā) lai garumzīmes darbotos skaisti...?

     

    (pirms ko pārmetat, izpetīju jau tās tēmas kas šeit ir... bet problēmu neatrisināju) tāpēc izdomāj ka jākēras tam visam no paša sākuma...

    Tātad... kā būtu jāveido datubāže lai no turienes varētu izvadīt tekstu ar garumzīmēm?....

    Paldies ;)

×
×
  • Create New...