Функцията mysql_fetch_row()
Функцията
mysql_fetch_row() обработва резултата запис по запис. Информацията се съхранява
в номериран масив и всяко поле в записа се съхранява като елемент на масив.
Синтаксисът на функцията mysql_fetch_row() е следния:
$resrow =
mysql_fetch_row( $result );
Както обясних по-рано, променливата $resrow
показва дали функцията е извлечена успешно, Променливата $resrow съдържа
стойностите в реда, в който е била получена информацията. Така стойността на
първото поле е достъпна като първи елемент на масива. Броя на елементите в
масива е равен на броя на колконите в резултатите. Когато използвате функцията
mysql_fetch_row() за да извличате резултати трябва да направите
следното:
[list=1]
[*]Да се свържете с базата данни.
[*]Да изберете
базата данни Mailinglist.
[*]Да създадете SQL заявка за извличане на
информацията от базата.
[*]Когато заявката се изпълни, всички записи от
таблицата Maildata са извлечени.
[*]Да създадете променлива ( примерно
$resrow ) и да съхраните броя на записите, върнати от функцията
mysql_fetch_row().
[*]Да използвате цикъла while, който да се изпълнява,
докато свърши редовете в резултата.
[*]Променливата $resrow е едномерен масив
в който ще се изпълняват редовете от таблицата Maildata.
[*]В тялото на
цилъла while за да извлечете ред по ред информацията от таблицата Maildata и да
визуализирате информацията в Web страницата.
Функцията
mysql_fetch_array()
Когато използвате функцията mysql_fetch_array()
записите се извличат под формата на асоциативен масив. В случая на асоциативен
масив, всеки елемент на масива съдържа поле от ред в резултата. Всеки елемент
има име на съответстващото поле в резултата. Синтаксисът на функцията
mysql_fetch_array() е :
$resrow = mysql_fetch_array($result);
В
горния синтаксис
[*]Променливата $result позната под името идентификатор
на резултата, съдържа резултата, върнат от функцията
mysql_query().
[*]Променливата $resrow е асоциативен масив, съдържащ ред от
резултата, върнат от функцията mysql_fetch_array().
[*]Първият елемент на
масива $resrow съдържа стойност на първото поле на резултата. Етикетът на
елемента съвпада с името на първото поле в таблицата. Другите елементи на масива
са съответни на другите полета в таблицата.
Предимството на използването
на функцията mysql_fetch_array() пред функцията mysql_fetch_row() e, че не ви се
налага да помните реда в полетата на таблицата.
Когато се използва
функцията mysql_fetch_array() за извличане на информацията, трябва да извършите
следното:
[list=1]
[*]Да се свържете с базата данни.
[*]Да изберете
базата данни Mailinglist.
[*]Да създадете SQL заявка за извличане на
информацията от базата.
[*]Заявката се записва в променливата напримерно
$MySQLQuery.
[*]Променливата $MySQLQuery се подава като параметър на
функцията mysql_query(), която изпълнява заявката и връща резултата в
променливата $result.
[*]Да създадете променлива ( примерно $resrow ) и да
съхраните броя на записите, върнати от функцията mysql_fetch_row().
[*]Да
използвате цикъла while, който да се изпълнява, докато свърши редовете в
резултата.
[*]Променливата $resrow е едномерен масив и неговият първи елемент
съхранява стойността на първото поле на таблицата Maildata. Името на полето е
присвоен като етикет на елемента.
[*]В тялото на цикъла while за да извлечете
ред по ред информацията от таблицата Maildata Чрез използване на функцията
mysql_fetch_array() и да визуализирате информацията в Web
страницата.
Обновяване на информацията в
таблица
Видяхте как може да вмъквате информация в таблица, по същия
начин можете и да я обновявате информацията, съхранена в таблица. За целта се
използват командите update на MySQL. Когато се обновява информация в таблица, е
добра идея да се визуализира информацията, преди да се промени. Извършването на
обновяването на информация в таблица обикновено се извършва по-следния
начин.
[*]Първо трябва да приемете информацията в HTML страница кой запис
трябва да се обнови. Тзи страница обикновено включва уникално поле, което
обикновено е първичен ключ.
[*]Когато потребителя натисне бутона Submit, се
изпълнява PHP скрипт.
[*]Скриптът осъществява връзка с MySQL и избира база
данни
[*]След това заявката се предава на MySQL. Заявката се специфика с
помощта на клаузата where. условието използвано в клаузата where, осигурява, че
само един запис ще се върне от заявката.
[*]След това върнатата информация се
препраща към браузъра
[*]След това информацията се визуализира в HTML форма,
създадена с PHP скрипт.
[*]Контролите в HTML страницата показват стойностите
от върнатия резултат. Формата се визуализира в браузъра.
[*]Потребителя прави
необходимите промени в информацията и натиска бутона Submit, за да покаже, че
информацията трябва да се обнови.
[*]Друг PHP скрипт осъществява нова връзка
с базата и обновява информацията в таблицата, която използва командата
update.
[*]Заявката се изпълнява чрез функцията
mysql_quert().
[*]Върнатата стойност показва дали информацията е била
обновена успешно
Следващия код създава HTML, която показва всички
записи, намиращи се в таблицата Maildata. Всеки запис съдържа препратката
редактиране. Когато потребителят избере тази препратка, той може да промени
информацията в записа. При избиране на препратката информацията в полето Email
на съответния запис се предава на следващата HTML страница. Новата HTML страница
ще визуализира запис за редактиране. Запишете следващия код.
| <html> <body> <?php $connection = mysql_connect ("localhost", "root", "") or die ("Не може да се осъществи връзка със сървара"); $selectdb = mysql_select_db("Myailinglist") or die ("Не може да се изберете базата данни"); echo "Базата данни е избрана успешно"; $sqlquery = "SELECT * from Maildata"; $queryresult = mysql_query($sqlquery) or die ("Заявката не може да се изпълни"); while ($row = mysql_fetch_array($queryresult)) { echo "ИМЕ: "; echo .row["Name"].; echo <br>"; echo "e-mail: "; echo .row["Email"].; echo <br>"; echo "Втори e-mail: "; echo .row["Secondaryemail"].; echo <br>"; <a href="displayform.php?email=".row["Email"]."">Редактиране</a> } ?> </body> </html> |
| <html> <body> <form name="Maildata" method="Post" action="update.php"> <?php $connection = mysql_connect ("localhost", "root", "") or die ("Не може да се осъществи връзка със сървара"); $selectdb = mysql_select_db("Myailinglist") or die ("Не може да се изберете базата данни"); echo "Базата данни е избрана успешно"; $sqlquery = "SELECT * from Maildata WHERE Email='$email'"; $queryresult = mysql_query($sqlquery) or die ("Заявката не може да се изпълни"); If($row = mysql_fetch_array($queryresult)) { echo "ИМЕ: "; echo .row["Name"].; echo <br>"; echo "e-mail: "; echo .row["Email"].; echo <br>"; echo "Втори e-mail: "; echo "<input type="text" name="Secondary" value=".row["Secondaryemail"]">"; echo <br>"; <input type="hiden" name="email" value=".row["Email"]"> <input type="submit" name="Submit" value="Изпрати"> } ?> </body> </html> |
| <html> <body> <?php $connection = mysql_connect ("localhost", "root", "") or die ("Не може да се осъществи връзка със сървара"); $selectdb = mysql_select_db("Myailinglist") or die ("Не може да се изберете базата данни"); echo "Базата данни е избрана успешно"; $sqlquery = "Update Maildata SET Secondaryemail='$secondaryemail' Where Email='$email'"; echo $sqlquery; result="mysql_quert($sqlquery) or die ("Не може да се изпълни заявката"); echo "Записът е обновен успешно"; ?> </body> </html> |
MySQL отговори:
Can't connect to MySQL server on 'localhost' (10061)
помощ, какво да правя?