Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: ZAJDAN 14. 10. 2014, 15:39:43

Název: PHP mysqli_query nic nevrátí
Přispěvatel: ZAJDAN 14. 10. 2014, 15:39:43
Ahoj,
zrovna sestrojuju v PHP ziskani dat z Databaze do formatu JSON, ale narazim na problem uz na samotnem zacatku:

Kód: [Vybrat]
$connection=mysqli_connect("localhost","user","pass","db");
 
$result = mysqli_query( $connection, " SELECT * FROM configuration ");

 echo $result ;

echo nevrátí nic
zkusil jsem tedy zda dojde k jiné akci v DB jako třeba:

Kód: [Vybrat]
mysqli_query($connection,"INSERT INTO configuration (ID)
VALUES ('ZZH')  ");

při kontrole v databázi se INSERT dat skutečně provede, proč ale nedokážu do proměné dostat obsah tabulky přes SELECT netuším.
díky za pomoc
Název: Re:PHP mysqli_query
Přispěvatel: Pavouk106 14. 10. 2014, 15:50:40
Divné.

Z vlastní (prasácké) zkušenosti obaluju názvy tabulek a sloupců znakama `` (`table`) a nedělám zbytečný mezery (to je ale asi jen o zvyku). mysqli_query nejde jednoduše echovat, píše to nějaký kraviny, že to prostě nejde.

Zkus:
echo var_dump($vysledek);

To něco vysype, pokud je vše ok.
Název: Re:PHP mysqli_query
Přispěvatel: ixo333 14. 10. 2014, 15:51:44
S mysqli  som nikdy nerobil ale asi to bude  podobné  plnohodnotnému  mysql, takže nejak takto :

Kód: [Vybrat]
$connection=mysqli_connect("localhost","user","pass","db");
$result = mysqli_query( $connection, " SELECT * FROM configuration ");
 
while($mysql_array=mysql_fetch_array($result)) {
print_r($mysql_array);
}
Název: Re:PHP mysqli_query
Přispěvatel: robin martinez 14. 10. 2014, 15:53:15
musis tim iterovat


Kód: [Vybrat]
$connection=mysqli_connect("localhost","user","pass","db");
    if ($result = $mysqli_query(connection, "SELECT * FROM configuration") {
        while($obj = $result->fetch_object()){
            var_dump($obj);
        }
    }
Název: Re:PHP mysqli_query
Přispěvatel: Pavouk106 14. 10. 2014, 15:56:09
Kód: [Vybrat]
$result->fetch_object()
Tohle je OOP? Já používám mysqli_fetch_array (OOP jsem zatím nepochopil/nepotřeboval).
Název: Re:PHP mysqli_query
Přispěvatel: robin martinez 14. 10. 2014, 15:57:08
Tohle je OOP? Já používám mysqli_fetch_array (OOP jsem zatím nepochopil/nepotřeboval).


je to jedno, bud chces pole nebo objekt :)
Název: Re:PHP mysqli_query
Přispěvatel: ZAJDAN 14. 10. 2014, 16:08:23
Divné.

Z vlastní (prasácké) zkušenosti obaluju názvy tabulek a sloupců znakama `` (`table`) a nedělám zbytečný mezery (to je ale asi jen o zvyku). mysqli_query nejde jednoduše echovat, píše to nějaký kraviny, že to prostě nejde.

Zkus:
echo var_dump($vysledek);

To něco vysype, pokud je vše ok.

ok..nyní mi to vrátí:
object(mysqli_result)#2 (5) { ["current_field"]=> int(0) ["field_count"]=> int(32) ["lengths"]=> NULL ["num_rows"]=> int(35) ["type"]=> int(0) }
Název: Re:PHP mysqli_query
Přispěvatel: ZAJDAN 14. 10. 2014, 16:09:26
musis tim iterovat


Kód: [Vybrat]
$connection=mysqli_connect("localhost","user","pass","db");
    if ($result = $mysqli_query(connection, "SELECT * FROM configuration") {
        while($obj = $result->fetch_object()){
            var_dump($obj);
        }
    }
zkusil jsem ale nedumpne se nic...zadnej vystup neni videt
Název: Re:PHP mysqli_query
Přispěvatel: ZAJDAN 14. 10. 2014, 16:12:38
S mysqli  som nikdy nerobil ale asi to bude  podobné  plnohodnotnému  mysql, takže nejak takto :

Kód: [Vybrat]
$connection=mysqli_connect("localhost","user","pass","db");
$result = mysqli_query( $connection, " SELECT * FROM configuration ");
 
while($mysql_array=mysql_fetch_array($result)) {
print_r($mysql_array);
}
zadnej vypis ...potom jsem print_r($mysql_array); jsem nahradil var_dump($mysql_array); ovsem take neslo nic ven
Název: Re:PHP mysqli_query
Přispěvatel: Pavouk106 14. 10. 2014, 16:20:10
Máš v tý tabulce sloupec ID. Pak by to mohlo být např.
Kód: [Vybrat]
...
while($mysql_array=mysql_fetch_array($result)) {
  echo $mysql_array['ID'];
}

Ten while při každym průběhu posune pole o jeden řádek a v $mysql_array bude vždy ten jeden aktuální řádek.
Název: Re:PHP mysqli_query
Přispěvatel: Pavouk106 14. 10. 2014, 16:21:33
ok..nyní mi to vrátí:
object(mysqli_result)#2 (5) { ["current_field"]=> int(0) ["field_count"]=> int(32) ["lengths"]=> NULL ["num_rows"]=> int(35) ["type"]=> int(0) }

A tohle Ti říká, že v proměnný něco je, takže mysqli_result něco vrátil. ["num_rows"]=> int(35) dokonce říká, že 35 řádků.
Název: Re:PHP mysqli_query
Přispěvatel: ZAJDAN 14. 10. 2014, 16:25:36
ok..nyní mi to vrátí:
object(mysqli_result)#2 (5) { ["current_field"]=> int(0) ["field_count"]=> int(32) ["lengths"]=> NULL ["num_rows"]=> int(35) ["type"]=> int(0) }

A tohle Ti říká, že v proměnný něco je, takže mysqli_result něco vrátil. ["num_rows"]=> int(35) dokonce říká, že 35 řádků.
a přesně to jsem potřeboval zjistit, zda ta proměná něco obsahuje...díky
Název: Re:PHP mysqli_query
Přispěvatel: ZAJDAN 14. 10. 2014, 16:28:56
ok..nyní mi to vrátí:
object(mysqli_result)#2 (5) { ["current_field"]=> int(0) ["field_count"]=> int(32) ["lengths"]=> NULL ["num_rows"]=> int(35) ["type"]=> int(0) }

A tohle Ti říká, že v proměnný něco je, takže mysqli_result něco vrátil. ["num_rows"]=> int(35) dokonce říká, že 35 řádků.
ano sloupec 'ID' je v tabulce obsažen.....zkusil jsem to tedy jak tady uvádíš, ale echo nevrátí nic
Název: Re:PHP mysqli_query
Přispěvatel: Kit 14. 10. 2014, 16:33:39
při kontrole v databázi se INSERT dat skutečně provede, proč ale nedokážu do proměné dostat obsah tabulky přes SELECT netuším.

mysqli_query() vrací jen deskriptor výsledku.

Projdi si http://php.net/manual/en/mysqli.query.php (http://php.net/manual/en/mysqli.query.php), je tam dost příkladů.

Doporučuji přejít na PDO.
Název: Re:PHP mysqli_query
Přispěvatel: Kit 14. 10. 2014, 16:38:19
S mysqli  som nikdy nerobil ale asi to bude  podobné  plnohodnotnému  mysql, takže nejak takto :

MySQLi _je_ plnohodné, ale starý MySQL_* už za plnohodnotný považovat nelze. Bude z PHP vyhozen.

Funkce pro mysqli_* a mysql_* nesmíš kombinovat.
Název: Re:PHP mysqli_query
Přispěvatel: ZAJDAN 14. 10. 2014, 16:38:39
při kontrole v databázi se INSERT dat skutečně provede, proč ale nedokážu do proměné dostat obsah tabulky přes SELECT netuším.

mysqli_query() vrací jen deskriptor výsledku.

Projdi si http://php.net/manual/en/mysqli.query.php (http://php.net/manual/en/mysqli.query.php), je tam dost příkladů.

Doporučuji přejít na PDO.
nevím co je to PDO a nerad bych díky tomu odbočoval z tématu
Název: Re:PHP mysqli_query
Přispěvatel: Pavouk106 14. 10. 2014, 16:42:24
Kód: [Vybrat]
$connection = mysqli_connect("localhost", "user", "pass", "db");
$result = mysqli_query($connection, " SELECT * FROM `configuration`");

while ($result_array = mysqli_fetch_array($result)) {
  echo $result_array['ID'];
}

Tohle MUSÍ fungovat. Pokud ne, jsem blbec.

Mimochodem, chyba je, jak uvedl Kit, který si všiml, v mysqli_fetch_array. Ty jsi použil mysql_fetch_array a chybělo Ti to i. Je to velmi podstatný. Já to pak jen zkopíroval a nekontroloval :-)
Název: Re:PHP mysqli_query
Přispěvatel: ZAJDAN 14. 10. 2014, 16:44:20
Kód: [Vybrat]
$connection = mysqli_connect("localhost", "user", "pass", "db");
$result = mysqli_query($connection, " SELECT * FROM `configuration`");

while ($result_array = mysqli_fetch_array($result)) {
  echo $result_array['ID'];
}

Tohle MUSÍ fungovat. Pokud ne, jsem blbec.

Mimochodem, chyba je, jak uvedl Kit, který si všiml, v mysqli_fetch_array. Ty jsi použil mysql_fetch_array a chybělo Ti to i. Je to velmi podstatný. Já to pak jen zkopíroval a nekontroloval :-)
yeeeees, tak nyní to vypisuje všechny řádky ze sloupce 'ID'.....super díky
Název: Re:PHP mysqli_query
Přispěvatel: ZAJDAN 14. 10. 2014, 16:45:35
MySQLi _je_ plnohodné, ale starý MySQL_* už za plnohodnotný považovat nelze. Bude z PHP vyhozen.
Funkce pro mysqli_* a mysql_* nesmíš kombinovat.

