Intereting Posts
Переменная имеет неожиданное значение Как работают push-уведомления? Как найти значение в массиве и удалить его с помощью функций массива PHP Как обрабатывать транзакцию в управляемой событиями архитектуре? PHP SDK – выход в Facebook php аутентификации пользователей / фреймворков … какие варианты? PHP – Как получить все значения массива из n глубокого массивного массива? Codeigniter 3 Удалить проблемы index.php Удалить все повторяющиеся символы в строке? Создание CSV-файла из таблицы MySQL с использованием php В PHP: как я могу использовать функцию include (), какой параметр является переменной? Как автоматизировать создание свойств для класса в phpstorm? PHP не может создать каталог с mkdir Начальная страница сайта CakePHP с первого байта очень длинная PHP Как сохранить выбранную опцию из раскрывающегося списка, чтобы оставаться выбранным при отправке?

Вытягивание данных и их печать в таблице HTML

Из таблицы MySQL, называемой «представлением», содержащей поля «loginid, uploadid, title, url, datesubmitted, displayurl», я хотел бы напечатать таблицу HTML, содержащую все «title» и соответствующие «dateubmitted», где «loginid» равно « $ профиль «. Код, который я пытаюсь использовать, приведен ниже. Он не работает. Любые идеи, почему он не работает?

Заранее спасибо,

Джон

$profile = $_GET['profile']; $sqlStr = "SELECT loginid, submissionid, title, url, datesubmitted, displayurl FROM submission WHERE loginid = $profile ORDER BY datesubmitted DESC"; $result = mysql_query($sqlStr); $arr = array(); echo "<table class=\"samplesrec\">"; while ($row = mysql_fetch_array($result)) { echo '<tr>'; echo '<td class="sitename1"><a href="http://www.'.$row["url"].'">'.$row["title"].'</a></td>'; echo '</tr>'; echo '<tr>'; echo '<td class="sitename2">'.$row["datesubmitted"].'</a></td>'; echo '</tr>'; } echo "</table>"; 

Solutions Collecting From Web of "Вытягивание данных и их печать в таблице HTML"

Вероятно, ваш запрос не работает.

Попробуйте повторить возврат из mysql_error (); после проверки запроса, чтобы узнать, что может быть проблемой.

Вы также должны защитить свой вход от инъекции. Если loginID является именем пользователя, вам нужно окружить строку в запросе mySQL кавычками – если loginID является именем пользователя. Если это целое число, вы можете быть в порядке.

Есть более надежные способы сделать это, но просто:

  $profile = mysql_real_escape_string($_GET['profile']); $sqlStr = "SELECT loginid, submissionid, title, url, datesubmitted, displayurl FROM submission WHERE loginid = '$profile' ORDER BY datesubmitted DESC"; $result = mysql_query($sqlStr); if($result) { // Handle output } else { echo 'query failed'; // don't leave this here in production! echo mysql_error(); } 

Одна проблема, которую я вижу, заключается в том, что вы не проверяете возвращаемое значение mysql_query()

mysql_query() возвращает false если ему не удается выполнить запрос. Поэтому вам нужно сделать чек, например:

 $result = mysql_query($sqlStr); if(! $result) { //....error occured...prepare $message die($message); } 

ваш вопрос касается отладки , самого важного искусства программирования. Никто не может найти ошибку для вас, вы должны сделать это сами. С помощью маленьких трюков.

change $profile = $_GET['profile']; to $profile = intval($_GET['profile'];)

change $result = mysql_query($sqlStr); в

 $result = mysql_query($sqlStr) or trigger_error(mysql_error()." in ".$sqlStr); 

и после двух строк вверху вашего кода, запустите его снова и посмотрите, что он скажет. если все равно ничего, у вас нет соответствующих записей в таблице.

 ini_set('display_errors',1); error_reporting(E_ALL);