Autor | Zpráva | ||
---|---|---|---|
danhill Profil |
#1 · Zasláno: 13. 3. 2016, 18:16:34
Dobrý den,
snažím se vytvořit funkci,ale nedaří se mi to. Prosím co mám špatně? Funkce by měla vždy jen prostě vrátit počet řádků. Když udělám tohle tak to chodí: $sum_query = $mysqli->query("SELECT user FROM final WHERE user='".$ID."'"); $sum = mysqli_num_rows($sum_query); echo $sum; Ale když se pokusím udělat tohle,tak dostanu chybu "Call to a member function query() on a non-object ": $ID=487; function sumfinals ($ID) { $sum_query = $mysqli->query("SELECT user FROM final WHERE user='".$ID."'"); $sum = mysqli_num_rows($sum_query); return $sum; } echo $sum=sumfinals ($ID); Děkuji moc. |
||
juriad Profil |
#2 · Zasláno: 13. 3. 2016, 18:30:28
danhill:
To je proto, že zevnitř funce máš přístup je poměnným, které jsou: - uvnitř definované - předané jako parametry - definované venku v případě anonymní funkce a použití klauzuje use
- proměnné označené uvnitř funkce jako globální - superglobání proměnné Pro tebe to prakticky znamená, že bys měl přidat té funkci parametr $mysqli .
|
||
danhill Profil |
#3 · Zasláno: 13. 3. 2016, 19:27:43
Jaj,tak to je něco nového pro mě.Moc nerozumím tomu co jsi napsal.
Kam mám přidat ten parametr $mysqli ? |
||
Monkeys Profil * |
#4 · Zasláno: 13. 3. 2016, 19:41:50
danhill:
niekde mas definovane $mysqli = new mysqll();
a do tej funkcie len pridas riadok function sumfinals ($ID) { global $mysqli $sum_query = $mysqli->query("SELECT user FROM final WHERE user='".$ID."'"); $sum = mysqli_num_rows($sum_query); return $sum; } |
||
danhill Profil |
Ano to mám v config.php
$mysqli = new mysqli("$hostname","$dbname","$pass","$username"); Tak je mimo jiné i tato funkce,která mi nejde. Jak config.php tak function.php mam include v daném php ve kterém je definováno $ID=487; a taky volán výsledek funkce. Nyní to mám jak píšeš: function sumfinals ($ID) { global $mysqli; $sum_query = $mysqli->query("SELECT user FROM final WHERE user='".$ID."'"); $sum = mysqli_num_rows($sum_query); return $sum; } Ale výseldek je stejný Fatal error: Call to a member function query() on a non-object |
||
Lonanek Profil |
#6 · Zasláno: 13. 3. 2016, 20:18:22
function sumfinals ($ID) { global $mysqli; $sum_query = $mysqli->query("SELECT user FROM final WHERE user='".$ID."'"); $sum = $sum_query->num_rows; return $sum; } |
||
Keeehi Profil |
#7 · Zasláno: 13. 3. 2016, 20:30:28
Monkeys, danhill, Lonanek:
Zapomeňte, že global vůbec existuje. juriad to napsal dobře, předejte si to parametrem. function sumfinals ($ID, $mysqli) { $sum_query = $mysqli->query("SELECT user FROM final WHERE user='".$ID."'"); ... } Ta funkce se pak semozřejmě musí volat i s druhým novým parametrem. sumfinals(42, $mysqli);
|
||
danhill Profil |
#8 · Zasláno: 13. 3. 2016, 20:53:54
Supeeer - funguje. To poslední od Keehi už prošlo.
Mockrát děkuji,zase jsem se dačo přiučil ... Díky moc. |
||
Časová prodleva: 8 let
|
0