děkuji pač to je zásadní věc
Název: Re:PHP mysqli_query
Přispěvatel: to_je_jedno 14. 10. 2014, 16:47:32
při kontrole v databázi se INSERT dat skutečně provede, proč ale nedokážu do proměné dostat obsah tabulky přes SELECT netuším.

mysqli_query() vrací jen deskriptor výsledku.

Projdi si http://php.net/manual/en/mysqli.query.php (http://php.net/manual/en/mysqli.query.php), je tam dost příkladů.

Doporučuji přejít na PDO.
nevím co je to PDO a nerad bych díky tomu odbočoval z tématu
1) tim ze budes vsechno boldovat nicemu nepomuzes
2) bez PDO si koledujes o krasny pruser. Pokud nejsi ochoten zjistit co to je a naucit se tak se na to vybodni a bez kopat kanaly, to bude uzitecnejsi.
Název: Re:PHP mysqli_query
Přispěvatel: ZAJDAN 14. 10. 2014, 16:50:48
při kontrole v databázi se INSERT dat skutečně provede, proč ale nedokážu do proměné dostat obsah tabulky přes SELECT netuším.

mysqli_query() vrací jen deskriptor výsledku.

Projdi si http://php.net/manual/en/mysqli.query.php (http://php.net/manual/en/mysqli.query.php), je tam dost příkladů.

Doporučuji přejít na PDO.
nevím co je to PDO a nerad bych díky tomu odbočoval z tématu
1) tim ze budes vsechno boldovat nicemu nepomuzes
2) bez PDO si koledujes o krasny pruser. Pokud nejsi ochoten zjistit co to je a naucit se tak se na to vybodni a bez kopat kanaly, to bude uzitecnejsi.
děkuji komandere,
1) bolduju to paš je to přehlednější a nesnaž se mi říkat, že ne....ano tobě chutná šunka a mě zase vysočina
2) o PDO si přečtu, ale nyní chci vyřešit tak jak to je a pak to tedy zdokonalit....namísto házeních druhých do kanálů by jsi mohl spíš poradit, než plýtvat čas komandováním druhých
Název: Re:PHP mysqli_query
Přispěvatel: to_je_jedno 14. 10. 2014, 16:56:40
Radu jsi dostal: pouzivej PDO.
Název: Re:PHP mysqli_query
Přispěvatel: Pavouk106 14. 10. 2014, 17:08:12
to_je_jedno: Není potřeba hned odsuzovat ;-) Já PDO dodnes neslyšel a vystačím si bez něj. Pravda, nedělám PHP za prachy a ani zadarmo, plácám si v tom svoje kravinky, když potřebuju někde něco nakódovat... Bez PDO jsem se zatím obešel, bez OOP taky. Někde se musí začít a myslím, že projít běžný praktiky (třeba zastaralý nebo neefektivní nebo nepoužívaný) neni špatný. Každej začně "Hello world", i když mu to prakticky vlastně nic nedá... Pak teprve se jde dál.

