| 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: 10 let
|
|||
0