Jump to content

Ninjonik

Uživatel
  • Příspěvků

    198
  • Registrován

  • Aktivní

  • Vítězných dnů

    1

Příspěvky posted by Ninjonik

  1. On 15. 7. 2021 at 16:03, mxco said:

    Spojení array pomocí $arr + $arr nepočítá se rekurzivitou, jinak by to šlo.

    Spojení pomocí array_merge_recursive funguje pouze v případě, pokud máš non-numeric keys.

    https://www.php.net/manual/en/function.array-merge-recursive.php

    Tudíž nejjednodušší řešení by bylo buď indexovat array stringem třeba jako: 'primarní klíč' => [...]

    nebo na netu sehnat nějaký snippet (nebo si vytvořit), který by tento merge s numerickejma klíčema zvládl.

    Příklad řešení:

    
    $arr1 = [
    	['id' => 1],
    	['id' => 2],
    ];
    $arr2 = [
    	['cat_id' => 3],
    	['cat_id' => 4],
    ];
    $arr3 = [
    	['usr_id' => 5],
    	['usr_id' => 6],
    ];
    
    $arrFinal = array_merge_recursive($arr1, $arr2, $arr3);
    var_dump($arrFinal);
    
    OUTPUT - pouze append:
    array(6) { [0]=> array(1) { ["id"]=> int(1) } [1]=> array(1) { ["id"]=> int(2) } [2]=> array(1) { ["cat_id"]=> int(3) } [3]=> array(1) { ["cat_id"]=> int(4) } [4]=> array(1) { ["usr_id"]=> int(5) } [5]=> array(1) { ["usr_id"]=> int(6) } } 
    
    $arr1 = [
    	'i1' => ['id' => 1],
    	'i1' => ['id' => 2],
    ];
    $arr2 = [
    	'i1' => ['cat_id' => 3],
    	'i2' => ['cat_id' => 4],
    ];
    $arr3 = [
    	'i1' => ['usr_id' => 5],
    	'i2' => ['usr_id' => 6],
    ];
    
    $arrFinal = array_merge_recursive($arr1, $arr2, $arr3);
    var_dump($arrFinal);
    
    OUTPUT - merge:
    array(2) { ["i1"]=> array(3) { ["id"]=> int(2) ["cat_id"]=> int(3) ["usr_id"]=> int(5) } ["i2"]=> array(2) { ["cat_id"]=> int(4) ["usr_id"]=> int(6) } } 

     

    Ďakujem za pomoc, snáď to niekedy využijem, ale medzi tým som ešte hľadal aj iné spôsoby ako by sa to dalo spraviť a prišiel som na to, že mi stačí všetky moje SQL podnety len dať do jedného:
     

    SELECT
        P.id,
        P.title,
        P.text,
        P.editdate,
        P.background,
        C.name,
        M.username,
        M.avatar
    FROM
        posts AS P
    INNER JOIN categories AS C
    ON
        C.catID = P.sectionID
    INNER JOIN members AS M
    ON
        M.memberID = P.authorID
    WHERE P.id=1

    Ak by sa to ešte niekomu hodilo, tak to tu priložím.

  2. Zdravím,
    pokúšam sa spojiť 3 arraye do jedného no žiaľ z nejakého dôvodu sa po spojení týchto arrayov (3 arrayov) zostanú údaje iba z toho prvého arraya a tie ostatné nič, ako by som ich vôbec ani nespájal.
    Zaujímalo by ma, že prečo to robí a ako to opraviť, keďže túto istú funkciu PHP využívam aj inde a tam spájanie arrayov normálne funguje.
    Skúšal som aj funkcie array_merge(), array_merge_recursive(), ale nič z toho nefunguje ako má.

    Ja vlastne mám 3 arraye, ktoré potrebujem spojiť do jedného, pretože každý z tých arrayov obsahuje niečo, čo potrebujem mať vo finálnom arrayi.

    Pošlem rovno celý kód, keby sa náhodou hodil.
     

    	$stmt25 = $db->prepare("SELECT * FROM posts WHERE sectionID=:sectionID ORDER BY id DESC");
    	$stmt25->execute(array(":sectionID" => $row["sectionID"]));
    	$row25 = $stmt25->fetch(PDO::FETCH_ASSOC);
    
    	if (!$stmt25->execute())
    	{
    	  print_r($stmt25->errorInfo());
    	}
    
    	while ($row25 = $stmt25->fetch(PDO::FETCH_ASSOC))
    	{
    		$rowfirst[] = $row25;
    
    		//
    
    		$stmt255 = $db->prepare("SELECT * FROM categories WHERE catID=:catID");
    		$stmt255->execute(array(":catID" => $row25["sectionID"]));
    		$row255 = $stmt255->fetch(PDO::FETCH_ASSOC);
    
    		if (!$stmt255->execute())
    		{
    			print_r($stmt255->errorInfo());
    		}
    
    		while ($row255 = $stmt255->fetch(PDO::FETCH_ASSOC))
    		{
    			$rowsecond[] = $row255;
    
    			//
    
    			$stmt2556 = $db->prepare("SELECT username, avatar FROM members WHERE memberID=:memberID");
    			$stmt2556->execute(array(":memberID" => $row25["authorID"]));
    			$row2556 = $stmt2556->fetch(PDO::FETCH_ASSOC);
    
    			if (!$stmt2556->execute())
    			{
    				print_r($stmt2556->errorInfo());
    			}
    
    			while ($row2556 = $stmt2556->fetch(PDO::FETCH_ASSOC))
    			{
    				$rowthird[] = $row2556;
    			}
    
    			//
    
    		}
    
    		//
    
    	}
    
    	$rowfinal23 = $rowfirst + $rowsecond + $rowthird;

    No a po dumpnutí tohto arrayu to vyzerá takto:
     

     array(5) {
      [0]=>
      array(10) {
        ["id"]=>
        int(6)
        ["title"]=>
        string(6) "Post 6"
        ["authorID"]=>
        int(9)
        ["sectionID"]=>
        int(1)
        ["text"]=>
        string(25) "<p>Post 6 Description</p>"
        ["date"]=>
        int(1625851255)
        ["editdate"]=>
        int(1625851255)
        ["isallowed"]=>
        int(0)
        ["isuser"]=>
        int(1)
        ["background"]=>
        string(14) "1625851255.jpg"
      }
      [1]=>
      array(10) {
        ["id"]=>
        int(5)
        ["title"]=>
        string(6) "Post 5"
        ["authorID"]=>
        int(9)
        ["sectionID"]=>
        int(1)
        ["text"]=>
        string(25) "<p>Post 5 Description</p>"
        ["date"]=>
        int(1625849226)
        ["editdate"]=>
        int(1625849226)
        ["isallowed"]=>
        int(0)
        ["isuser"]=>
        int(1)
        ["background"]=>
        string(14) "1625851255.jpg"
      }
      [2]=>
      array(10) {
        ["id"]=>
        int(4)
        ["title"]=>
        string(6) "Post 4"
        ["authorID"]=>
        int(9)
        ["sectionID"]=>
        int(1)
        ["text"]=>
        string(25) "<p>Post 4 Description</p>"
        ["date"]=>
        int(1625769722)
        ["editdate"]=>
        int(1625769722)
        ["isallowed"]=>
        int(0)
        ["isuser"]=>
        int(1)
        ["background"]=>
        string(14) "1625769723.jpg"
      }
      [3]=>
      array(10) {
        ["id"]=>
        int(3)
        ["title"]=>
        string(6) "Post 3"
        ["authorID"]=>
        int(9)
        ["sectionID"]=>
        int(1)
        ["text"]=>
        string(25) "<p>Post 3 Description</p>"
        ["date"]=>
        int(1625684695)
        ["editdate"]=>
        int(1625684695)
        ["isallowed"]=>
        int(0)
        ["isuser"]=>
        int(1)
        ["background"]=>
        string(14) "1625851255.jpg"
      }
      [4]=>
      array(10) {
        ["id"]=>
        int(1)
        ["title"]=>
        string(6) "Post 1"
        ["authorID"]=>
        int(9)
        ["sectionID"]=>
        int(1)
        ["text"]=>
        string(25) "<p>Post 1 Description</p>"
        ["date"]=>
        int(1625498415)
        ["editdate"]=>
        int(1625498415)
        ["isallowed"]=>
        int(0)
        ["isuser"]=>
        int(0)
        ["background"]=>
        string(14) "1625851255.jpg"
      }
    }

    Takto vyzerá $rowfirst array:
     

                                      array(5) {
      [0]=>
      array(10) {
        ["id"]=>
        int(6)
        ["title"]=>
        string(6) "Post 6"
        ["authorID"]=>
        int(9)
        ["sectionID"]=>
        int(1)
        ["text"]=>
        string(25) "<p>Post 6 Description</p>"
        ["date"]=>
        int(1625851255)
        ["editdate"]=>
        int(1625851255)
        ["isallowed"]=>
        int(0)
        ["isuser"]=>
        int(1)
        ["background"]=>
        string(14) "1625851255.jpg"
      }
      [1]=>
      array(10) {
        ["id"]=>
        int(5)
        ["title"]=>
        string(6) "Post 5"
        ["authorID"]=>
        int(9)
        ["sectionID"]=>
        int(1)
        ["text"]=>
        string(25) "<p>Post 5 Description</p>"
        ["date"]=>
        int(1625849226)
        ["editdate"]=>
        int(1625849226)
        ["isallowed"]=>
        int(0)
        ["isuser"]=>
        int(1)
        ["background"]=>
        string(14) "1625851255.jpg"
      }
      [2]=>
      array(10) {
        ["id"]=>
        int(4)
        ["title"]=>
        string(6) "Post 4"
        ["authorID"]=>
        int(9)
        ["sectionID"]=>
        int(1)
        ["text"]=>
        string(25) "<p>Post 4 Description</p>"
        ["date"]=>
        int(1625769722)
        ["editdate"]=>
        int(1625769722)
        ["isallowed"]=>
        int(0)
        ["isuser"]=>
        int(1)
        ["background"]=>
        string(14) "1625769723.jpg"
      }
      [3]=>
      array(10) {
        ["id"]=>
        int(3)
        ["title"]=>
        string(6) "Post 3"
        ["authorID"]=>
        int(9)
        ["sectionID"]=>
        int(1)
        ["text"]=>
        string(25) "<p>Post 3 Description</p>"
        ["date"]=>
        int(1625684695)
        ["editdate"]=>
        int(1625684695)
        ["isallowed"]=>
        int(0)
        ["isuser"]=>
        int(1)
        ["background"]=>
        string(14) "1625851255.jpg"
      }
      [4]=>
      array(10) {
        ["id"]=>
        int(1)
        ["title"]=>
        string(6) "Post 1"
        ["authorID"]=>
        int(9)
        ["sectionID"]=>
        int(1)
        ["text"]=>
        string(25) "<p>Post 1 Description</p>"
        ["date"]=>
        int(1625498415)
        ["editdate"]=>
        int(1625498415)
        ["isallowed"]=>
        int(0)
        ["isuser"]=>
        int(0)
        ["background"]=>
        string(14) "1625851255.jpg"
      }
    }

    $rowsecond array:
     

    array(5) {
      [0]=>
      array(2) {
        ["catID"]=>
        int(1)
        ["name"]=>
        string(10) "Category 1"
      }
      [1]=>
      array(2) {
        ["catID"]=>
        int(1)
        ["name"]=>
        string(10) "Category 1"
      }
      [2]=>
      array(2) {
        ["catID"]=>
        int(1)
        ["name"]=>
        string(10) "Category 1"
      }
      [3]=>
      array(2) {
        ["catID"]=>
        int(1)
        ["name"]=>
        string(10) "Category 1"
      }
      [4]=>
      array(2) {
        ["catID"]=>
        int(1)
        ["name"]=>
        string(10) "Category 1"
      }
    }

    no a $rowthird:
     

    array(5) {
      [0]=>
      array(2) {
        ["username"]=>
        string(11) "NinjonikSVK"
        ["avatar"]=>
        string(14) "1612860711.png"
      }
      [1]=>
      array(2) {
        ["username"]=>
        string(11) "NinjonikSVK"
        ["avatar"]=>
        string(14) "1612860711.png"
      }
      [2]=>
      array(2) {
        ["username"]=>
        string(11) "NinjonikSVK"
        ["avatar"]=>
        string(14) "1612860711.png"
      }
      [3]=>
      array(2) {
        ["username"]=>
        string(11) "NinjonikSVK"
        ["avatar"]=>
        string(14) "1612860711.png"
      }
      [4]=>
      array(2) {
        ["username"]=>
        string(11) "NinjonikSVK"
        ["avatar"]=>
        string(14) "1612860711.png"
      }
    }

    Ako som písal, nemám ani poňatia, že prečo to nefunguje a nepodarilo sa mi nájsť odpoveď ani na iných fórach, tak preto to skúsim tu.
    Predom za pomoc ďakujem.

  3. před 12 hodinami, Ingnition said:

    Mě napadá jediný důvod, proč by možná někdo chtěl do toho investovat a mít tak ony výhody a vedení. Může se to hodit člověku, který rád hraje MC ale neumí vytvářet server a vše okolo, ale chce být v nějakém projektu ten BOSS. To je jediný důvod, co si dovedu představit že by to člověku něco dalo. Jinak jsou to vyhozené peníze. :kappa:

    Ja som chcel poukázať na to, že keby ten človek si šetril tých 500-1000kč niekoľko mesiacov, tak by si vedel zaplatiť ľudí, čo by mu ten server urobili.

  4. Myslím si, že keby niekto chcel mesačne doslova "vyhadzovať" 500-1000kč, tak by si radšej nejakú dobu šetril a potom založil vlastný server.

    Aký je dôvod, aby niekto investoval do vašeho serveru?
    Čo z toho má? Predsa len to, že má prefix vedení a absolútne výhody na serveru, to sa mu naozaj viac vyplatí si založiť vlastný server.

    Som zvedavý, aký dôvod mi tu napíšeš.

    • Líbí se mi to! (+1) 2
  5. před 3 minutami, Fakerko_ said:

    Tak zkus curl();

    Je možné, že nemáš v php.ini povolený file_get_contents();

     

    
    <?php
    
    const URL = "http://igportals.eu/api/cfg.php";
    
    $request = curl_init();
    
    curl_setopt($request, CURLOPT_URL, URL);
    curl_setopt($request, CURLOPT_RETURNTRANSFER, 1);
    
    $result = curl_exec($request);
    
    echo($result);
    
    curl_close($request);
    
    ?>

     

    práveže k tomuto sa viem dostať aj pomocou file_get_contents, lenže ja nepotrebujem vypísať celé to API, ale potrebujem napísať napr. iba email čiste.
    Pretože ja vlastne chcem vybrať na webu 1 z db nejaký údaj, ten encodnúť a na webu 2 to decodnúť a ten údaj z db tam vypísať.

  6. Ahoj, pokúšam sa na jednej stránke encódovať určité údaje z MySQL a potom ich na inej stránke znovu decodnúť a vypísať.
    Zatiaľ to teda mám v jednom priečinku, aby som zistil, že či to vôbec funguje.

    No ale nefunguje.

    Encode krásne funguje, a vypíše to pekne array v takomto štýle:
     

    [{"memberID":27,"username":"velaral552","email":"[email protected]"}]

    Avšak akonáhle chcem toto získať na druhej stránke, tak mi to vypíše proste "nič", prázdna stránka.

    Kód v encodu (cfg.php):
     

    <?php
      require_once("../content/config/config.php");
      class API {
        function Select() {
    
    		global $db;
    
          $stmt = $db->prepare('SELECT memberID, username, email FROM members ORDER BY memberID');
          $stmt->execute(array());
          $row = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
          if (!$stmt->execute()) {
        		print_r($stmt->errorInfo());
        	}
    
          return json_encode($row);
      }
    }
    $API = new API;
    header('Content-Type: application/json');
    echo $API->Select();
    ?>

    a decode:
     

    <?php
    	$json = file_get_contents('http://igportals.eu/api/cfg.php');
    	$users = json_decode($json);
    	echo $users["email"];
    ?>

    Chyby to nehádže žiadne, skúsil som aj googliť, skúšať iné decode scripty, ale ani jeden nefungoval, tak som sa obrátil na toto fórum.

  7. před 7 hodinami, intel said:

    Paradise world mam chcem to rze

    tak ak chceš DG Rze, tak prečo nenapíšeš Deletemu? Síce pochybujem, že ti ho dá zadarmo ak vôbec, ale myslím si, že za pokus to stojí 😄

  8. před 12 hodinami, Janik22 said:

    Zdravím Neviem jak sa pripojit do phpmyadmin akože sa lognut nikdy v živote som to nerobíl prosím pomožte mi ako sa tám mám lognut

    ak si si phpmyadmin už nainštaloval, tak sa logneš takýmto spôsobom: http(https)://ipadresatvojhovps/phpmyadmin
    A tam potom zadáš uživateľské meno a heslo, neviem, že kde presne máš nainštalované phpmyadmin, takže predpokladám, že ho máš základne vo /var/www/html

  9. před 1 hodinou, Daniels said:

    Za mě minecraft minihry 😄 Je to něco, k čemu se vždycky rád vrátím a při troše času zahraju. Jen by si to musel vzít pod křídla někdo, kdo s tím má fakt zkušenosti, aby to bylo dobře naprogramovaný + by tam měli být i nějaký originalitky, aby to nebylo jako na všech ostatních serverech s minihrama 😄 

    to je fakt, niečo originálne, len problém je, že na niečo také prísť je samo o sebe veľmi zriedkavé 😄
    A aj keby niekto prišiel s niečím novým, tak si myslím, že to tak či tak iné servery okopírujú a hráči budú hrať práve na tých serveroch, ktoré to okopírovali - sú už na scéne nejakú dobu.

  10. A ešte jedna vec, nechcel som kvôli tomu zakladať nový topic, tak to napíšem tu.

    Vytvoril som si novú funkciu insertDB, ktorá slúži na vkladanie dát to tabuľky.
     

    function insertDB($table, $data, $values, $values2) {
    	global $db;
    	
    	$stmt = $db->prepare('INSERT INTO '.$table.' ('.$data.') VALUES ('.$values.')');
    	$stmt->execute(array($values2)); // riadok 135
    	
    	if (!$stmt->execute()) {
    		print_r($stmt->errorInfo());
    	}
    
    }
    
    insertDB('groups', 'title,color', ':title, :color', '":title" => '.$name.', ":color" => '.$color.''); // Využitie funkcie - riadok 69

    Ale nejak mi to nefunguje, a ani za nič neviem prísť prečo, chybová hláška mi len pomohla zistiť, že kde je chyba, ale čo tú chybu spôsobuje vyčítať fakt neviem.

    Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number' in config.php:135 
    Stack trace: 
    #0 config.php(135): PDOStatement->execute(Array) #1 creategroup.php(69): insertDB('groups', 'title,color', ':title, :color', '":title" => asd...') #2 {main} thrown in /home/users/megaparba9ecz/igportals.eu/web/content/config/config.php on line 135

     

  11. před 20 minutami, XpresS said:

    Noo v metóde používaš variable ako string a neskôr to db dávaš ako objekt databáze 

    Čo tak to premeniť na $table? 

    Díky za pomoc, $db som mal už definované no 😄

  12. Ahoj,
    chcel som si zjednodušiť vyberanie dát z databáze, tak som si na to vytvoril funkciu.
    Lenže tá funkcia mi nejak nefunguje, a neviem prísť na to prečo, tak to skúsim tu.
    Funkcia:
     

    function getfromDB($data, $db){
    
    	$db = new PDO("mysql:host=".DBHOST.";charset=utf8mb4;dbname=".DBNAME, DBUSER, DBPASS);
    	$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    	$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
    
    	$stmt = $db->prepare("SELECT ".$data." FROM ".$db.""); // Line 97
    	$stmt->execute(array());
    	$row = $stmt->fetch(PDO::FETCH_ASSOC);
    
    	if (!$stmt->execute()) {
    		print_r($stmt->errorInfo());
    	}
    }

    A callujem ju napr. takto: 

    getfromDB("pageTitle, pageID", "pages");

    Chybová hláška: Catchable fatal error: Object of class PDO could not be converted to string in - on line 97
    Predom ďakujem za pomoc.

  13. Zdravím,
    geforce now closed beta už nie je asi 3 mesiace 😄
    Len aktuálne sa nedá zakúpiť founder edícia a je dostupná len free z dôvodu nedostatku serverov, kedže prvých 90 dní je free trial.
    Ja ti doporučím Geforce Now, má síce obmedzený počet hier, a môže sa stať, že ti zrazu hru, ktorú si si kúpil len kvôli hraniu na geforce nowu odstránia, ale hra ako taká ti ostane v steam library / na ubisoftu / na epicu / na neviem čom všetkom, takže asi tak nejak.

     

  14. A ešte jedna otázka, nechcem kvôli tomu zakladať nový topic.

    Nevie niekto, ako by som mohol vymedziť v <input type="file"> súbory ktoré by sa nemali dať uploadnúť?
    Viem, že existuje napr.

    <input type="file" accept=".xls,.xlsx" />

    Lenže všetky tie prípony súborov, ktoré tam chcem aby sa dali uploadnúť sa mi vypisovať nechce.
    Tak či neexistuje nejaký opak toho accept ktorý by tie súbory naopak blokoval.

    Predom ďakujem za odpoveď.

  15. Ahoj, prepáč za neskorú odpoveď.
    Tak cez php to robím kvôli tomu, že ak by som chcel viac stránok, tak asi nebudem v každej stále prepisovať napr. menu alebo iné... (footer, header..)
    A hlavne bez php sa to ani nedá :monkaX:

    (minimálne v mojom kóde nie)

    Pretože ten súbor potrebujem moovnuť do uploads a ešte potrebujem vypísať meno súboru :d A to bez php a echa neurobím :d

×
×
  • Create New...