ZAJDAN: Zbylý sloupce jsou v tom $result_array taky, stačí je vypsat stejnym způsobem. Vždy ale v tom jednom cyklu while pracuješ s jednim celym řádkem (tj. se všema sloupcema), v dalším průběhu už přijde novej řádek s novejma hodnotama. Zkoušej, pochopíš ;-)
Název: Re:PHP mysqli_query
Přispěvatel: ZAJDAN 14. 10. 2014, 17:15:24
to_je_jedno: Není potřeba hned odsuzovat ;-) Já PDO dodnes neslyšel a vystačím si bez něj. Pravda, nedělám PHP za prachy a ani zadarmo, plácám si v tom svoje kravinky, když potřebuju někde něco nakódovat... Bez PDO jsem se zatím obešel, bez OOP taky. Někde se musí začít a myslím, že projít běžný praktiky (třeba zastaralý nebo neefektivní nebo nepoužívaný) neni špatný. Každej začně "Hello world", i když mu to prakticky vlastně nic nedá... Pak teprve se jde dál.
děkuji za podporu, dívám se na to přesně jak píšeš
Citace
ZAJDAN: Zbylý sloupce jsou v tom $result_array taky, stačí je vypsat stejnym způsobem. Vždy ale v tom jednom cyklu while pracuješ s jednim celym řádkem (tj. se všema sloupcema), v dalším průběhu už přijde novej řádek s novejma hodnotama. Zkoušej, pochopíš ;-)
díky...moc mi to pomohlo, jdu experimentovat
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: ZAJDAN 15. 10. 2014, 17:20:28
PDO:
věnoval jsem tedy řas tomu, aby jsem můj příklad předělal na PDO. Spojení s DB funguje:
Kód: [Vybrat]
//define constant's in runtime
define('SQL_HOST','localhost');
define('SQL_DBNAME','dbname');
define('SQL_USERNAME', 'user');
define('SQL_PASSWORD','pass');

//define variables for further acctions
$induce = 'mysql:dbname=' . SQL_DBNAME . '; host=' . SQL_HOST . '';
$user = SQL_USERNAME;
$password = SQL_PASSWORD;


// "try - catch"  block
try {
$pdo = new PDO ($induce, $user, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $e) {
die('Connection failed: ' . $e->getMessage() );
}
tady používám styl, kde dotaz předpřipravím a ptom vyvolám, ale echo zatím nic nevrací, proto bych chtěl požádat o radu:
Kód: [Vybrat]
// prepare QUERY
$select = $pdo->prepare("SELECT type, inside FROM configuration WHERE ID = ?");
// execute QUERY
$select->execute(array($result) );
$cabinet = $select->fetch();

echo $cabinet["type"]. " " . $cabinet["inside"];
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: Pavouk106 15. 10. 2014, 17:34:02
Chápu, že dneska třeba bez PDO jako PHPčkař nenajdu uplatnění, ale když to vidím, tak bych blil... Zlatý starý normální funkce...
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: to_je_jedno 15. 10. 2014, 17:45:11
dej tam
print_r($result); a uvidis to.

IMHO ti to vraci objekt tak potrebujes bud printnout $cabinet ->type nebo ziskat vysledek s parametrem PDO::FETCH_ASSOC
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: to_je_jedno 15. 10. 2014, 17:46:24
ale v komentari nezminuju to ze tam nevidim jak probiha WHERE
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: robin martinez 15. 10. 2014, 19:58:57
Chápu, že dneska třeba bez PDO jako PHPčkař nenajdu uplatnění, ale když to vidím, tak bych blil... Zlatý starý normální funkce...

a proto pouzivam DiBi
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: robin martinez 15. 10. 2014, 20:05:10
PDO:
věnoval jsem tedy řas tomu, aby jsem můj příklad předělal na PDO. Spojení s DB funguje:
Kód: [Vybrat]
//define constant's in runtime
define('SQL_HOST','localhost');
define('SQL_DBNAME','dbname');
define('SQL_USERNAME', 'user');
define('SQL_PASSWORD','pass');

//define variables for further acctions
$induce = 'mysql:dbname=' . SQL_DBNAME . '; host=' . SQL_HOST . '';
$user = SQL_USERNAME;
$password = SQL_PASSWORD;


// "try - catch"  block
try {
$pdo = new PDO ($induce, $user, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $e) {
die('Connection failed: ' . $e->getMessage() );
}
tady používám styl, kde dotaz předpřipravím a ptom vyvolám, ale echo zatím nic nevrací, proto bych chtěl požádat o radu:
Kód: [Vybrat]
// prepare QUERY
$select = $pdo->prepare("SELECT type, inside FROM configuration WHERE ID = ?");
// execute QUERY
$select->execute(array($result) );
$cabinet = $select->fetch();

echo $cabinet["type"]. " " . $cabinet["inside"];


ten $result mas nastavenej?
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: Kit 15. 10. 2014, 20:12:43
Chápu, že dneska třeba bez PDO jako PHPčkař nenajdu uplatnění, ale když to vidím, tak bych blil... Zlatý starý normální funkce...

Když vyházíš zbytečné komentáře (duplikují program) a zbytečné funkce define() a die(), tak to není zas tak zlé.
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: to_je_jedno 15. 10. 2014, 21:09:54
Chápu, že dneska třeba bez PDO jako PHPčkař nenajdu uplatnění, ale když to vidím, tak bych blil... Zlatý starý normální funkce...
chapu, ze dneska s lopatou uz moc nenajdu uplatneni, ale kdyz ty pendolina a railjety vidim, tak bych blilb... Zlaty stary konesprezky!
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: ZAJDAN 15. 10. 2014, 21:39:35
ten $result mas nastavenej?

Nemam....je to potreba?
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: Kit 15. 10. 2014, 21:54:52
ten $result mas nastavenej?

Nemam....je to potreba?

Ano, je. Do toho přece dáváš parametr, který bude vložen místo toho "?".

Určitě bys měl tu proměnnou pojmenovat jinak. Třeba $id. Ve WHERE máš přece ID.

Kód: [Vybrat]
$select = $pdo->prepare("SELECT type, inside FROM configuration WHERE ID = ?");
$select->execute(array($id));
$cabinet = $select->fetch();
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: ZAJDAN 15. 10. 2014, 23:09:28
Ono neni jedno jak se ta promena jmenuje?
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: Kit 15. 10. 2014, 23:30:32
Ono neni jedno jak se ta promena jmenuje?

Můžeš si proměnné pojmenovat třeba $a1, $a2, $a3, atd, ale srozumitelnosti programu to určitě nepřidá a musíš psát jinak zbytečné komentáře. Slovo "result" znamená "výsledek". Proč bys měl pojmenovávat formální parametr $result, když v něm máš ID?

Správné pojmenování proměnných a metod je velmi důležité pro pochopení OOP a programování obecně. Počítači je to však úplně fuk.
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: ZAJDAN 16. 10. 2014, 09:59:41
s tím polem se mi to prostě nedaří....
pokud si udělám výpis přes standardní select bez pole tak to jede jak má viz.:
Kód: [Vybrat]
try {
$pdo = new PDO ($induce, $user, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$sql = "SELECT * FROM configuration";
    oreach ($pdo->query($sql) as $row)  {
       print $row['ID'] .' - '. $row['type'] . '<br />';
      }
}
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: to_je_jedno 16. 10. 2014, 10:12:51
Varianta 1:
Kód: [Vybrat]
$select = $pdo->prepare("SELECT type, inside FROM configuration WHERE ID = :id");
$select->bindParam(':id', $id, PDO::PARAM_INT);
// execute QUERY
$select->execute();
$cabinet = $select->fetch(PDO::FETCH_ASSOC 8));

echo $cabinet["type"]. " " . $cabinet["inside"];


Varianta 1:
Kód: [Vybrat]
$select = $pdo->prepare("SELECT type, inside FROM configuration WHERE ID = :id");
// execute QUERY
$args = array(':id' => $id);
$select->execute($args);
$cabinet = $select->fetch(PDO::FETCH_ASSOC 8));

echo $cabinet["type"]. " " . $cabinet["inside"];
Takhle mu posilas to kterou skrin chces.
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: to_je_jedno 16. 10. 2014, 10:17:05
jde o to, ze takhle pres argumenty nemusis resit escape_string a podobne cypowiny.
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: ZAJDAN 16. 10. 2014, 10:48:19
jde o to, ze takhle pres argumenty nemusis resit escape_string a podobne cypowiny.

děkuji, jdu to vyzkoušet :_)
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: ZAJDAN 16. 10. 2014, 12:42:23
nikdy jsem se nesetkal u sql s případem, kde se u klausule WHERE neco dozazuje za = :
....WHERE ID = :id");
co tam zařídí ta dvojtečka?

