Jump to content
  • 0

отображение содержимого из базы данных


JESS
 Share

Question

Ошибка сосотоит:

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in z:homelocalhostwwwnew_testlook.php on line 11

Не занаю что сделать,

<?
include "./conn.php";
$global_db_connection = mysql_connect("$dbHost", "$dbUser", "$dbPass");
mysql_select_db($dbName, $global_db_connection);

$query_string = "SELECT ID, name FROM namelist
WHERE ID = 'id'
AND Name = 'name'
";

while (list($id, $name) = mysql_fetch_row($query_string))
{
echo $id;
echo $name;
}
mysql_close();
?>

Link to comment
Share on other sites

13 answers to this question

Recommended Posts

  • 0

Если я понял правильно то id & name - это пременные? то

$query = mysql_query("SELECT ID, name FROM namelist WHERE ID = '".$id."' AND Name = '".$name."'");

т.к.

Спасибо, щас ошибок нету, но ничего не показывает на экране???

скорее всего говорит что данные соответствующие запросу в базе не найдены

З.Ы. ежели $id, $name числовые значения, то одинарные кавычки можно (нужно) убрать

Link to comment
Share on other sites

  • 0

я пока новичек в Php, вот я такой сделал.... , но мне кажется поростой...

<?php
include "./conn.php";

$link_id = mysql_connect("$dbHost", "$dbUser", "$dbPass");
mysql_select_db("$dbName");
$result = mysql_query("SELECT * FROM $tablename", $link_id);

while($query_data = mysql_fetch_row($result)) {
echo "$query_data[1]";
echo "
";

}
?>

Link to comment
Share on other sites

  • 0

Тебя немного не поймут.

Напиши точнее название таблицы и названия полей которые ты хочешь прочитать из БД. И вообще что ты хочешь сделать?

1. Ты хочешь прочитать и вывести на экран все записи таблицы (всех полей или каких-то отдельных)?

2. Ты хочешь прочитать строку с каким-то (какими-то) поределенным ID?

другие варрианты.....

ЗЫ прочитать таблицу дело-то не хитрое, ты же уже вроде сам понял что-к чему.

Только вот в функциях mysql_connect, mysql_select_db, mysql_query (и.т.д) имена переменных не стоит заключать в кавычки. Это я видно в первом своем сообщении по дури написал (просто ошибся) в кавычках, а ты проглотил.

Это не правильно, но в то же время это будет работать, так как в кавычки заключается обычно текстовая информация, но имена переменных действуют как имена переменных. Просто лишние кавычки в коде ни к чему.

И еще: При подключении к одному серверу SQL, смысл переменной $link_id теряется совершенно. То есть подключяться к SQL серверу можно просто функцией mysql_connect(), а SQL запросы выполнять функцией mysql_query() без указателя $link_id на соединение с MySQL.

<?php
include "conn.php";

mysql_connect($dbHost, $dbUser, $dbPass);
mysql_select_db($dbName);
$result = mysql_query("SELECT * FROM $tablename");

while($query_data = mysql_fetch_row($result)) {
echo $query_data[1];
echo "
";
}

mysql_close();
?>

Link to comment
Share on other sites

  • 0
Я хочю сделать коталог ссылок

Ну это конечно хорошо что ты начинаешь изучение PHP, а не просишь писать готовые скрипты.

Но все же твои начинания пока еще не выдерживают критики. Не отчаивайся, это нормально. Я сам так начинал.

Тем не менее привыкай к тому, что бы сразу строить правильный и рациональный алгоритм любой (даже самой пустяковой) операции.

Представь что ты переходишь улицу и твои алгоритм потроен примерно так:

1. Смотрим на сигнал светофора и анализируем его.

2. Если горит красный, значит останавливаем процесс перехода улицы.

3. Если горит желтый, значит ожидаем что скоро загорится зеленый, но не переходим улицу.

4. Если горит зеленый, значит переходим улицу.

Как ты думаешь чем этот алгоритм не идеален?

Что бы не мучать тебя разгадыванием ребусов, я отвечу сам: - Дело в том что светофор может не работать вообще, тогда ты не будешь знать что вообще делать в этом случае, а такая ситуация вполне возможна даже если у светофора 100 лет гаррантии беспрерывной работы. Надеяться на его безупречную работу не стоит, любую ситуацию необходимо предвидеть и писать сценарии для именно таких непредвиденных ситуаций.

В твоем случае ты читаешь таблицу и подразумеваешь что в ней что-то есть.

А вдруг таблица пустая?

А вдруг вообще нет такой таблицы?

А вдруг вообще нет такой Базы Данных?

А вдруг вообще не удалось подключиться к серверу SQL?

Варрианты решения:

<?php
include "conn.php";

if (!mysql_connect($dbHost, $dbUser, $dbPass)) die("Не удалось подключиться к серверу MySQL ".$dbHost);
if (!mysql_select_db($dbName)) die("Не удалось выделить Базу Данных".$dbName);
$result = mysql_query("SELECT * FROM $tablename");

// Проверяем есть ли записи в таблице $tablename
if (mysql_num_rows($result) != 0) {
// Выполняем сценарий вывода если в таблице есть записи
while($query_data = mysql_fetch_row($result)) {
echo $query_data[1];
echo "
";
}
} else {
// Выводим сообщение если таблица пустая
echo "Извините, но в данный момент каталог ссылок пуст";
}

mysql_close();
?>

Link to comment
Share on other sites

  • 0

спасибки :o , но есть еще вопрос>

Не знаю как правельно выразиться, так что выдам пример:

Нажатием на ссылку, происходит изменение Операторов MySQL, и еще можно сказать как бы отсортировать данные по вкусу из базы данных... =?)

