function getContacts($id) {
$query = mysql_query("SELECT `name` FROM `table` WHERE `id` = ".$id);
}
Проблема: в запрос не поступает переменная. Если выполнить проверку следующего типа:
function getContacts($id) {
echo $id; /* Переменная определена и выводится */
$query = mysql_query("SELECT `name` FROM `table` WHERE `id` = ".$id);
}
Есть мысли?
Спустя 2 минуты, 54 секунды (27.07.2012 - 20:52) kovaldm написал(а):
А с чего ты решил что она не поступает?
Спустя 19 минут, 38 секунд (27.07.2012 - 21:12) NierRa написал(а):
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in {path} on line 12
Для проверки, написал запрос:
Все работает
Для проверки, написал запрос:
function getContacts($id) {
$query = mysql_query("SELECT `name` FROM `table` WHERE `id` = 1");
}
Все работает
Спустя 1 час, 33 минуты, 53 секунды (27.07.2012 - 22:45) Bezdna написал(а):
$query = mysql_query("SELECT `name` FROM `table` WHERE `id` = '".$id."'");
Спустя 8 минут, 52 секунды (27.07.2012 - 22:54) NierRa написал(а):
И так пробовал.
и даже по Поповски .
Не помогает
и даже по Поповски .
function getContacts($id) {
$query = mysql_query("SELECT `name` FROM `table` WHERE `id` = $id");
}
Не помогает
Спустя 19 минут, 1 секунда (27.07.2012 - 23:13) Bezdna написал(а):
Цитата (NierRa @ 27.07.2012 - 22:54) |
Не помогает |
function getContacts($id = '1')
Так тоже?
Спустя 3 минуты, 43 секунды (27.07.2012 - 23:17) NierRa написал(а):
Да, дефаултное значение тоже не воспринимается.
Чем это может быть обусловлено, что переменная определена и выводится, но в запрос не поступает?
Чем это может быть обусловлено, что переменная определена и выводится, но в запрос не поступает?
Спустя 10 минут, 23 секунды (27.07.2012 - 23:27) Winston написал(а):
А где return?
Спустя 23 минуты, 5 секунд (27.07.2012 - 23:50) NierRa написал(а):
Я написал 1 строку из многострочной функции, чтобы показать суть. Смысл в том, что запрос в БД не видит входной параметр функции.
Если вкратце, далее идет вывод информации из БД в форму. Функция не возвращает результат, так как мне не нужно далее с этими данными работать.
Если нужно я линкану весь код
Если вкратце, далее идет вывод информации из БД в форму. Функция не возвращает результат, так как мне не нужно далее с этими данными работать.
Если нужно я линкану весь код
Спустя 7 минут, 13 секунд (27.07.2012 - 23:58) Winston написал(а):
$query = mysql_query("SELECT `name` FROM `table` WHERE `id` = $id") or die(mysql_error());
Спустя 9 минут, 22 секунды (28.07.2012 - 00:07) NierRa написал(а):
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 4
3. /* Функция вывода информации из БД (Контакты) */
4. function getContacts($point) {
5. echo $point; /* Тест переменной - temp */
Спустя 2 минуты (28.07.2012 - 00:09) Guest написал(а):
$query = mysql_query("SELECT `name` FROM `table` WHERE `id` = '$id'") or die(mysql_error());
Спустя 4 минуты, 57 секунд (28.07.2012 - 00:14) NierRa написал(а):
Благодарю, запрос такого вида оказался корректен.
Я всегда думал, что переменные, обрамленные апострофами конвертируются в текст. Хотя может это не актуально для SQL запросов
Я всегда думал, что переменные, обрамленные апострофами конвертируются в текст. Хотя может это не актуально для SQL запросов
Спустя 13 минут, 35 секунд (28.07.2012 - 00:28) NierRa написал(а):
Спрошу в догонку...
Есть файл с незатейливым названием lib, в котором хранятся все пользовательские функции. Ну или почти все, не столько важно
В каждой функции идет обращение к БД, через конструкцию require. Разумеется это некошерно B)
Куда логичнее подключть БД в начале файла lib и просто передавать значение переменной.
Вот например...
Для того, чтобы функция работала корректно - нужно передать ей значение $auto. Допустим в этом примере мы по каким-либо причинам не можем установить для $auto дефолтное значение. (Предположим, что в проекте используется несколько различных подключений и мы точно не знаем какое нам необходимо в данный момент)
Передать переменную $auto я здесь не могу, так как она определяется в другом файле. Как передать функции getContacts переменную, в которой находится результат соеденения с БД.
Есть файл с незатейливым названием lib, в котором хранятся все пользовательские функции. Ну или почти все, не столько важно
В каждой функции идет обращение к БД, через конструкцию require. Разумеется это некошерно B)
Куда логичнее подключть БД в начале файла lib и просто передавать значение переменной.
Вот например...
<?php /* file lib.php */
require_once ROOT_SITE.'/modules/system/db.php';
function getContacts($id) {
$query = mysql_query("SELECT `name` FROM `table` WHERE `id` = '$id'", $auto);
}
Для того, чтобы функция работала корректно - нужно передать ей значение $auto. Допустим в этом примере мы по каким-либо причинам не можем установить для $auto дефолтное значение. (Предположим, что в проекте используется несколько различных подключений и мы точно не знаем какое нам необходимо в данный момент)
/* file default.php */
call_user_func('getContacts', $id);
Передать переменную $auto я здесь не могу, так как она определяется в другом файле. Как передать функции getContacts переменную, в которой находится результат соеденения с БД.
Спустя 4 часа, 13 секунд (28.07.2012 - 04:28) GET написал(а):
NierRa
Можно, например, объявить ее, переменную $auto, как константу. Константы видимы внутри функций. Или через переменную сессии.
Вообще, обычно mysql_query в таких случаях обертывают..и пользуются своей функцией, например,
Можно, например, объявить ее, переменную $auto, как константу. Константы видимы внутри функций. Или через переменную сессии.
Вообще, обычно mysql_query в таких случаях обертывают..и пользуются своей функцией, например,
query($sql,$auto);, $sql - строка запроса, ;$auto - идентификатор подключения. Это делается для того, чтоб обнаружить ошибки подключения к БД.
Спустя 4 часа, 47 минут, 9 секунд (28.07.2012 - 09:15) inpost написал(а):
Вы о чём? Область видимости переменных читали?
Ругается на fetch_assoc, который находится за пределами функции. Winston выше это же и сказал...
Ну а лучше вообще покажи весь код и строчку с которой проблема!
Ругается на fetch_assoc, который находится за пределами функции. Winston выше это же и сказал...
Ну а лучше вообще покажи весь код и строчку с которой проблема!
Спустя 53 минуты, 20 секунд (28.07.2012 - 10:08) NierRa написал(а):
/* Функция вывода информации из БД (Контакты) */
function getContacts($point = 'default') {
require_once ROOT_SITE.'/modules/system/db.php';
$query = mysql_query("SELECT `title`, `adress`, `adress_img`, `phone`, `phone_img`, `email`, `email_img`, `map_img`
FROM `contacts`
WHERE `point` = '".htmlspecialchars($point)."'") or die('MYSQL_ERROR');
while ($res = mysql_fetch_assoc($query)) : ?>
<table class="contacts" width="560" border="0">
<tr>
<th colspan="2" align="left" scope="col"><?php
echo htmlspecialchars($res['title']); ?></th>
</tr>
<tr>
<td width="30" align="center"><img src="./images/<?php
echo htmlspecialchars($res['adress_img']); ?>" width="20" height="18"></td>
<td align="left"><?php
echo htmlspecialchars($res['adress']); ?></td>
</tr>
<tr>
<td width="30" align="center"><img src="./images/<?php
echo htmlspecialchars($res['phone_img']); ?>" width="20" height="18"></td>
<td align="left"><?php
echo htmlspecialchars($res['phone']); ?></td>
</tr>
<tr>
<td width="30" align="center"><img src="./images/<?php
echo htmlspecialchars($res['email_img']); ?>" width="20" height="18"></td>
<td align="left"><?php
echo htmlspecialchars($res['email']); ?></td>
</tr>
</table>
<div class="googleMap"><img src="./images/<?php
echo htmlspecialchars($res['map_img']); ?>"></div>
<?php endwhile;
} /* endFunction */ ?>
Спустя 6 часов, 40 минут, 55 секунд (28.07.2012 - 16:49) inpost написал(а):
Показать ошибку. Показать строчку, в какой именно ошибка. Я же не знаю, что за строчки 55555 в данном коде. Укажи их, чтобы я понимал о чём речь.
_____________
Задача на корректную обработку данных (мое решение)
http://eu.battle.net/sc2/ru/profile/2212951/1/IIIIIIIIIIII/