díky

Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: Pavouk106 16. 10. 2014, 13:03:24
Chápu, že dneska třeba bez PDO jako PHPčkař nenajdu uplatnění, ale když to vidím, tak bych blil... Zlatý starý normální funkce...
chapu, ze dneska s lopatou uz moc nenajdu uplatneni, ale kdyz ty pendolina a railjety vidim, tak bych blilb... Zlaty stary konesprezky!
Railjety a Pendolina kolem mě nejezdí, my tady u nás jezdíme dobytčákama. Hele, neni to špatný, dopraví Tě to totiž úplně stejně. Přičemž ty novější by ani nebyly rychlejší, protože trať tady stojí za hovno...
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: Kit 16. 10. 2014, 13:04:03
....WHERE ID = :id");
co tam zařídí ta dvojtečka?

Ta dvojtečka zařídí, aby si databáze nespletla ten identifikátor s nějakým příkazem či proměnnou. Ta dvojtečka je jeho součástí.
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: to_je_jedno 16. 10. 2014, 13:15:37
proto je pak v $args(); zase :id s dvojteckou.
http://php.net/manual/en/pdostatement.execute.php
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: to_je_jedno 16. 10. 2014, 13:16:51
Chápu, že dneska třeba bez PDO jako PHPčkař nenajdu uplatnění, ale když to vidím, tak bych blil... Zlatý starý normální funkce...
chapu, ze dneska s lopatou uz moc nenajdu uplatneni, ale kdyz ty pendolina a railjety vidim, tak bych blilb... Zlaty stary konesprezky!
Railjety a Pendolina kolem mě nejezdí, my tady u nás jezdíme dobytčákama. Hele, neni to špatný, dopraví Tě to totiž úplně stejně. Přičemž ty novější by ani nebyly rychlejší, protože trať tady stojí za hovno...
vsak jo, trabant by te taky dovezl prakticky kamkoliv a presto jich dneska uz moc nevidis... stejne tak jako fabky nahrazujou u duchodcu filcky ktery nahradily embesa.
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: ZAJDAN 16. 10. 2014, 13:19:48
Ta dvojtečka zařídí, aby si databáze nespletla ten identifikátor s nějakým příkazem či proměnnou. Ta dvojtečka je jeho součástí.
mohu tedy poprosit co se vlastně děje v té přípravě  SQL dotazu?
mate mne tady to, že hodnota sloupce ID není jako string/char a je bez uvozovek tak jako se to dělá pro čísla/numeric
$select = $pdo->prepare("SELECT type, inside FROM configuration WHERE ID = :id");
díky
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: to_je_jedno 16. 10. 2014, 13:21:56
in fact, ta dvojtecka je tam protoze tam pak probiha neco jako str_replace() tesne pred vykonaniom.
foreach ($args as $delta => $arg) {
 str_replace($delta, $arg, $query);
}
no a ted si vem ze bys mel query: select id, name from ids WHERE id = id AND version_id = vid
by ti to nahradilo vsechny vyskyty stringu id(vcetne tech uvnitr slova version_id) za tu promennou takze bys dostal neco jako
select 123, name from 123s WHERE 123 = 123 AND version_123 = v123

takhle mas: select id, name from ids WHERE id = :id AND version_id = :vid
a v tom nahrazeni se vymeni jen presne :id a tim zustanou sloupce, nazve tabulek apod nezmenene. a vis ze tabulky, sloupce apod nikdy nemaji nazev s dvojteckou.
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: to_je_jedno 16. 10. 2014, 13:23:16
a ty uvozovky uz se pak neresi protoze tim ze se to do mysql posle jako argument tak on vi co je to za typ sloupce.
vidis? neni to skvele, ze neresis uvozovky? nemusis resit ze nekdo dal sloupec id jako string...
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: Kit 16. 10. 2014, 13:32:16
$select = $pdo->prepare("SELECT type, inside FROM configuration WHERE ID = :id");

