Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   Кто подскажет как будет выглядеть элементарные записи. (http://forum.oszone.net/showthread.php?t=31488)

Kuznetsov 17-10-2003 02:08 215530

У меня книга по php очень по идиотски написана. Практиески ни один скрипт из нее не работает. (освой php за 24 часа)

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

Открыть базу MySQL
Счтать от туда что-либо
Записать туда что либо

Для примера
база baze
таблица tabl
столбец stolb
строка 3

root, localhost, parol.


Prisoner 17-10-2003 04:46 215531

Не совсем разумею, что значит
Цитата:

Кто подскажет как будет выглядеть элементарные записи.
, но ничего кроме как старого примера на ум не приходит... уточните то, что вам угодно узнать. Разверните вопрос.

Код:

 //да означим переменные опосля возъюзав оные
 $DBName = "baze";
 $Server = "some_server";
 $SQLServerName = "some_server";
 $Login = "login";
 $Password = "password";
 $Query_Str = "SELECT who AS 'Login', server AS 'Name of server', password AS 'Password' FROM tabl";

 //коннект
 $LinkID = mysql_connect($SQLServerName, $Login, $Password) or die("Unable create connection!");
 //подсоединение к нужной БД
 if (!mysql_select_db($DBName,$LinkID))
   {echo "<center><h1><p>Can't select database '$DBName'</p></h1><center>"; exit();}
 //выборка
 if (($ResID = mysql_query($Query_Str,$LinkID))==0)
   {echo "<center><h1><p>Our assortment is disabled</p></h1><center>"; exit();}


Vlad Drakula 18-10-2003 23:11 215532

Kuznetsov
Позволь с тобой не согласиться.

Книга может и не полная, все основное там есть я ее всем начинающим рекомендую.
Но после нее надо обязательно читать настоящие доки.

Если есть желание то могу выслать или выложить на сервер.

Kuznetsov 21-10-2003 22:08 215533

Подробнее хотелось бы остановится на

$Server = "localhost";
$SQLServerName = "localhost";
$Login = "root";

Правильно ли это?

И подробнее на выборке

if (($ResID = mysql_query($Query_Str,$LinkID))==0)

{echo "<center><h1><p>Our assortment is disabled</p></h1><center>"; exit();}

Как прописывается таблица

Ячейка

То есть как достать данные из таблицы z ячейку из столбца x и строки y.

Prisoner 22-10-2003 03:59 215534

1) Почему не правильно? Если твои данные таковы, то почему нет? Да... в примере переменная $Server не нужна, копи/паст не всегда рулит :).
2) Таблица прописывается не в функции, а в запросе: $Query_Str = "SELECT who AS 'Login', server AS 'Name of server', password AS 'Password' FROM tabl"; Здесь код запроса в отдельной переменной лежит, чтобы не валялся по всему файлу в текстовом виде. Ячейки задаются там же, в примере это ячейки с именами who, server, password? которые в сформированной запросом табличке будут иметь имена идущие за AS. Строки ты можешь ограничивать по какому-либо признаку, скажем имя сервера или пароль, или если у каждой строки есть уникальный номер (оч удобно), то по нему. Делается это пристыковкой к запросу условия, скажем так "WHERE server='localhost'".

Чтобы все понять, прочти на русском языку предложение запроса и все станет ясно... и RTFM :)

Kuznetsov 24-10-2003 23:32 215535

Правильно ли я понял?

открытие таблицы

$Query_Str = "SELECT who AS 'Login', server AS 'localhost', password AS 'Password' FROM table AS 'z' ";

и нужно ли ее закрывать? (если нужно, то как это прописывается)


Можно написать на примере считывания данных.

$a=$Query... c ячейкой [x,y]

Prisoner 25-10-2003 02:01 215536

Таблица не может быть открыта в том смысле в каком ты привык это понимать для файлов. БД это вещь которая подразумевает в первую очередь множественный к ней доступ по сему стараются держать заблокированные данные в таком состоянии как можно меньше, а в случае чтения данных так вообще такого не происходит - итого - таблицу открывать не надо и как следствие закрывать тоже, из таблиц(ы) получают данные - делают выборку (select)? после этого тебе отдается "указатель" на таблицу с результатами твоей выборки.

Думается мне ты не четко представляешь организацию данных в БД (да простится мне эта тавтология).  Есть рабочая область, она описывается набором сущностей, у каждой сущности есть атрибуты, сущности могут быть связаны. По сути в первой нормальной форме (представление данных в виде таблице в виде определенным правилами этой формы) каждая сущность описывается таблицей, где колнки - атрибуты.
Пример: Человек - сущность
Атрибуты - рост, вес, цвет глаз, личная серия. Теперь таблицей мы можем описать все человечество :). Записей (строк) будет догадайся сам (пересчитаешь китайцев, скажи :) ). Твоя задача
Цитата:

