#php #mysql #function
#php #mysql #функция
Вопрос:
У меня есть функция для вычисления некоторой математики, но, похоже, она не будет помещаться в базу данных…
Есть ли что-то, чего я не знаю или?
function overskud($odds, $indskud) {
$overskud1 = $indskud * $odds;
$overskud2 = $overskud1 - $indskud;
echo "$overskud2";
}
$overskud = overskud($odds, $indskud);
mysql_query("INSERT INTO ODDS_kupon (kamp,odds,indskud,overskud,resultat,af,dato_ar,dato_moned,dato_dag) VALUES ('$kamp', '$odds', '$indskud', '$overskud2', '0', '$profilid', '$datoar', '$datomoned', '$datodag')");
Комментарии:
1. Ваша функция ничего не
return
делает, она простоecho
выдает свой результат.2. $ overskud повторяет результат, например 2, 100 возвращает мне 100..
3. что
mysql_error()
это?4.
echo
просто выводит значение на экран.return
позволяет сохранять значение в переменной.
Ответ №1:
Вам нужен return
результат, а не echo
он:
function overskud($odds, $indskud) {
$overskud1 = $indskud * $odds;
$overskud2 = $overskud1 - $indskud;
return "$overskud2";
}
$overskud = overskud($odds, $indskud);
mysql_query("INSERT INTO ODDS_kupon (kamp,odds,indskud,overskud,resultat,af,dato_ar,dato_moned,dato_dag) VALUES ('$kamp', '$odds', '$indskud', '$overskud2', '0', '$profilid', '$datoar', '$datomoned', '$datodag')");
Возможно, вам потребуется изменить это на return
массив значений, который включает $overskud2
в себя в дополнение к $overskud
, поскольку ваш INSERT
запрос использует эту переменную (но если она не определена в другом месте в коде, не опубликованном, она не входит в область видимости из-за того, что находится внутри функции).
echo
просто выводит данные на страницу / буфер, return
фактически передает значение обратно тому, кто его вызвал, и позволяет присваивать переменные через вывод функции.
Ответ №2:
В вашем запросе используется переменная $overskud2
, но вы ее не определили (она существует только внутри функции). Я полагаю, вы имели в виду $overskud
.
И функция должна return
приводить к результату, а не echo
к нему (путать со сценариями оболочки?).
Ответ №3:
попробуйте это.. вы должны возвращать что-то в вызов функции
function overskud($odds, $indskud) {
$overskud1 = $indskud * $odds;
$overskud2 = $overskud1 - $indskud;
return $overskud2;
}
$overskud = overskud($odds, $indskud);
mysql_query("INSERT INTO ODDS_kupon(kamp,odds,indskud,overskud,resultat,af,dato_ar,dato_moned,dato_dag) VALUES('$kamp','$odds', '$indskud', '$overskud', '0', '$profilid', '$datoar', '$datomoned', '$datodag')");