":id" je identifikátor parametru. Proto kolem něho nejsou uvozovky ani když je v tom parametru řetězec.
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: Pavouk106 16. 10. 2014, 13:36:55
Chápu, že dneska třeba bez PDO jako PHPčkař nenajdu uplatnění, ale když to vidím, tak bych blil... Zlatý starý normální funkce...
chapu, ze dneska s lopatou uz moc nenajdu uplatneni, ale kdyz ty pendolina a railjety vidim, tak bych blilb... Zlaty stary konesprezky!
Railjety a Pendolina kolem mě nejezdí, my tady u nás jezdíme dobytčákama. Hele, neni to špatný, dopraví Tě to totiž úplně stejně. Přičemž ty novější by ani nebyly rychlejší, protože trať tady stojí za hovno...
vsak jo, trabant by te taky dovezl prakticky kamkoliv a presto jich dneska uz moc nevidis... stejne tak jako fabky nahrazujou u duchodcu filcky ktery nahradily embesa.
Já to nemyslim špatně a nikoho neodrazuju od používání PDO (nebo OOP), spíš naopak. Jen jde o to, že já se tim živit nikdy nebudu, PHP dělám jen jako svůj "hlavní jazyk" a umím v něm nejvíc. Protože ale nedělám pro nikoho a neplánuju to, tak si vystačím s jednoduchýma základama, který už umim. Prostě v PHP nemám žádný cíle. I kdy to znělo jako jasnej výlev, tak to bylo zkrátka myšlený takhle... Snad se chápeme.
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: ZAJDAN 16. 10. 2014, 14:44:07
všem moc díky!
ještě bych Vás chtěl poprosit o objasnění, zda to chápu správně:
$select->bindParam(':tady se dosadí o jaký slq parametr jde', php $proměná která se na tento parametr naváže, zde jakým datovým typem bude);


Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: to_je_jedno 16. 10. 2014, 15:24:12
http://php.net/manual/en/pdostatement.bindparam.php
:-)
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: ZAJDAN 16. 10. 2014, 15:52:52
no vypadá to, že jsem to pochopil správně :)
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: ZAJDAN 16. 10. 2014, 16:11:51
ač se jeví, že vše je správně stále nedokážu dostat žádnej výstup:
Kód: [Vybrat]
try {
$pdo = new PDO ($induce, $user, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$select = $pdo->prepare("SELECT type, inside FROM configuration WHERE ID = :id");
    $select->bindParam(':id', $id, PDO::PARAM_INT);
// execute QUERY
$select->execute();
$cabinet = $select->fetch(PDO::FETCH_ASSOC);
echo $cabinet["type"]. " " . $cabinet["inside"];
       }
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: to_je_jedno 16. 10. 2014, 16:15:47
http://php.net/manual/en/function.print-r.php
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: ZAJDAN 16. 10. 2014, 17:08:29
mělo by tedy stačit?
print_r($cabinet);
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: to_je_jedno 16. 10. 2014, 17:12:03
paklize nejsi schopen googlem zjistit co dela print_r tak to vzdej, kup si lopatu a krumpac... budes tim lidstvu prospesnejsi, protoze programator z tebe s takovou nikdy nebude
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: ZAJDAN 16. 10. 2014, 17:57:55
a jejda....
tady člověk s některýma nemá šanci, pokud se tím profesionálně neživý.....
někdo prostě nechce být profi programátor a všem to říkat, někdo prostě jen kutá pro sebe, experimentuje a nebo dělá jednoúčelové věci
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: devnull 16. 10. 2014, 18:15:37
No tak si kutej, experimentuj nebo delej jednoucelove veci. Domnivam se, ze se naucis vic nez pokladanim spousty dotazu.
Zkus projit tech 10 radku a fakt pochopit co to dela - ee to lepsi nez polozit dalsich 20 blbych dotazu.
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: Kit 16. 10. 2014, 18:21:33
ač se jeví, že vše je správně stále nedokážu dostat žádnej výstup:

Je možné, že takový záznam v DB prostě a jednoduše není?
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: ZAJDAN 16. 10. 2014, 18:23:32
ha, něco podobného mě napadlo, prověřím tabulku databáze
děkuji
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: ZAJDAN 16. 10. 2014, 18:32:23
Kód: [Vybrat]
mysql> SHOW COLUMNS FROM configuration;
+----------------------+------------------+------+-----+---------+----------------+
| Field                | Type             | Null | Key | Default | Extra          |
+----------------------+------------------+------+-----+---------+----------------+
| ID                   | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| mark                 | varchar(20)      | YES  |     | NULL    |                |
| type                 | char(3)          | YES  |     | NULL    |                |
| inside               | char(3)          | YES  |     | NULL    |                |
| door_direction       | char(1)          | YES  |     | NULL    |                |
| partition            | int(11)          | YES  |     | NULL    |                |
| width                | int(11)          | YES  |     | NULL    |                |
| deep                 | int(11)          | YES  |     | NULL    |                |
| height               | int(11)          | YES  |     | NULL    |                |
| sockel_height        | int(11)          | YES  |     | NULL    |                |
| podestal             | char(5)          | YES  |     | NULL    |                |
| plinth               | char(3)          | YES  |     | NULL    |                |
| lid                  | char(3)          | YES  |     | NULL    |                |
| door                 | char(3)          | YES  |     | NULL    |                |
| locking              | char(2)          | YES  |     | NULL    |                |
| washer               | char(4)          | YES  |     | NULL    |                |
| doorlock             | char(8)          | YES  |     | NULL    |                |
| masterkey            | char(2)          | YES  |     | NULL    |                |
| centralkey           | char(2)          | YES  |     | NULL    |                |
| shelf                | char(3)          | YES  |     | NULL    |                |
| backside             | char(3)          | YES  |     | NULL    |                |
| corpus_color         | char(5)          | YES  |     | NULL    |                |
| door_color           | char(5)          | YES  |     | NULL    |                |
| door_color2          | char(5)          | YES  |     | NULL    |                |
| numbering            | char(3)          | YES  |     | NULL    |                |
| number_on_key        | char(3)          | YES  |     | NULL    |                |
| bracelet             | char(3)          | YES  |     | NULL    |                |
| door_limiter         | char(3)          | YES  |     | NULL    |                |
| hooks                | char(5)          | YES  |     | NULL    |                |
| silicon_seal         | char(3)          | YES  |     | NULL    |                |
| sheet_quality_corpus | char(5)          | YES  |     | NULL    |                |
| sheet_quality_door   | char(5)          | YES  |     | NULL    |                |
| roof                 | char(2)          | YES  |     | NULL    |                |
+----------------------+------------------+------+-----+---------+----------------+
33 rows in set (0.00 sec)

mysql>
Kód: [Vybrat]
mysql> SELECT ID FROM configuration
    -> ;
+----+
| ID |
+----+
|  1 |
|  2 |
|  3 |
|  4 |
|  5 |
|  6 |
|  7 |
|  8 |
|  9 |
| 10 |
| 11 |
| 12 |
| 13 |
| 14 |
| 15 |
| 16 |
| 17 |
| 18 |
| 19 |
| 20 |
| 21 |
| 22 |
| 23 |
| 24 |
| 25 |
| 26 |
| 27 |
| 28 |
| 29 |
| 30 |
| 31 |
| 32 |
| 33 |
| 34 |
| 35 |
+----+
35 rows in set (0.00 sec)

mysql>

jestli něco nepřehlížím, tak se mi jeví v pořádku
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: Kit 16. 10. 2014, 18:38:12
jestli něco nepřehlížím, tak se mi jeví v pořádku

A jaká je hodnota v proměnné $id? Měla by být v rozsahu 1..35. Je vůbec nastavena?

Kód: [Vybrat]
var_dump($id);
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: ZAJDAN 16. 10. 2014, 18:55:53
A jaká je hodnota v proměnné $id? Měla by být v rozsahu 1..35. Je vůbec nastavena?
Kód: [Vybrat]
var_dump($id);
vrátí:
NULL
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: Kit 16. 10. 2014, 19:04:34
A jaká je hodnota v proměnné $id? Měla by být v rozsahu 1..35. Je vůbec nastavena?
Kód: [Vybrat]
var_dump($id);
vrátí:
NULL

Výborně! Takže se ptáš na nějaký záznam a neřekneš databázi, který chceš. Tak ti žádný neposlala. Který z těch 35 záznamů jsi vlastně chtěl? Musíš jí to sdělit právě prostřednictvím proměnné $id.
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: ZAJDAN 16. 10. 2014, 19:06:47
ach tak, moje neznalost měla zato, že vrátí všechny záznamy
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: ZAJDAN 16. 10. 2014, 19:11:22
v tuto chvíli je mím cílem získat všechny hodnoty ze sloupce 'type' a to tak abych je mohl následně odeslat jako json data
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: Kit 16. 10. 2014, 19:19:43
v tuto chvíli je mím cílem získat všechny hodnoty ze sloupce 'type' a to tak abych je mohl následně odeslat jako json data

V tom případě musíš z toho SQL dotazu vyhodit klauzuli "WHERE ID = :id" a místo hvězdičky napsat název sloupce "type".

Kód: [Vybrat]
SELECT `type` FROM configuration;
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: ZAJDAN 16. 10. 2014, 19:45:20
V tom případě musíš z toho SQL dotazu vyhodit klauzuli "WHERE ID = :id" a místo hvězdičky napsat název sloupce "type".
Kód: [Vybrat]
SELECT `type` FROM configuration;
super už se to začíná hejbat k očekávanému cíli:
Kód: [Vybrat]
$select = $pdo->prepare("SELECT type FROM configuration");
$select->execute();
$cabinet = $select->fetchAll(PDO::FETCH_ASSOC);
print_r($cabinet);
původní ->fetch mi vracel pouze jeden prvek z pole(nevím či první či poslední), tak jsem ho nahradil ->fetchAll a už jde vidět obsah celého pole:
Array ([0] => Array ( [type] => G1E ) [1] => Array ( [type] => G1E ) [2] => Array ( [type] => G1E ) [3] => Array ( [type] => G1E ) [4] => Array ( [type] => G1E ) [5] => Array ( [type] => G1E ) [6] => Array ( [type] => G1E ) [7] => Array ( [type] => G1E ) [8] => Array ( [type] => G1E ) [9] => Array ( [type] => G1E ) [10] => Array ( [type] => G1E ) [11] => Array ( [type] => G1E ) [12] => Array ( [type] => G1E ) [13] => Array ( [type] => G1E ) [14] => Array ( [type] => G1E ) [15] => Array ( [type] => G1E ) [16] => Array ( [type] => G1E ) [17] => Array ( [type] => G1E ) [18] => Array ( [type] => G1E ) [19] => Array ( [type] => G1E ) [20] => Array ( [type] => G1E ) [21] => Array ( [type] => G1E ) [22] => Array ( [type] => G1E ) [23] => Array ( [type] => G1E ) [24] => Array ( [type] => G1E ) [25] => Array ( [type] => G1E ) [26] => Array ( [type] => G1E ) [27] => Array ( [type] => G1E ) [28] => Array ( [type] => G1E ) [29] => Array ( [type] => G1E ) [30] => Array ( [type] => G1E ) [31] => Array ( [type] => G1E ) [32] => Array ( [type] => G1E ) [33] => Array ( [type] => G1E ) [34] => Array ( [type] => ) )
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: ZAJDAN 16. 10. 2014, 19:59:12
tak a teď se tedy poohlídnu po metodě jak to poslat jako json data
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: Kit 16. 10. 2014, 20:20:55
tak a teď se tedy poohlídnu po metodě jak to poslat jako json data

Zkus tohle:
Kód: [Vybrat]
$cabinet = $select->fetchAll(PDO::FETCH_COLUMN);
echo json_encode($cabinet);
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: ZAJDAN 16. 10. 2014, 20:24:39
díky....
zrovna jsem to zkoušel je s tím, že jsem to dosadil do proměné:
$json = json_encode( $cabinet );
print_r($json);


a vypadá to ok
díky
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: to_je_jedno 17. 10. 2014, 07:25:05
si to kutej jak chces, ale kdyz se misto google ptas napoprve do fora tak se nikam nepohnes. navic print_r/var_dump je vec bez ktery nevydrzis dele nez prvnich par hodin. kdyby to bylo neco advanced tak clovek poradi rad, ale prvni musi byt videt snaha.
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: robin martinez 17. 10. 2014, 08:08:17
si to kutej jak chces, ale kdyz se misto google ptas napoprve do fora tak se nikam nepohnes. navic print_r/var_dump je vec bez ktery nevydrzis dele nez prvnich par hodin. kdyby to bylo neco advanced tak clovek poradi rad, ale prvni musi byt videt snaha.

to je jeste v pohode, na nette foru se lidi ptaj stylem "Pise mi to: wrong password in database connection. Co mam proboha delat?????"
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: ZAJDAN 17. 10. 2014, 09:50:02
naštěstí jsou i ochotní lidé, kteří se snaží pomoci za všech okolností, bez neustáleho remcáné a povyšování se, a věřím, že nyní když se to za pomoci Kida podařilo někam dostat, to pomůže několika dalším lamkám jaké já, bez toho aby se doprošovali bohů.
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: NooN 17. 10. 2014, 10:12:02
Pripada mi to tak, ze sa len nudis a robis si z ludi srandu. Pytas sa na veci, ktore bezny clovek pomocou Google zisti behom par sekund, aj ked tomu nerozumie. A ked niekomu podakujes, ze ti pomahal, tak doje... aj jeho meno. Ako chces potom vôbec nieco napisat sam, co nebude skomolane?
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: ZAJDAN 17. 10. 2014, 10:35:01
Vubec není na místě zkoumat, zda si člověk hraje/učí se nebo dělá něco profesionálního, jen hnup se v tom stourá. Ano a to je přesně co říkáš 'Google to najde za pár sekund', ale proč to ten google našel už Vás nenapadlo?....protože vznikly nějaké helpy, weby, fora a čím víc toho je tím lépe, v tom je ten internet krásnej. A jsem strašně moc rád, že na tomto příkladu se demonstrovalo, jak když jsou lidi jako Kid ochotní i s hloupějšíma, dá se to vyřešit do konce.
Rád bych poděkoval nejen KIdovi, ale všem zůčastněným snažícím se pomoci.
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: NooN 17. 10. 2014, 10:52:14
Ked myslis ze to takto funguje...
Ze vsetko co si ty lenivy urobit bude neustale za teba niekto iny robit. Dalsi dovod robit to sam je ten, ze z toho sa viac naucis ako ked to za teba bude robit niekto iny.
Nuz, ale ide ina doba, takze treba si zvykat.
A ten clovek co ti pomalal je Kit, apon jeho meno neprzni.
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: ZAJDAN 17. 10. 2014, 10:56:12
takže dost keců a vyčítání si kdo umí kdo ne...zde je funkční řešení pro všechny ostatní, kteří to budou potřebovat:
/connection to MySQL database

//define constant's in runtime
define('SQL_HOST','localhost');
define('SQL_DBNAME','cabinets');
define('SQL_USERNAME', 'configurator');
define('SQL_PASSWORD','configure');

//define variables for further acctions
$induce = 'mysql:dbname=' . SQL_DBNAME . '; host=' . SQL_HOST . '';
$user = SQL_USERNAME;
$password = SQL_PASSWORD;


// "try - catch"  block
try {
$pdo = new PDO ($induce, $user, $password);
                     $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);



                     $select = $pdo->prepare("SELECT type FROM configuration");
                      //$select->bindParam(':id', $id, PDO::PARAM_INT);
                       // execute QUERY
                     $select->execute();
                     $cabinet = $select->fetchAll(PDO::FETCH_ASSOC);
                     $json = json_encode( $cabinet );
                     
                     print_r($json); 
                  }

catch (PDOException $e) {
                     die('Connection failed: ' . $e->getMessage() );
                  }
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: ZAJDAN 17. 10. 2014, 11:03:46
Ked myslis ze to takto funguje...
Ze vsetko co si ty lenivy urobit bude neustale za teba niekto iny robit. Dalsi dovod robit to sam je ten, ze z toho sa viac naucis ako ked to za teba bude robit niekto iny.
Nuz, ale ide ina doba, takze treba si zvykat.
A ten clovek co ti pomalal je Kit, apon jeho meno neprzni.
podívej se na sebe..kolik času tady plýtváš kázáním...když poradit nechceš a to ať z jakehokoliv důvodu, nemá smysl reagovat...
rozhodně za mně nikdo nedělá vše....přečti si celé vlákno...byl jsem nabádán k PDO....sám jsem si k tomu připravil konstrukci a teprve až potom poprosil o pomoc s konkretnima problemama a zapochodu to řešil.
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: devnull 17. 10. 2014, 11:13:56
Aaaaano a tucty takovych prikladu se daji najit treba na manualovych strankach PHP treba tady: http://php.net/manual/en/pdostatement.fetchall.php

Ovsem domnivam se, ze pro lidi s tvym pristupem je to stejne k nicemu, protoze misto toho, aby si to vygooglili a pochopili, si to nechaji od nekoho seskladat na foru a jeste budou drzkovat. A pak az budou potrebovat misto vsech zaznamu vybrat treba jenom jeden, budou stejne v pasti, protoze absolutne netusi co ty podivny pismenka se strednikama delaj.
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: ZAJDAN 17. 10. 2014, 11:42:58
možná to tak s někým je, ale já to díky tomuto vláknu začal chápat
dejme tomu, že budu chtít teď z DB vypsat pouze typy, které mají hodnotu sloupce 'plinth' S30

Kód: [Vybrat]
$select = $pdo->prepare("SELECT type FROM configuration WHERE plinth= :plinth");
$select->execute(array(':plinth' => 'S30'));
$cabinet = $select->fetchAll(PDO::FETCH_ASSOC);
$json = json_encode( $cabinet );
print_r($json); 
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: devnull 17. 10. 2014, 12:19:53
Pekny, smekam, fakt jsem to necekal ...
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: to_je_jedno 17. 10. 2014, 13:22:44
ono to pujde... btw v cem to pises? bylo by fajn si hned na zacatku zvyknout psat jednim stylem... treba mezery kolem zavorek apod.
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: ZAJDAN 17. 10. 2014, 13:30:51
ono to pujde... btw v cem to pises? bylo by fajn si hned na zacatku zvyknout psat jednim stylem... treba mezery kolem zavorek apod.
PHP používám jako začátečník a to jen na menší věci(udělátka) jako toto,
ano, i přesto, že mě to hlava bere velmi pomalu, půjde to
používám Aptanu, ale ta mi upgradem začla padat, tak než to vyřeším používám Sublime a líbí se mi....pravda jeden styl...začnu s tím něco dělat
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: Pavouk106 17. 10. 2014, 13:57:47
Pro toho slovenskýho kazatele: Učil jsem PHP kamaráda. Teda učil... on jen věděl, že něco takovýho je, ale neměl páru o ničem, anglicky moc neuměl, ... Vysvětloval jsem mu všechno, úplně totálně všechno. MySQL bylo až "na třetí hodině", protože do tý doby nechápal ani cykly... Kdybych mu řekl "najdi si to", dodnes by se nikam nedostal. I začátky a prkotiny se dají řešit na foru. Koneckonců, to je vidět na tomhle případu. Já taky občas vyvěsim kód, kde potřebuju poradit s kravinou. Většinou po několika hodinách zkoušení a hledání řešení. Ale čím dýl zkoušim a hledam, tím spíš na tu kravinu nepřijdu (někde chybí středník/uvozovky/mám = místo == apod.). Když na to koukne někdo jinej, zasměje se (protože to zná z vlastní zkušenosti) a poradí.