Link to comment
Share on other sites

  • 0
Нажатием на ссылку, происходит изменение Операторов MySQL

Чет я не понял ниче. Вообще-то в любой HTML страничке по нажатию на ссылку происходит элементарный переход по указанному в ссылке адресу, ну еще можно по нажатию на ссылку в HTML выполнять сценарии JavaScript, но никак не сценарии PHP, а тем более с какого чуда по нажатию на ссылку будут меняться какие-то "операторы" MySQL?

ЗЫ правда не понял о чем-ты?

Любые изменения в MySQL может выполнять PHP скрипт, а то что у тебя в браузере отображается - это всего навсего уже готовая HTML страничка. А вот как ты напишешь скрипт PHP так он и будет выполнять любые изменения где угодно.

По ссылке ты можешь просто указать адрес нужного PHP скрипта в теге:

<a href="my_script.php">Сценарий PHP</a>

А в самом скрипте my_script.php ты сам будешь писать свои сценарии, в том числе и изменения в БД MySQL.

отсортировать данные по вкусу из базы данных?

Да очень просто:

$result = mysql_query("SELECT * FROM $tablename WHERE cat = 1 OR cat = 2 ");

Из таблицы выделятся записи только со значением в поле cat 1 или 2.

$result = mysql_query("SELECT * FROM $tablename WHERE cat = 1 OR cat = 2 ORDER BY name");

Тоже самое, только все выделенные строки cat 1 или 2 будут отсортированы по именам в поле name

$result = mysql_query("SELECT * FROM $tablename WHERE cat = 1 OR cat = 2 ORDER BY name LIMIT 0,10");

Тоже самое, только с установленным лимитом строк. Выделятся только первые 10 строк.

В общем я так думаю, что тебе стоит заняться изучением не только PHP но и MySQL. В противном случае ты будешь черпать информацию по капельки, всех замучаешь вопросами и достигнув какой-то цели (например каталог ссылок) у тебя так и останутся пробелы в знании PHP и MySQL.

Если тебе нужен просто каталог ссылок, а не изучение PHP то лучше воспользуйся готовыми скриптами, их полно в сети.

Link to comment
Share on other sites

  • 0

2Vladiger

я не совсем с вами согласен по поводу алгоритма. Прежде чем переходить дорогу надо подумать как это удобней. Можно пойти напрямую по светофору, но лучше подумать. А потом еще раз подумать стратегически а не тактически. Лучше может будет перейти по переходу а не по светофору? Хоть дольше зато безопасней. Я о файловой системе. Можно каталог ссылок через бд сделать а можно попытаться через файловую систему.

Написать форму по отправке данные из формы добавляются в файл. На другой странице отображается его содержимое. При желании можно соединить страницу формы со страницей где сие дело отображается.

Правда чтобы сортировать бд все-таки понадобится. Но это уже по желанию разраба:o

Link to comment
Share on other sites

  • 0

скачивать я не хочю там не так их и много хороших, и дизайн и них суперский, делаю свой. Человек создан что бы спремиться куда то, ане просто брать готовое и выдовать за свое.

Вот это я заню как их сортировать..., kak их сортировать нажатием на ссылку?

$result = mysql_query("SELECT * FROM $tablename WHERE cat = 1 OR cat = 2 ORDER BY name LIMIT 0,10");

Link to comment
Share on other sites

  • 0
2Vladiger

я не совсем с вами согласен по поводу алгоритма. Прежде чем переходить дорогу надо подумать как это удобней. Можно пойти напрямую по светофору, но лучше подумать. А потом еще раз подумать стратегически а не тактически. Лучше может будет перейти по переходу а не по светофору?

Соглашаться или не соглашаться - это ваше право. Ибо именно это согласие или не согласие является причиной всех ошибок человечества, а так же достижений того же чловечества.

Но мне не хочется продолжать эту тему про алгоритм перехода улицы или каталога ссылок на файловой системе или с использованием MySQL.

Во первых потому что само обсуждение этих алгоритмов уже является флудом ибо про светофор было приведено в пример. Не стоит цепляться к мелочам и фантазиям где переходить улицу, как переходить, а может лучше на такси уехать и.т.д и.т.п...

Человек строит каталог ссылок используя MySQL. Для наглядного примера где в его скрипте недоработанные моменты я и привел этот алгоритм.

Кстати с файловой системой тоже самое:

Файл может быть пустой?

Файла вообще может не быть?

Приведите примеры сами, какие еще могут возникнуть ситуации? И как раз эти ситуации в скриптах лучше всего предвидеть и писать для них специальные сценарии...

PS И в случае если светофор не работает как раз и требуется такой сценарий, который определит: - Так как-же переходить улицу?

А я бы так вообще, нажрался до чертиков и попер через дорогу похрену где, главное быстрей добраться до противоположной стороны проезжей части...

Link to comment
Share on other sites

  • 0

Yarik Voronov

$query = mysql_query("SELECT ID, name FROM namelist WHERE ID = '".$id."' AND Name = '".$name."'");

гораздо удобней

$query = mysql_query("SELECT id, name FROM namelist WHERE id='$id' AND name='$name'");

Vladiger

mysql_num_rows($result) != 0

плохой стиль программирования. надо

mysql_num_rows($result) > 0

а можно попытаться через файловую систему

можно, но следует постоять немножко перед светофором чтобы обдумать все недостатки такого подхода (при условии что сервер БД таки доступен):

1. нужно разработать "свой API" (разработать формат файла, как распарсить файл, собрать, посортировать и т.д.)

2. подумать о скорости (если проект серьезный)

3. подумать об удобстве

Правда чтобы сортировать бд все-таки понадобится.

а вот и не обязательно

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy