PHP mysqli_query nic nevrátí

ZAJDAN

  • *****
  • 1 977
    • Zobrazit profil
    • E-mail
PHP mysqli_query nic nevrátí
« kdy: 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
« Poslední změna: 14. 10. 2014, 18:43:51 od Petr Krčmář »
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.


Pavouk106

  • *****
  • 2 329
    • Zobrazit profil
    • Můj blog
    • E-mail
Re:PHP mysqli_query
« Odpověď #1 kdy: 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.

ixo333

Re:PHP mysqli_query
« Odpověď #2 kdy: 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);
}

robin martinez

  • *****
  • 867
  • Have you hugged your toilet today?
    • Zobrazit profil
    • Null Storage
    • E-mail
Re:PHP mysqli_query
« Odpověď #3 kdy: 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);
        }
    }
One machine can do the work of fifty ordinary men. No machine can do the work of one extraordinary man.

I do Linux, Hardware and spaghetti code in PHP, Python and JavaScript

Pavouk106

  • *****
  • 2 329
    • Zobrazit profil
    • Můj blog
    • E-mail
Re:PHP mysqli_query
« Odpověď #4 kdy: 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).


robin martinez

  • *****
  • 867
  • Have you hugged your toilet today?
    • Zobrazit profil
    • Null Storage
    • E-mail
Re:PHP mysqli_query
« Odpověď #5 kdy: 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 :)
One machine can do the work of fifty ordinary men. No machine can do the work of one extraordinary man.

I do Linux, Hardware and spaghetti code in PHP, Python and JavaScript

ZAJDAN

  • *****
  • 1 977
    • Zobrazit profil
    • E-mail
Re:PHP mysqli_query
« Odpověď #6 kdy: 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) }
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.

ZAJDAN

  • *****
  • 1 977
    • Zobrazit profil
    • E-mail
Re:PHP mysqli_query
« Odpověď #7 kdy: 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
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.

ZAJDAN

  • *****
  • 1 977
    • Zobrazit profil
    • E-mail
Re:PHP mysqli_query
« Odpověď #8 kdy: 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
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.

Pavouk106

  • *****
  • 2 329
    • Zobrazit profil
    • Můj blog
    • E-mail
Re:PHP mysqli_query
« Odpověď #9 kdy: 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.

Pavouk106

  • *****
  • 2 329
    • Zobrazit profil
    • Můj blog
    • E-mail
Re:PHP mysqli_query
« Odpověď #10 kdy: 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ů.

ZAJDAN

  • *****
  • 1 977
    • Zobrazit profil
    • E-mail
Re:PHP mysqli_query
« Odpověď #11 kdy: 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
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.

ZAJDAN

  • *****
  • 1 977
    • Zobrazit profil
    • E-mail
Re:PHP mysqli_query
« Odpověď #12 kdy: 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
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.

Kit

Re:PHP mysqli_query
« Odpověď #13 kdy: 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, je tam dost příkladů.

Doporučuji přejít na PDO.

Kit

Re:PHP mysqli_query
« Odpověď #14 kdy: 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.