ZAJDAN: Půjde to, to je jasné. Jak píše to_je_jedno, na stylu zapracuj, nějakej si "vymysli" a drž to. Já na to přišel teprve nedávno. Konečně dělám takový běžný věci jako: mezery kolem = a ==, mezery za , (když je ve funkci víc parametrů) a další. Odrážím pravým tabulátorem, ne mezerama apod. Mám ale i nezvyklý věci, například začátek if nebo cyklů (znak { ) mám na stejnym řádku, jako ten if. Myslím, že běžně se to odráží na vlastní řádek...

Píšu v Kate (desktop) nebo v Anjuta (netbook). Převážně v Anjuta, protože se přitom můžu válet na gauči... ;D
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: Rejpal 17. 10. 2014, 14:28:39
Proto, aby php kod nevypadal jako od prasat, byl jednotny a dalo se tak (o neco lepe) vyznat v cizim kodu, existuje stabni kultura psani kodu: http://pear.php.net/manual/en/standards.php. Prohlednete si to a programujte tak.
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: Kit 17. 10. 2014, 14:43:08
Proto, aby php kod nevypadal jako od prasat, byl jednotny a dalo se tak (o neco lepe) vyznat v cizim kodu, existuje stabni kultura psani kodu: http://pear.php.net/manual/en/standards.php. Prohlednete si to a programujte tak.

To jsou pravidla, která jsou určena pro PEAR. Některá z nich jsou rozumná, jiná ne.
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: Kit 17. 10. 2014, 14:51:45
..., na stylu zapracuj, nějakej si "vymysli" a drž to. Já na to přišel teprve nedávno. Konečně dělám takový běžný věci jako: mezery kolem = a ==, mezery za , (když je ve funkci víc parametrů) a další. Odrážím pravým tabulátorem, ne mezerama apod. Mám ale i nezvyklý věci, například začátek if nebo cyklů (znak { ) mám na stejnym řádku, jako ten if. Myslím, že běžně se to odráží na vlastní řádek...

Když se podívám na své starší zdrojáky, tak se mi už také moc nelíbí. Naštěstí existují formátovače, které to dokáží přerovnat podle nějakých pravidel.

Také používám tabulátor, znak '{' na stejném řádku jako if nebo function a break ani else pro jistotu nepoužívám vůbec.
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: wtf 17. 10. 2014, 14:59:12
To tam jako místo else pereš pod to obrácenou podmínku? A co break ve switchi? Taky ne? Ty vlastně pro jistotu nepoužíváš ani gettery a settery, co? Co všechno ještě pro jistotu nepoužíváš? Jen tak ze zvědavosti, zaujalo mě to.
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: robin martinez 17. 10. 2014, 15:02:05
ja u PHP pro jistotu nepouzivam cykly ani funkce
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: Kit 17. 10. 2014, 15:06:50
To tam jako místo else pereš pod to obrácenou podmínku? A co break ve switchi? Taky ne? Ty vlastně pro jistotu nepoužíváš ani gettery a settery, co? Co všechno ještě pro jistotu nepoužíváš? Jen tak ze zvědavosti, zaujalo mě to.

Místo else nedávám nic. Není potřebné. Často není potřebné ani if... Místo break ve switchi mi mnohem lépe poslouží return. Místo setteru se krásně dá použít konstruktor. Místo getteru raději data zpracuji uvnitř objektu, abych ty atributy z objektu vůbec ven nevytahoval.
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: wtf 17. 10. 2014, 15:17:43
To myslíš vážně nebo jenom trolluješ?
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: Kit 17. 10. 2014, 15:26:07
To myslíš vážně nebo jenom trolluješ?

To myslím skutečně vážně. Proč by to měl být trolling? Tyhle struktury přece patří do strukturovaného programování. Přechodem na OOP se jich postupně zbavuji. Evidentně to jde, tak proč to tak nedělat? Programy se tím výrazně zkrátí, zjednoduší a často i zrychlí.
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: robin martinez 17. 10. 2014, 15:28:15
To myslíš vážně nebo jenom trolluješ?
To myslím skutečně vážně.


mám to! nepoužívá if-else-then, ale ternáry!
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: wtf 17. 10. 2014, 15:36:50
Citace
mám to! nepoužívá if-else-then, ale ternáry!

To by tím pádem else používal tak jako tak.

Citace
Evidentně to jde, tak proč to tak nedělat?

Já věřím, že ti to funguje. To je jako když se někdo rozhodne, že psát háčky a čárky je zbytečnost - taky určitě sdělí, co potřeboval, akorát se to pak po něm dost blbě čte. Oni tam ty keywordy autoři jazyka nedávali jen tak ze srandy, protože se nudili, ale proto, že za určitých podmínek mají svoje použití. Říct si u poloviny prostředků, že je to pěkná píčovina, už to schválně nikdy nepoužít a tam kde by se to hodilo to schválně obcházet, to mi nějak rozum nebere. Ale dělej, jak uznáš za vhodné, on tě život naučí. Dokud s tvými kódy nemusím pracovat, tak je mi to v podstatě buřt.
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: Kit 17. 10. 2014, 15:45:03
Citace
mám to! nepoužívá if-else-then, ale ternáry!
To by tím pádem else používal tak jako tak.

Ternár není else. Pokud do proměnné ukládám jednu ze dvou možných hodnot, ternár je tou správnou volbou.

Citace
Evidentně to jde, tak proč to tak nedělat?

Já věřím, že ti to funguje. To je jako když se někdo rozhodne, že psát háčky a čárky je zbytečnost - taky určitě sdělí, co potřeboval, akorát se to pak po něm dost blbě čte. Oni tam ty keywordy autoři jazyka nedávali jen tak ze srandy, protože se nudili, ale proto, že za určitých podmínek mají svoje použití. Říct si u poloviny prostředků, že je to pěkná píčovina, už to schválně nikdy nepoužít a tam kde by se to hodilo to schválně obcházet, to mi nějak rozum nebere. Ale dělej, jak uznáš za vhodné, on tě život naučí. Dokud s tvými kódy nemusím pracovat, tak je mi to v podstatě buřt.

Kupodivu se to pak čte velmi dobře. Lépe než když tam taková klíčová slova jsou. OOP nám umožňuje používat jiné konstrukce než ty, které tady byly někdy před 20 lety. Když vezmu výsledný příklad a trochu ho přeformátuji, dostanu tohle:

Kód: [Vybrat]
$host = 'localhost';
$dbname = 'cabinets';
$user = 'configurator';
$password = 'configure';
$dsn = "mysql:dbname=$dbname; host=$host";
$atributy = Array(
    \PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION,
    \PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8",
); 
try {
    $pdo = new PDO($dsn, $user, $password, $atributy);
    $select = $pdo->prepare("SELECT type FROM configuration");
    $select->execute();
    $cabinet = $select->fetchAll(PDO::FETCH_ASSOC);
    $json = json_encode( $cabinet );
    print_r($json);
} catch (PDOException $e) {
    throw new Exception('Connection failed: ' . $e->getMessage() );
}

Vidíš tam někde nějaké if, else nebo break? Máš snad pocit, že je to nepřehledné?
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: wtf 17. 10. 2014, 15:57:43
Ježíši Kriste! Ternár je přece jenom jinak zapsaný if-else, proboha. Jinak já netvrdím, že máš cpát podmínky na každý druhý řádek, ale že rozhodně není pravda, že nemají význam nebo jsou dokonce zbytečné. Doporučil bych přestat bezmyšlenkovitě přebírat rady z článků typu "blablabla is evil in the OOP", má to na tebe špatný vliv. Ale to je jako mluvit do dubu. Mám lepší věci na práci, měj se.
Název: Re:PHP mysqli_query nic nevrátí
Přispěvatel: Kit 17. 10. 2014, 18:56:20
Ježíši Kriste! Ternár je přece jenom jinak zapsaný if-else, proboha.

Aha, takže tohle nedorozumění pramení z toho, že si pleteš programovou strukturu s výrazem.

Citace
Jinak já netvrdím, že máš cpát podmínky na každý druhý řádek, ale že rozhodně není pravda, že nemají význam nebo jsou dokonce zbytečné.

Možná by sis měl znovu přečíst, jak jsem to napsal, abys to pochopil.

Citace
Doporučil bych přestat bezmyšlenkovitě přebírat rady z článků typu "blablabla is evil in the OOP", má to na tebe špatný vliv. Ale to je jako mluvit do dubu. Mám lepší věci na práci, měj se.

Jaké rady přebírám z jakých článků? Googlil jsem vhodnou referenci pro tazatele na gettery/settery a tahle mi připadla jako dobrá.

Stačí, když se začteš do knih od Roberta C. Martina a Martina Fowlera. Snad potom pochopíš, že o těchto věcech tam píší. Jak nahradit "if" polymorfismem, jak nelpět na jediném výstupním bodu z metody, jak aplikovat SRP, jak nepsat komentáře, jako volit názvy proměnných a metod, jak neporušit Déméteřin zákon,...

BTW: Gettery a settery zmíněný Déméteřin zákon porušují poměrně často.