c ячейкой [x,y]
для этой будет сводится скажем к такой -  какой цвет глаз у чела с номером T-101:
Решение select y_color from humans where id='T-101'

Где что, думаю разберешься. И еще... документации в сети навалом, к чему тебе мое пространная болтовня с кучей принципиальных ошибок ? :). А форум суть реализации системы вопрос-ответ, а не учебное заведение.

Kuznetsov 26-10-2003 00:52 215537

Создана база с помощью MySQL Front
база test
в ней таблица user
в таблице столбцы со значениями.
a, b.

1, 2
3, 4
5, 6

Результат - вывод B при a = 1.

текст программы

<?php
$DBName = "test";
$Server = "localhost";
$SQLServerName = "";
$Login = "root";
$Password = "";
$table = "user";

$Query_Str = "SELECT who AS 'Login', server AS 'Server', password AS 'Password' ";

$LinkID = mysql_connect($SQLServerName, $Login, $Password) or die("Unable create connection!");

if (!mysql_select_db($DBName,$LinkID))
{echo "<center><h1><p>Can't select database '$DBName'</p></h1><center>"; exit();}

if (($ResID = mysql_query($Query_Str,$LinkID))==0)
{echo "<center><h1><p>Our assortment is disabled</p></h1><center>"; exit();}

$Query_Str = "SELECT select b from a where id='1' AS 'Login', server AS 'Server', password AS 'Password' FROM 'table'";  

print "$Query_Str";
?>

В результате выводится только "Our assortment is disabled"

Где напортачено? (Все сделано с ваших слов)

Prisoner 26-10-2003 06:53 215538

Море ошибок... прочтите документацию и разберитесь со всем раз и навсегда. Это очень просто, стандарт весь на ладони.

Kuznetsov 27-10-2003 20:14 215539

В инете много чего по кусочкам…
И в книге у меня тоже кусочки. А то, что не кусочками – не работает.

Наверно но этому я прошу показать как будет выглядеть элементарное ЦЕЛЫМ примером. О том, что сборка из кусочков с ошибками, догадался, когда результат…

Или это не элементарный вопрос, а очень сложный?

Prisoner 27-10-2003 23:05 215540

Вопрос вопросом, но имхо на форуме задаются вопросы в которых ты не можешь разобраться по тем или иным причинам. Здесь я не вижу причин чтобы прочесть документацию, которой право же, МОРЕ. Причем тут одна единственная книжка? Материала навалом, а здесь могут помочь лишь кратким советом да направить в сторону копания.

Kuznetsov 28-10-2003 08:52 215541

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

Соединить кусочки из книши не удалось. Что вышло из соединений кусочков ответов на форуме - сами видите... (еще причины нужны?)

[s]Исправлено: Kuznetsov, 10:00 28-10-2003[/s]

Prisoner 28-10-2003 11:06 215542

Соединить то что получено на форуме и из книжки (черт подери, почему одна одна всего???) и все то чего недоастает подчерпнуть из других источников... когда наконец, научимся искать ответы сами?

PS все... в эту тему ни ногой, смысла нет.

PPS Kuznetsov, прости меня за тон, но я начинаю нервничать.

Kuznetsov 28-10-2003 13:44 215543

Почему книжка всего одна? Да очень просто, что бы из нее азы (грамматику, синтаксис, правила написания) узнать, а специфику и нюансы можно в интернете найти. СПРАВОЧНИКОВ и инете действительно много, но азы там не разбираются.

Есть подозрение, что книги пишут профи, которые много знают, а выразить простым понятным языком простые вещи не могут. Большинство книг начинается со слов (если вы хорошо владеете перлом, дельфи и Си и прочими, без труда разберетесь). Это все равно, что объяснять css без основ html...

Prisoner, если трудно написать несколько строк прграммы, то нервничать зачем? Всего-то делов, скопировать текст, и исправить несколько ошибок, сравнив правильный текст и неправильный, думаю вопросов у меня уже не будет, так как ошибки наверняка "синтаксические".

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

А форумы для того и существуют, что бы быстрее и точнее отыскивать ответы.

(а за чайника в MySQL я не обижаюсь, пока что чайник я и есть):)

Prisoner 29-10-2003 08:42 215544

Цитата:

Создана база с помощью MySQL Front
база test
в ней таблица user
в таблице столбцы со значениями.
a, b.

1, 2
3, 4
5, 6

Результат - вывод B при a = 1.

текст программы

<?php
$DBName = "test";
$Server = "localhost";
$SQLServerName = "";
$Login = "root";
$Password = "";
$table = "user";

$Query_Str = "SELECT who AS 'Login', server AS 'Server', password AS 'Password' ";

$LinkID = mysql_connect($SQLServerName, $Login, $Password) or die("Unable create connection!");

if (!mysql_select_db($DBName,$LinkID))
{echo "<center><h1><p>Can't select database '$DBName'</p></h1><center>"; exit();}

if (($ResID = mysql_query($Query_Str,$LinkID))==0)
{echo "<center><h1><p>Our assortment is disabled</p></h1><center>"; exit();}

$Query_Str = "SELECT select b from a where id='1' AS 'Login', server AS 'Server', password AS 'Password' FROM 'table'";  

print "$Query_Str";
?>

В результате выводится только "Our assortment is disabled"

Где напортачено? (Все сделано с ваших слов)
Оки... ошибка в том, что запрос в строках кода
Код:

if (($ResID = mysql_query($Query_Str,$LinkID))==0)
{echo "<center><h1><p>Our assortment is disabled</p></h1><center>"; exit();}

отправляемый к серверу БД будет таким - SELECT who AS 'Login', server AS 'Server', password AS 'Password, а не таким какой вам нужен - SELECT select b from a where id='1' AS 'Login', server AS 'Server', password AS 'Password' FROM 'table'. Поглядите внимательнее, вы же означивайте переменную строковую запросом совсем не к вашей таблице, да и странно, что к своей таблице текст запроса заносится ПОСЛЕ выполнения запроса... в общем дедло будет выглядеть так -


Код:

<?php
$DBName = "test";
$Server = "localhost";
$SQLServerName = "";
$Login = "root";
$Password = "";
$table = "user";

//запрос над реализацией которого вы так долго бились - выбрать строку у которой первое поле=1 и вернуть лишь часть этой строки, то есть поле b
$Query_Str = "SELECT b FROM 'table' where a='1'";  


$LinkID = mysql_connect($SQLServerName, $Login, $Password) or die("Unable create connection!");

if (!mysql_select_db($DBName,$LinkID))
{echo "<center><h1><p>Can't select database '$DBName'</p></h1><center>"; exit();}

if (($ResID = mysql_query($Query_Str,$LinkID))==0)
{echo "<center><h1><p>Our assortment is disabled</p></h1><center>"; exit();}

print "$Query_Str";
?>

На будущее - приглядитесь к синтаксису запроса SQL, ошибки были в составлении оного, остальное не принципиально.

Kuznetsov 31-10-2003 02:00 215545

Пока что результат тот же.

Может ли виновата быть база MySQL?
типы a и b прописывал как int.

форум php работает без проблем.

В чем может быть проблема?

Prisoner 31-10-2003 23:30 215546

Если сервер БД и может быть виноват, то лишь в исключительно малой вероятности... поглядите еще раз - ручаюсь увидите место с ошибкой человека, тогда вопрос о глючности софта отпадет сам собой... не беда, что встанет другой... вопрос я имею ввиду.

Kuznetsov 01-11-2003 23:57 215547

Может по умолчанию ограничение на права считывания, записи и прочего? Где это можно просмотреть в MySQL Front или как-то еще проверить? Больше ничего в голову не приходит...

Kuznetsov 05-11-2003 20:04 215548

База вся рабочая, получается данные в нее вносить, изменять, и даже выводить ВСЮ таблицу.

НО ВЫВЕСТИ b ПРИ а=... НЕ ПОЛУЧАЕТСЯ!!!!

попробовал записать через ....

$Query_Str = mysql_query( "SELECT b FROM $table WHERE b= '1'");
print "$Query_Str";

В ответ -

Resource id #3

КАК ПРАВИЛЬНО ЭТО НАПИСАТЬ???

Кстати попробовал было на практике пример из "освой php за 24 часа" - на двух странцах кода насчитал 9 ошибок. (это те, которые я как чайник увидел). Вот и учись по таким книгам...

Prisoner 06-11-2003 00:18 215549

Kuznetsov
Цитата:

Только для операторов SELECT, SHOW, EXPLAIN или DESCRIBE функция mysql_query() возвращает идентификатор ресурса, FALSE если запрос не был выполнен корректно. Для других типов SQL-операторов mysql_query() возвращает TRUE при успехе, FALSE при ошибке. Не-FALSE return-значение означает, что запрос был правильным и может быть выполнен на сервере.
В вашем случае в переменную $Query_Str записывается как раз идентификатор ресурса, что говорит о корректном выполнении запроса к БД. Теперь дело за малым - используя это идентификатор ресурса выводить скриптом данные как вам угодно. Для определения параметров таблицы которая вернулась к вам в результате запроса и работы с ней используйте mysql_num_rows(), mysql_fetch_array(), mysql_fetch_row().


Время: 23:53.

Время: 23:53.
© OSzone.net 2001-