я имею аа проблемы здесь, у меня есть этот запрос:MySQL ошибочный запрос
function getPrelaciones($carnet){
$result = query(
"SELECT mhm.Materia_codigo1
FROM Materia_has_Materia mhm
, Materia m
, (SELECT mha.Materia_codigo as materianovista
FROM Materia_has_Alumno mha
WHERE mha.Alumno_carnet = '11111') as n
WHERE n.materianovista = mhm.Materia_codigo
AND mhm.Materia_codigo1 != ''
AND n.materianovista = m.codigo");
print json_encode($result);
}
и он работает, но когда я пытаюсь сделать это вообще, переключение '11111'
для $carnet
как следующий запрос, оно не работа, хорошо это работает, но он возвращает пустую JSON:
function getPrelaciones($carnet){
$result = query(
"SELECT mhm.Materia_codigo1
FROM Materia_has_Materia mhm
, Materia m
, (SELECT mha.Materia_codigo as materianovista
FROM Materia_has_Alumno mha
WHERE mha.Alumno_carnet = '%s') as n
WHERE n.materianovista = mhm.Materia_codigo
AND mhm.Materia_codigo1 != ''
AND n.materianovista = m.codigo", $carnet);
print json_encode($result);
}
любое решение ?, благодаря
моя функция запроса выглядеть следующим образом:
function query() {
global $link;
$debug = false;
//get the sql query
$args = func_get_args();
$sql = array_shift($args);
//secure the input
for ($i=0;$i<count($args);$i++) {
$args[$i] = urldecode($args[$i]);
$args[$i] = mysqli_real_escape_string($link, $args[$i]);
}
//build the final query
$sql = vsprintf($sql, $args);
if ($debug) print $sql;
//execute and fetch the results
$result = mysqli_query($link, $sql);
if (mysqli_errno($link)==0 && $result) {
$rows = array();
if ($result!==true)
while ($d = mysqli_fetch_assoc($result)) {
array_push($rows,$d);
}
//return json
return array('result'=>$rows);
} else {
//error
return array('error'=>'Database error');
}
}
Как выглядит ваша функция 'query'? – DCoder
Измените 'mha.Alumno_carnet = '% s'' на' mha.Alumno_carnet like'% s'' – Meherzad
@Meherzad Я думаю, что '% s' является строковым идентификатором, как в' printf', и в этом случае ему следует назначить значение для него. – Voitcus