<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SERPBOT</title>
	<atom:link href="https://www.serpbot.org/en/feed" rel="self" type="application/rss+xml" />
	<link>https://www.serpbot.org/en</link>
	<description>Kostenfreies Ranking Check &#38; Track Tool</description>
	<lastBuildDate>Mon, 15 Jun 2026 19:39:12 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>
	<item>
		<title>Backlink Checker</title>
		<link>https://www.serpbot.org/en/backlink-checker</link>
		
		<dc:creator><![CDATA[Dr.-Ing. Erik Neitzel]]></dc:creator>
		<pubDate>Sun, 20 Dec 2020 23:49:09 +0000</pubDate>
				<category><![CDATA[SEO]]></category>
		<guid isPermaLink="false">https://www.serpbot.org/?p=1937</guid>

					<description><![CDATA[<div class="slide-text-bg2"><span>Backlink Checker: Monitor and Check Your Backlinks Continuously A backlink checker shows you which websites link to your site &#8211; and how valuable thos</span></div>
<div class="slide-btn-area-sm"><a href="https://www.serpbot.org/en/backlink-checker" class="slide-btn-sm">Read More</a></div>
The post <a href="https://www.serpbot.org/en/backlink-checker">Backlink Checker</a> first appeared on <a href="https://www.serpbot.org/en">SERPBOT</a>.]]></description>
										<content:encoded><![CDATA[<h1>Backlink Checker: Monitor and Check Your Backlinks Continuously</h1>
<p>A backlink checker shows you which websites link to your site &ndash; and how valuable those backlinks are for your ranking. What matters is continuous monitoring of anchor text, follow status, domain and page authority and spam score. The SERPBOT backlink checker does this fully automatically.</p>
<p>We have already explained why <a href="https://www.serpbot.org/en/backlinks-what-how-why-and-with-what">backlinks</a> are important for evaluating the thematic relevance of a website from the point of view of a search engine like Google. At this point it should be about how you can check your backlinks.</p>
<h2>Continuous backlink monitoring</h2>
<p>When it comes to backlink checking, it may make sense to check whether there are any backlinks for your website at all. But as soon as you have received at least one noteworthy backlink from a thematically relevant website, you will pay close attention to whether you can keep this backlink over time or not. With every new backlink you receive, this question becomes increasingly important.</p>
<p>When looking for a backlink checker, you should therefore attach particular importance to the possibility of sustainable, continuous monitoring of your backlinks.</p>
<h2>Check the value of a backlink</h2>
<p>To answer the question of how much value a newly received (or recently lost) backlink has, you want to check various attributes of a backlink. This includes in particular:</p>
<ul>
<li>Time of receipt and loss</li>
<li>Backlink anchor text</li>
<li>Follow or nofollow</li>
<li>Domain Authority</li>
<li>Page authority</li>
<li>Spam score</li>
</ul>
<p>Let&#8217;s take a closer look at these attributes.</p>
<h3>Time at which a backlink was obtained and lost</h3>
<p>Of course, you want to know when which backlink came to you and when you may have lost it again in order to regain it if necessary.</p>
<h3>Backlink anchor text</h3>
<p>The keyword through which you are linked has an impact on the relevance rating that Google carries out as an influencing factor for your ranking. However, you don&#8217;t want to rank for money keywords either, as search engines will quickly recognize them as manipulation. The anchor text is an important attribute that you should keep an eye on for your backlinks.</p>
<h3>Follow or nofollow attribute</h3>
<p>A nofollow link does not inherit a PageRank and is therefore less valuable than a link that is not set to nofollow and thus recommends you directly with its own reputation. Whether a backlink that points to your website has been nofollowed is therefore of relevant importance when checking your backlinks.</p>
<h3>Domain authority</h3>
<p>The authority of every website can be assessed by applying factors such as the proximity of links to websites that are visited too much and have a high reputation. Of course, you don&#8217;t have to do this manually. Online services like MOZ do this via the <em>Domain Authority</em> output.</p>
<h3>Page authority</h3>
<p>Just as the domain itself has a basic authority, the respective subpage of this domain also has an authority, which results from the backlinks that this subpage has received from other websites. If you are linked from a page that itself has received many backlinks from the network, this is of higher value than if you are linked from a page that has no backlinks at all. So you want to check the page authority as well. MOZ issues the so-called <em>Page Authority</em> for this.</p>
<h3>Spam score</h3>
<p>If a website wants to artificially distinguish itself in the market, it will be noticed in the relevant link databases as a spam page. Such a rating is again based on a scale known as the spam score in the case of services like MOZ. Backlinks from pages with a high spam score have a certain toxicity that you don&#8217;t want in your backlink profile. You should therefore carefully check the <em>Spam Score</em> of each backlink.</p>
<h2>SERPBOT Backlink Checker</h2>
<p>The SERPBOT Backlink Checker does the fully automatic, regular check of your backlinks. All previously explained factors are taken into account. First, you select your saved web project:</p>
<div id="attachment_1939" style="width: 1034px" class="wp-caption alignnone"><img fetchpriority="high" decoding="async" aria-describedby="caption-attachment-1939" class="wp-image-1939 size-large" src="https://www.serpbot.org/wp-content/uploads/2020/12/backlink-checker-overview-en-1024x614.jpg" alt="Backlink Checker - Overview" width="1024" height="614" srcset="https://www.serpbot.org/wp-content/uploads/2020/12/backlink-checker-overview-en-1024x614.jpg 1024w, https://www.serpbot.org/wp-content/uploads/2020/12/backlink-checker-overview-en-300x180.jpg 300w, https://www.serpbot.org/wp-content/uploads/2020/12/backlink-checker-overview-en-768x460.jpg 768w, https://www.serpbot.org/wp-content/uploads/2020/12/backlink-checker-overview-en-1536x920.jpg 1536w, https://www.serpbot.org/wp-content/uploads/2020/12/backlink-checker-overview-en-2048x1227.jpg 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /><p id="caption-attachment-1939" class="wp-caption-text">Backlink Checker &#8211; Overview</p></div>
<p>You will then receive an overview of the attributes mentioned. These include the backlink itself, its anchor text, its page authority, its domain authority, its spam score, when it was first found, whether it is nofollow or not, and whether it is still valid or has since been lost.</p>
<div id="attachment_1941" style="width: 1034px" class="wp-caption alignnone"><img decoding="async" aria-describedby="caption-attachment-1941" class="wp-image-1941 size-large" src="https://www.serpbot.org/wp-content/uploads/2020/12/backlink-checker-examples-en-1024x502.jpg" alt="Backlink Checker - Examples" width="1024" height="502" srcset="https://www.serpbot.org/wp-content/uploads/2020/12/backlink-checker-examples-en-1024x502.jpg 1024w, https://www.serpbot.org/wp-content/uploads/2020/12/backlink-checker-examples-en-300x147.jpg 300w, https://www.serpbot.org/wp-content/uploads/2020/12/backlink-checker-examples-en-768x377.jpg 768w, https://www.serpbot.org/wp-content/uploads/2020/12/backlink-checker-examples-en-1536x753.jpg 1536w, https://www.serpbot.org/wp-content/uploads/2020/12/backlink-checker-examples-en-2048x1005.jpg 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /><p id="caption-attachment-1941" class="wp-caption-text">Backlink Checker &#8211; Examples</p></div>
<p>In this overview, a link is provided from each subdomain in order not to overload the list. You can quickly get a large number of backlinks, but that does not necessarily add value to your SEO project.</p>
<p>If you want to deny a backlink for your project to Google, you can use the <a href="https://search.google.com/search-console/disavow-links" target="_blank" rel="noopener noreferrer">Google Disavow-Tool</a>.</p>
<h3>Other Backlink tools</h3>
<p>You can track backlinks with these tools:</p>
<ol>
<li><a href="https://monitorbacklinks.com" target="_blank" rel="nofollow noopener noreferrer">https://monitorbacklinks.com</a> (from 25 $ monthly)</li>
<li><a href="https://de.semrush.com" target="_blank" rel="nofollow noopener noreferrer">https://de.semrush.com</a> (from 99,95 $ monthly)</li>
<li><a href="https://ahrefs.com" target="_blank" rel="nofollow noopener noreferrer">https://ahrefs.com</a> (from 99 $ monthly)</li>
<li><a href="https://www.sistrix.de" target="_blank" rel="nofollow noopener noreferrer">https://www.sistrix.de</a> (from 100 € monthly)</li>
<li><a href="https://www.xovi.de" target="_blank" rel="nofollow noopener noreferrer">https://www.xovi.de</a> (from 99 € monthly)</li>
<li>and more, with similar prices</li>
</ol>
<p>These backlink tools are often used by large, professional agencies. They are usually much too expensive for bloggers and also have a lot more functionality than you need.</p>
<p>Our SERPBOT Backlink Checker offers a very inexpensive alternative to the professional tools mentioned above, without sacrificing functionality. It is part of the regular Pro subscription with EUR 17.00 per month.</p>
<p>We wish you good luck tracking your backlinks.</p>
<h2>SERPBOT backlink checker vs. professional tools</h2>
<div style="overflow-x:auto;">
<table style="width:100%;border-collapse:collapse;margin:1.5em 0;">
<thead>
<tr>
<th style="padding:10px;text-align:left;border:1px solid #cfd8e6;background:#032c5c;color:#fff;">Criterion</th>
<th style="padding:10px;text-align:center;border:1px solid #cfd8e6;background:#032c5c;color:#fff;">SERPBOT backlink checker</th>
<th style="padding:10px;text-align:center;border:1px solid #cfd8e6;background:#032c5c;color:#fff;">Professional tools (Ahrefs, Semrush &hellip;)</th>
</tr>
</thead>
<tbody>
<tr>
<td style="padding:10px;text-align:left;border:1px solid #cfd8e6;">Price</td>
<td style="padding:10px;text-align:center;border:1px solid #cfd8e6;">included in PRO (&euro;17.00/month)</td>
<td style="padding:10px;text-align:center;border:1px solid #cfd8e6;">from approx. &euro;99/month</td>
</tr>
<tr style="background:#eef3f8;">
<td style="padding:10px;text-align:left;border:1px solid #cfd8e6;">Continuous monitoring</td>
<td style="padding:10px;text-align:center;border:1px solid #cfd8e6;">&#10003;</td>
<td style="padding:10px;text-align:center;border:1px solid #cfd8e6;">&#10003;</td>
</tr>
<tr>
<td style="padding:10px;text-align:left;border:1px solid #cfd8e6;">Anchor text, follow/nofollow</td>
<td style="padding:10px;text-align:center;border:1px solid #cfd8e6;">&#10003;</td>
<td style="padding:10px;text-align:center;border:1px solid #cfd8e6;">&#10003;</td>
</tr>
<tr style="background:#eef3f8;">
<td style="padding:10px;text-align:left;border:1px solid #cfd8e6;">Domain &amp; page authority, spam score</td>
<td style="padding:10px;text-align:center;border:1px solid #cfd8e6;">&#10003;</td>
<td style="padding:10px;text-align:center;border:1px solid #cfd8e6;">&#10003;</td>
</tr>
<tr>
<td style="padding:10px;text-align:left;border:1px solid #cfd8e6;">Minimum term</td>
<td style="padding:10px;text-align:center;border:1px solid #cfd8e6;">none</td>
<td style="padding:10px;text-align:center;border:1px solid #cfd8e6;">often</td>
</tr>
<tr style="background:#eef3f8;">
<td style="padding:10px;text-align:left;border:1px solid #cfd8e6;">For bloggers &amp; small projects</td>
<td style="padding:10px;text-align:center;border:1px solid #cfd8e6;">ideal</td>
<td style="padding:10px;text-align:center;border:1px solid #cfd8e6;">often oversized</td>
</tr>
</tbody>
</table>
</div>
<p><a class="btn btn-primary" href="https://www.serpbot.org/wp-login.php?action=register">Try free for 14 days</a> <a class="btn btn-primary" href="https://www.digistore24.com/product/261144" target="_blank" rel="nofollow noopener noreferrer">Get SERPBOT PRO</a></p>
<h2>Frequently asked questions (FAQ)</h2>
<h3>What is a backlink checker?</h3>
<p>A backlink checker finds and monitors the links pointing from other websites to your site, including attributes such as anchor text, follow status, domain and page authority and spam score.</p>
<h3>Why are backlinks important for ranking?</h3>
<p>Google treats backlinks as a recommendation; they influence how it assesses the topical relevance and authority of your site. The quality and history of your backlinks are therefore important SEO signals.</p>
<h3>What does the SERPBOT backlink checker cost?</h3>
<p>The backlink checker is part of SERPBOT PRO at &euro;17.00 per month with no minimum term. PRO also includes 1,500 daily keyword checks plus CPC, competition and search volume.</p>
<h3>How often should I check my backlinks?</h3>
<p>Ideally continuously. That way you notice immediately when you lose a valuable backlink or gain a new one, and can react accordingly.</p>The post <a href="https://www.serpbot.org/en/backlink-checker">Backlink Checker</a> first appeared on <a href="https://www.serpbot.org/en">SERPBOT</a>.]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Lesson 10: PHP GET and POST parameters</title>
		<link>https://www.serpbot.org/en/howto-php-mysql-php-get-and-post-parameters</link>
		
		<dc:creator><![CDATA[Dr.-Ing. Erik Neitzel]]></dc:creator>
		<pubDate>Mon, 30 Nov 2020 11:16:37 +0000</pubDate>
				<category><![CDATA[Web Development]]></category>
		<guid isPermaLink="false">https://www.serpbot.org/?p=1008</guid>

					<description><![CDATA[<div class="slide-text-bg2"><span>This lesson shows step-by-step how PHP inter-script GET and POST parameters are to be used in dynamic web pages. Within WordPress, you see that just by e</span></div>
<div class="slide-btn-area-sm"><a href="https://www.serpbot.org/en/howto-php-mysql-php-get-and-post-parameters" class="slide-btn-sm">Read More</a></div>
The post <a href="https://www.serpbot.org/en/howto-php-mysql-php-get-and-post-parameters">Lesson 10: PHP GET and POST parameters</a> first appeared on <a href="https://www.serpbot.org/en">SERPBOT</a>.]]></description>
										<content:encoded><![CDATA[<p>This lesson shows step-by-step how PHP inter-script GET and POST parameters are to be used in dynamic web pages. Within WordPress, you see that just by editing a post. Look at your browsers URL when your post editor is open. It says &#8220;?post=1008&#038;action=edit&#038;lang=en&#8221;. The variables &#8220;post&#8221;, &#8220;action&#8221; and &#8220;lang&#8221; are all variables being filled by WordPress according to what you just clicked in the backend. Let us talk about that.</p>
<h2>Why script parameters?</h2>
<p>Basically, you could use just one script (file) for your entire website project. However, your code will get rather long, maintenance will get harder and errors more difficult to track. So you may want to exclude certain functionality to other script files. However, every PHP script file works on its own. That means, you will need to transfer data from one script to another. You want to parameterize them.</p>
<p>Based on the purpose of the data being transferred and the origin that data is coming from, there are different types of methods to transfer parameters between PHP scripts. Two of the major methods we are going to discuss here are: GET and POST.</p>
<h2>PHP script parameters via GET</h2>
<p>GET parameters are coming from the URL, that means the web sites link address within the browser&#8217;s address line.</p>
<p>This is how a link within any HTML or PHP file looks like which points to a script.php whilst providing it with a GET parameter.</p>
<pre lang="html4strict" line="1">
<a href="script.php?var_a=abc123">Anchor text</a> 
</pre>
<p>The parameter&#8217;s name is &#8220;var_a&#8221;, which is completely irrelevant, you can name your parameters as you like, as long as you are able to distinguish between them. </p>
<p>If a user clicks the link above, he will get to the target called &#8220;script.php&#8221;. Within the file script.php, parameters can be obtained as follows:</p>
<pre lang="php" line="1">
<?php
     $your_variable_name = $_GET["var_a"];
?>
</pre>
<p>In this example, we&#8217;re trying to get a parameter called &#8220;var_a&#8221; and store its value in a variable called $your_variable_name. I would recommend naming that variable the same as as the parameter, but that is not necessary. In the example code above, the variable $your_variable_name will carry the value &#8220;abc123&#8221;, since that is what the link pointed to.</p>
<h2>PHP script parameters via POST</h2>
<p>POST parameters are most commonly coming from HTML forms as discussed within <a href="/how-to-use-html-form-elements">the HTML basics article</a>.</p>
<p>The following form will send a parameter named &#8220;var_b&#8221; to a script called script.php as soon as it is submitted.</p>
<pre lang="html4strict" line="1">
<form action="script.php" method="POST"> 
     <input type="text" name="var_b" /> 
     <input type="submit" /> 
</form>
</pre>
<p>The PHP script script.php now has to do the following to obtain parameter var_b:</p>
<pre lang="php" line="1">
<?php
     $your_variable_name = $_POST["var_b"];
?>
</pre>
<p>Of course you can name the variable storing the parameter&#8217;s value the same as the parameter again. In the example code above, the variable $your_variable_name will carry the value the user entered in the input text field.</p>
<p>This is all you need to transfer and collect parameter data between two script files using both GET and POST. You can see that what a CMS like WordPress is doing can be richly complex, yet the underlying structure is never complicated. Otherwise the whole system would suffer under its own weight.</p>
<h2>The next lessons:</h2>
<ul>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-how-to-build-a-website-php-navigational-skeleton-step-by-step">Lesson 11: How to build a website — PHP navigational skeleton step by step</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-how-to-connect-to-mysql-using-php">Lesson 12: How to connect to MySQL using PHP</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-php-login-script-tutorial">Lesson 13: PHP Login Script Tutorial</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-dynamic-php-based-mysql-data-readout-with-html-output">Lesson 14: Dynamic PHP based MySQL data management with HTML output</a></li>
</ul>The post <a href="https://www.serpbot.org/en/howto-php-mysql-php-get-and-post-parameters">Lesson 10: PHP GET and POST parameters</a> first appeared on <a href="https://www.serpbot.org/en">SERPBOT</a>.]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Lesson 9: How to use PHP functions</title>
		<link>https://www.serpbot.org/en/howto-php-mysql-how-to-use-php-functions</link>
		
		<dc:creator><![CDATA[Dr.-Ing. Erik Neitzel]]></dc:creator>
		<pubDate>Mon, 30 Nov 2020 11:16:32 +0000</pubDate>
				<category><![CDATA[Web Development]]></category>
		<guid isPermaLink="false">https://www.serpbot.org/?p=1006</guid>

					<description><![CDATA[<div class="slide-text-bg2"><span>This brief article shows step-by-step how functions and their parameters are to be used in dynamic web pages coded in PHP such as WordPress scripts. Functi</span></div>
<div class="slide-btn-area-sm"><a href="https://www.serpbot.org/en/howto-php-mysql-how-to-use-php-functions" class="slide-btn-sm">Read More</a></div>
The post <a href="https://www.serpbot.org/en/howto-php-mysql-how-to-use-php-functions">Lesson 9: How to use PHP functions</a> first appeared on <a href="https://www.serpbot.org/en">SERPBOT</a>.]]></description>
										<content:encoded><![CDATA[<p>This brief article shows <strong>step-by-step</strong> how <strong>functions</strong> and their <strong>parameters</strong> are to be used in <strong>dynamic web pages</strong> coded in PHP such as WordPress scripts. Functions become necessary to cluster all kinds of control structure usage, and they are a great way for WordPress themes and plugins to fully utilize the power of content management systems as a whole.</p>
<h2>Why use functions?</h2>
<p>Very often you will find yourself using the <strong>same code</strong> over and over again, especially when using string operations or connecting to databases. Normally you would need to <strong>copy and paste</strong> the same code several times, and as soon as you wanted to <strong>change something</strong>, you would need to do that as often as you copied the code. <strong>Functions</strong> can help 🙂</p>
<h2>Basic function design</h2>
<p>A simple function consists of the following elements:</p>
<ol>
<li>A name, which you could invent yourself (as long as the function does not already exist)</li>
<li>Optionally a parameter, which can be used to call the function</li>
<li>The content of the function, meaning the code to be executed when the function is called</li>
<li>Optionally a return value, if you want the functions call result to be saved within a variable, for example</li>
</ol>
<p>All that sounds pretty complicated. Well actually it&#8217;s pretty simple.</p>
<h2>A simple function example</h2>
<p>Let&#8217;s look at some examples. Let&#8217;s say you want your web application to say hello for as often as you like. But you&#8217;re not sure wether you want to rename &#8220;hello&#8221; to &#8220;welcome&#8221; at some later point in time. So you will first create a function like this:</p>
<pre lang="php" line="1">
<?php
     function sayHello() {
          echo "Hello";
     }
?>
</pre>
<p>That function can now be called within your script using just one line:</p>
<pre lang="php" line="1">
<?php
     sayHello(); // will result in "Hello"
?>
</pre>
<p>The text &#8220;Hello&#8221; will be presented whenever you call your function that way. If you wanted to change the Hello to something else, you&#8217;ll just have to do it at one single code line. That would be your first function.</p>
<h2>A parameterized function example</h2>
<p>Now let&#8217;s say you wanted to greet your logged in user by his name. The problem here is that every user has a different name, right? You can solve this using a parameter:</p>
<pre lang="php" line="1">
<?php
     function sayHello($username) {
          echo "Hello ".$username;
     }
?>
</pre>
<p>The function now has a parameter called &#8220;$username&#8221;, which is a variable that can be used to greet your user after saying hello. Pretty simple, right? The function has to be called a different way though:</p>
<pre lang="php" line="1">
<?php
     sayHello("Mike"); // will result in "Hello Mike"
?>
</pre>
<p>Of course you would not want to code the name Mike the hard way as presented above. You would just pass the login user name the user entered to that function:</p>
<pre lang="php" line="1">
<?php
     sayHello($login_name); // will result in "Hello" and the name the user provided after a successful login
?>
</pre>
<h2>A return value function example</h2>
<p>Now let&#8217;s say it&#8217;s not just about greetings, but about <strong>calculation</strong>. Let&#8217;s assume you often need to calculate the following: $a + $b &#8211; $c * 5. You can do this using a function like this:</p>
<pre lang="php" line="1">
<?php
     function calculateMe($a, $b, $c) {
          $result = $a + $b - $c * 5;
          return $result;
     }
?>
</pre>
<p>The function now expects three <strong>parameters</strong>: $a, $b, $c, will do the calculation you specified and returns the result to you. You can use that function like this:</p>
<pre lang="php" line="1">
<?php
     $myResult = calculateMe(1, 2, 3) // the variable "myResult" will carry the value of -12.
?>
</pre>
<h2>Some remarks on functions</h2>
<p>Variables you specified within a function are only available within that function &#8212; and the other way around. If you want to use a variable which was defined outside the function, use &#8220;global $variable_name&#8221; within the function. That way you can work with that variable as if it was defined within the function itself.</p>
<p>The other way around, however, needs to be done using the return value as shown in the example above.</p>
<p>These are the basics for working with functions, parameters and return values in PHP. Functions are great. Use them. They will make your life a lot easier 🙂</p>
<h2>Functions within WordPress</h2>
<p>Of course WordPress is using functions within every single script. Some of those functions can be used specifically within WordPress themes and plugins. For example, you may want to echo the current post title or show a list of all the blog posts within your database. You can get a full reference on those functions here: <a href="https://codex.wordpress.org/Function_Reference" target="_blank" rel="noopener noreferrer">https://codex.wordpress.org/Function_Reference</a></p>
<h2>The next lessons:</h2>
<ul>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-php-get-and-post-parameters">Lesson 10: PHP GET and POST parameters</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-how-to-build-a-website-php-navigational-skeleton-step-by-step">Lesson 11: How to build a website — PHP navigational skeleton step by step</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-how-to-connect-to-mysql-using-php">Lesson 12: How to connect to MySQL using PHP</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-php-login-script-tutorial">Lesson 13: PHP Login Script Tutorial</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-dynamic-php-based-mysql-data-readout-with-html-output">Lesson 14: Dynamic PHP based MySQL data management with HTML output</a></li>
</ul>The post <a href="https://www.serpbot.org/en/howto-php-mysql-how-to-use-php-functions">Lesson 9: How to use PHP functions</a> first appeared on <a href="https://www.serpbot.org/en">SERPBOT</a>.]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Lesson 8: PHP for loops and conditions</title>
		<link>https://www.serpbot.org/en/howto-php-mysql-php-for-loops-and-conditions</link>
		
		<dc:creator><![CDATA[Dr.-Ing. Erik Neitzel]]></dc:creator>
		<pubDate>Mon, 30 Nov 2020 11:16:26 +0000</pubDate>
				<category><![CDATA[Web Development]]></category>
		<guid isPermaLink="false">https://www.serpbot.org/?p=1004</guid>

					<description><![CDATA[<div class="slide-text-bg2"><span>This lesson shows step-by-step how to use PHP for loops and conditions within dynamic web pages. Those control structures are hugely important to generate </span></div>
<div class="slide-btn-area-sm"><a href="https://www.serpbot.org/en/howto-php-mysql-php-for-loops-and-conditions" class="slide-btn-sm">Read More</a></div>
The post <a href="https://www.serpbot.org/en/howto-php-mysql-php-for-loops-and-conditions">Lesson 8: PHP for loops and conditions</a> first appeared on <a href="https://www.serpbot.org/en">SERPBOT</a>.]]></description>
										<content:encoded><![CDATA[<p>This lesson shows step-by-step how to use PHP for loops and conditions within dynamic web pages. Those control structures are hugely important to generate dynamic content. Think about how WordPress is creating a list of all the posts you have in your database. All the HTML code that is needed to show that list is not written by hand, but generated by a PHP loop. To stick with that example, let us talk about loops.</p>
<h2>Implementing loops in PHP</h2>
<p>Why loops? Whenever we need to either <strong>repeat certain operations</strong> for a known or unknown <strong>amount of times</strong>, we are going to need <strong>loops</strong>. Loops can make it easier to just repeat the same <strong>output</strong> without having to copy/paste it several times, which makes it easier to <strong>maintain the code</strong>. The most important reason for loops, however, is when we want to <strong>dynamically build output</strong> based on certain <strong>conditions</strong>.</p>
<p>An example is building a table with a known number of columns and an unknown number of rows, whereas rows are to be repeated for as long as a database backend has data sets left for an entity. We will discuss database connectivity at a later time. For now, let&#8217;s settle on learning how to use <strong>basic loops</strong> in general.</p>
<h3>WHILE Loops in PHP</h3>
<p>A loop often used for different types of conditions is the <strong>while loop</strong>. To implement it, simple use the word while, with a <strong>condition in brackets</strong>, and the code to be repeated within the loop&#8217;s content area.</p>
<pre lang="php" line="1">
<?php
     $t = "I will never forget the semicolon at the end of a line<br />";
     $i = 0;
     while ($i < 10) {
          echo $t;
          $i++;
     }
?>
</pre>
<p>Please note that it is essential to <strong>count the amount of times</strong> your loop went through a cycle. You do that using an <strong>incrementation counter</strong>, as seen in the code above. If you don&#8217;t, your loop will run indefinitely.</p>
<h3>DO WHILE Loops in PHP</h3>
<p>Another method of using while loops is the do&#8230;while approach. It is the same as above, but the loops code will always be executed at least one time, and the condition is checked afterwards.</p>
<pre lang="php" line="1">
<?php
     $i = 0;
     do {
          echo "There will be text.";
          $i++;
     } while ($i < 10);
?>
</pre>
<h3>FOR Loops in PHP</h3>
<p>A different type of loop is the for loop. It needs three terms or expressions:</p>
<ol>
<li>The initialization term. It will set the initial or start value of your counter variable.</li>
<li>The abort condition. It compares the current counter value with the maximum value.</li>
<li>The loop operation. It increments or decrements the counter value.</li>
</ol>
<p>The following code shows the right syntax of a for loop:</p>
<pre lang="php" line="1">
<?php
     $t = "I will be repeated for some time.<br />"
     for ($i = 0; $i < 10; $++) {
          echo $ti;
     }
?>
</pre>
<p>A for loop is a pure counting loop and cannot run indefinitely, however you should pay attention to the terms you provide it with.</p>
<h2>Conditions in PHP</h2>
<p>We spoke about a counter condition for several times. However there are also other conditions which a while loop would accept and even need in some cases. Let&#8217;s look at some basic conditions:</p>
<h3>If &#8230; else</h3>
<p>The most rudimentary form of condition is the if&#8230;else condition. It separates different cases, its syntax is as follows:</p>
<pre lang="php" line="1">
<?php
     if ($i < 0) {
          echo "$i is smaller than 0, promised.<br />";
     } else {
          echo "I assure you, $i is currently either 0 or greater than 0.<br />";
     }
?>
</pre>
<p>Of course you could also put more than one if clause to the chain:</p>
<pre lang="php" line="1">
<?php
     if ($i > 10) { ... }
     else if ($i < 5 ) { ... }
     else { ... }
?>
</pre>
<p>Please note that &#8220;else if&#8221; will only be executed if the first condition is wrong. If you want to have another condition checked at all times, do so as follows:</p>
<pre lang="php" line="1">
<?php
     if ($i > 5) { ... }
     if ($i > 10) { ... }
     if ($i > 20) { ... }     
?>
</pre>
<p>You can also specify more than one condition at the same time using either &#038;&#038; (AND) or || (OR):</p>
<pre lang="php" line="1">
<?php
     if ($i == 5 &#038;&#038; $j != 10) { ... }  
     if ($i == 0 || $j == 0) { ... }  
?>
</pre>
<p>We will cover the comparison operations &#8220;==&#8221;, &#8220;!=&#8221; etc. in a second.</p>
<p>Finally, you could also use another if clause within the execution space of another one:</p>
<pre lang="php" line="1">
<?php
     if ($i == 5) {
          if ($j == 10) {
               ...
          } else { ... }
     }  
     else { ... }
?>
</pre>
<p>That way you can implemented different types of fallback scenarios for each case.</p>
<h3>SWITCH &#8230; CASE selections</h3>
<p>If you have just one variable which you expect to have different known values at times, the easiest way to differentiate between those cases is to switch between those cases:</p>
<pre lang="php" line="1">
<?php
     switch ($name) {
          case "Mike": 
               echo "I am Mike.<br />";
               break;
          case "Annie": 
               echo "I am Annie.<br />";
               break;
          default: 
               echo "We are the rest.";
?>
</pre>
<h2>Comparison operations in PHP</h2>
<p>We already used smaller than &#8220;<" and greater than ">&#8221; operations. However there are way more comparisons possible:</p>
<ul>
<li>$i == 10: equals</li>
<li>$i != 10: not equals</li>
<li>$i >= 10: greater or equals</li>
<li>$i <= 10: smaller or equals</li>
<li>$i == 10 &#038;&#038; $j == 11: logical AND combination of two conditions</li>
<li>$i == 10 || $j == 12: logical OR combination of two conditions</li>
</ul>
<p>These are all basic operations you will need to implement loops, differentiate between cases and define the conditions you need.</p>
<h2>The next lessons:</h2>
<ul>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-how-to-use-php-functions">Lesson 9: How to use PHP functions</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-php-get-and-post-parameters">Lesson 10: PHP GET and POST parameters</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-how-to-build-a-website-php-navigational-skeleton-step-by-step">Lesson 11: How to build a website — PHP navigational skeleton step by step</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-how-to-connect-to-mysql-using-php">Lesson 12: How to connect to MySQL using PHP</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-php-login-script-tutorial">Lesson 13: PHP Login Script Tutorial</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-dynamic-php-based-mysql-data-readout-with-html-output">Lesson 14: Dynamic PHP based MySQL data management with HTML output</a></li>
</ul>The post <a href="https://www.serpbot.org/en/howto-php-mysql-php-for-loops-and-conditions">Lesson 8: PHP for loops and conditions</a> first appeared on <a href="https://www.serpbot.org/en">SERPBOT</a>.]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Lesson 7: Learning PHP: programming basics for output, calculation and variables</title>
		<link>https://www.serpbot.org/en/howto-php-mysql-learning-php-programming-basics-for-output-calculation-and-variables</link>
		
		<dc:creator><![CDATA[Dr.-Ing. Erik Neitzel]]></dc:creator>
		<pubDate>Mon, 30 Nov 2020 11:16:21 +0000</pubDate>
				<category><![CDATA[Web Development]]></category>
		<guid isPermaLink="false">https://www.serpbot.org/?p=1002</guid>

					<description><![CDATA[<div class="slide-text-bg2"><span>This lesson shows step-by-step how variables are used to calculate and visualize content within dynamic web pages coded in PHP. This is what WordPress does</span></div>
<div class="slide-btn-area-sm"><a href="https://www.serpbot.org/en/howto-php-mysql-learning-php-programming-basics-for-output-calculation-and-variables" class="slide-btn-sm">Read More</a></div>
The post <a href="https://www.serpbot.org/en/howto-php-mysql-learning-php-programming-basics-for-output-calculation-and-variables">Lesson 7: Learning PHP: programming basics for output, calculation and variables</a> first appeared on <a href="https://www.serpbot.org/en">SERPBOT</a>.]]></description>
										<content:encoded><![CDATA[<p>This lesson shows step-by-step how variables are used to calculate and visualize content within dynamic web pages coded in PHP. This is what WordPress does all day. PHP scripts are used to deal with the complexity of integrating your amazing content into your theme&#8217;s layout and deliver all that as HTML to your visitor&#8217;s browser. In order to achieve that, lots of dynamic control structures take action, which we will talk about in a second. Let&#8217;s clarify some basics first.</p>
<h2>What is PHP?</h2>
<p>PHP is a <strong>script language</strong>, standing for <strong>Hypertext Pre-Processor</strong>. This also describes what it actually does: PHP processes data and <strong>generates HTML</strong> information output based on that data. Data is processed using loops, functions, parameters and other stuff that we will discuss within the next lessons.</p>
<p>PHP can be <strong>embedded</strong> within HTML pages, or the other way around: HTML output can be included within PHP code. Either way, the web server has to be able to process PHP. If you want PHP to handle <strong>database requests</strong>, PHP itself has to have certain modules in place, depending on your database system type. </p>
<p>If you ordered a standard hosting package at a standard web hosting provider, the odds are good that your server can handle both PHP and database processing. To be sure please lookup your package details, maybe you have to upgrade your account.</p>
<h2>How to use PHP</h2>
<p>Let&#8217;s get started on using PHP to process some stuff.</p>
<h3>Embedding PHP within HTML or in a separate file</h3>
<p>No matter which way of embedding you want to use, you can embed PHP using the following approaches: </p>
<pre lang="php" line="1">
<? ... ?>
<?php ... ?>
<script language="php"> ... </script>
<% ... %>
</pre>
<p>The usual way, which we will also use within this tutorial, is the second approach.</p>
<h3>Generating text and markup output</h3>
<p>If you want PHP to show something, use the echo method:</p>
<pre lang="php" line="1">
<?php
     echo "Hello world!";
     echo "<table>
                  <tr><td>11</td><td>12</td></tr>
                  <tr><td>21</td><td>22</td></tr>
           </table>";
?>
</pre>
<h3>Introduction to PHP variables</h3>
<p>The idea of using a script language is that you want something to be pre-processed &#8212; let it be a simple <strong>math calculation</strong>, a text filter or a <strong>dynamically generated</strong> table based on database data. You will need <strong>variables</strong> to do all that. Let&#8217;s see what variables are all about.</p>
<p>Every <strong>PHP variable</strong> starts with a dollar sign, and you can name it as you wish:</p>
<pre lang="php" line="1">
<?php
     $text = "I am a text.<br />"; // a string
     $a = 5; // an integer
     echo $text;
     echo $a;
?>
</pre>
<p>Notice that the double slash opens a <strong>PHP comment</strong>, a string must have quotes in place, an integer does not. Let&#8217;s look at what you can do with integer variables.</p>
<h4>Calculations with PHP</h4>
<p>Calculating with PHP is as simple as it can be:</p>
<pre lang="php" line="1">
<?php
     $a = 10;
     $b = 5;
     $c = $a + $b; // $c will be 15
     $d = $a - $b; // $d will be 5
     $e = $a * $b; // $e will be 50
     $f = $a / $b; // $f will be 2
     $g = $a % $b; // % calculates remainders, $g will be 0 since 10 / 5 = 2 with remainder 0
?>
</pre>
<p>You can use the <strong>remainder calculation</strong> to do differentiate between odd and even numbers within a table, for example. We will cover dynamically generated tables shortly.</p>
<h4>Implementing counters with PHP</h4>
<p>Very often you will also need <strong>counters</strong>, to count how often a <strong>loop</strong> was executed, for example. Loops are discussed later on. You can implement counters as follows:</p>
<pre lang="php" line="1">
<?php
 $i = 0; // initial value of our counter
 $i++; // same as $i = $i + 1, so $i will be 1
 ++$i; // same as $i++, but "echo ++$i" results in "0" and $i is incremented afterwards
 $i--; // same as $i = $i - 1, so $i will be -1 (assuming a start value of 0)
 --$i; // same as $i--, but "echo --$i" results in "0" and $i is decremented afterwards
?>
</pre>
<h4>Using Arrays within PHP</h4>
<p>An <strong>array</strong> can be seen as a locker with different boxes. Every position within an array is a box you can put something into:</p>
<pre lang="php" line="1">
<?php
     $locker[0] = "socks";
     $locker[1] = "shirts";
     $locker[2] = "ties";
     $locker[3] = "pants";
     echo "In box number one are $locker[0] <br />";
     echo "In box number two are $locker[1]";
?>
</pre>
<p>Please note that an array starts with 0 just as your loop counters should.</p>
<p>Take some time to play around with these <strong>PHP basics</strong>. The next lesson will be about <strong>control structures</strong>, and you should have a full understanding of both HTML and PHP basics that we&#8217;ve covered so far.</p>
<h2>The next lessons:</h2>
<ul>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-php-for-loops-and-conditions">Lesson 8: PHP for loops and conditions</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-how-to-use-php-functions">Lesson 9: How to use PHP functions</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-php-get-and-post-parameters">Lesson 10: PHP GET and POST parameters</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-how-to-build-a-website-php-navigational-skeleton-step-by-step">Lesson 11: How to build a website — PHP navigational skeleton step by step</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-how-to-connect-to-mysql-using-php">Lesson 12: How to connect to MySQL using PHP</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-php-login-script-tutorial">Lesson 13: PHP Login Script Tutorial</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-dynamic-php-based-mysql-data-readout-with-html-output">Lesson 14: Dynamic PHP based MySQL data management with HTML output</a></li>
</ul>The post <a href="https://www.serpbot.org/en/howto-php-mysql-learning-php-programming-basics-for-output-calculation-and-variables">Lesson 7: Learning PHP: programming basics for output, calculation and variables</a> first appeared on <a href="https://www.serpbot.org/en">SERPBOT</a>.]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Lesson 6: HTML form elements</title>
		<link>https://www.serpbot.org/en/howto-php-mysql-html-form-elements</link>
		
		<dc:creator><![CDATA[Dr.-Ing. Erik Neitzel]]></dc:creator>
		<pubDate>Mon, 30 Nov 2020 11:16:16 +0000</pubDate>
				<category><![CDATA[Web Development]]></category>
		<guid isPermaLink="false">https://www.serpbot.org/?p=999</guid>

					<description><![CDATA[<div class="slide-text-bg2"><span>This lesson gives an introduction to HTML form elements and how they are used within web pages. WordPress plugins usually help you as a blogger to create s</span></div>
<div class="slide-btn-area-sm"><a href="https://www.serpbot.org/en/howto-php-mysql-html-form-elements" class="slide-btn-sm">Read More</a></div>
The post <a href="https://www.serpbot.org/en/howto-php-mysql-html-form-elements">Lesson 6: HTML form elements</a> first appeared on <a href="https://www.serpbot.org/en">SERPBOT</a>.]]></description>
										<content:encoded><![CDATA[<p>This lesson gives an introduction to <strong>HTML form elements</strong> and how they are used within web pages. WordPress plugins usually help you as a blogger to create such forms by using your mouse, yet we want to understand what is happening there. That way you are able to fix and improve the forms you create.</p>
<h2>A simple HTML form</h2>
<p>First of all, let&#8217;s look at how a form is used in general.</p>
<pre lang="html4strict" line="1">
<form action="mailto:user@domain.de" method="POST" enctype="text/plain">
     <!-- Some input and/or button elements -->
</form>
</pre>
<p>As you can see, the tag in question is called &#8220;form&#8221; and has two very important attributes: action and method. Action is responsible for what happens when a user clicks the submit button inside your form. In the case shown above the form data is being send via email by the web server. </p>
<p>As we grow our knowledge of server sided scripting using PHP, however, we will see what we can do if the form action contains a target-script.php. Then it will also get clear what the method attribute is all about. For now let&#8217;s just keep in mind not to forget those two attributes. The encoding type is simply for, well, style.</p>
<p>Within a form, you may want to have at least one text input field:</p>
<pre lang="html4strict" line="1">
<input type="text" name="name" value="Your name" />
</pre>
<p>If your form use case does not require any other sorts of user data but free text inputs, then you are almost finished. Scroll to the end of this article to get your submit button syntax, and you will have your form. If you need some more stuff, just read ahead.</p>
<h2>Radio buttons and check boxes</h2>
<p>There are cases in which you want to restrict user input to certain pre-defined values. If you want her or him to decide between two or more specific choices, use radio buttons:</p>
<pre lang="html4strict" line="1">
<input type="radio" name="gender" value="m"/>male<br/>
<input type="radio" name="gender" value="w"/>female<br/>
</pre>
<p>If the user should have the possibility to select more than just one entry at the same time, use check boxes:</p>
<pre lang="html4strict" line="1">
<input type="checkbox" name="skills" value="1"/>Snowboarding<br/>
<input type="checkbox" name="skills" value="2"/>Skiing<br/> 
</pre>
<p>Please note that the user may see &#8220;Snowboarding&#8221; but the target to which your form gets send to just receives &#8220;skills:1&#8221;, since the value for a checkbox named skills is 1. This is the same with any other input element. Values being transferred to the form destination can be different from what the user sees. </p>
<h2>Dropdown menus</h2>
<p>If you have to display a lot of data, while the user still has just one choice, you may not want to flood your form with fifty radio buttons. You can use drop down menus instead:</p>
<pre lang="html4strict" line="1">
<select name="state" size="1">
     <option value="0" selected>Please select</option>
     <option value="1">Alabama</option>
     <option value="2">Alaska</option>
     <option value="3">Arizona</option>
     <option value="4">Arkansas</option>
     <option value="5">California</option>
     <!-- and so on -->
</select>  
</pre>
<p>Here it is important to note again, that the user may see some text like &#8220;Alabama&#8221; but the target script receives value &#8220;1&#8221;. </p>
<p>Why is this important? This is advanced, but interesting to know if you are a little more experienced: You may have cases in which you build dropdown lists dynamically using PHP based on database content. </p>
<p>That content can also be changed all the time (this is what databases are for). But then you may have entries within your dropdown list that all look alike at worst (think of surnames, for examples). The <u>value</u>, however, will be different, since here you may want to use primary keys, which are always unique. Then, your target script will know the difference between all the entries.</p>
<h2>Password and hidden fields</h2>
<p>At times you want the user to have some privacy while typing. For that, you can use input type &#8220;password&#8221;, which results in seeing stars or bubbles instead of the actual text entered:</p>
<pre lang="html4strict" line="1">
<input type="password" name="entered_user_password"/>
</pre>
<p>There are also times in which you want to send some other data to your target destination (e.g. a PHP script) which the user shall not have any influence on. Submitting the clients IP address is an example for such a hidden field, which you can use as follows:</p>
<pre lang="html4strict" line="1">
<input type="hidden" name="sec" value="abc"/>
</pre>
<h2>Buttons</h2>
<p>Finally, a form must be able to get sent and to get cleared: </p>
<pre lang="html4strict" line="1">
<button type="submit" value="Submit">Submit</button>
<button type="reset" value="Reset">Reset</button>
</pre>
<h2>Example form</h2>
<p>To sum up what we&#8217;ve learned so far, you could have a very simple HTML form like this:</p>
<pre lang="html4strict" line="1">
<form action="mailto:user@domain.de" method="POST" enctype="text/plain">
     <input type="text" name="name" value="Your name" />
     <input type="radio" name="gender" value="m"/>male<br/>
     <input type="radio" name="gender" value="w"/>female<br/>
     <button type="submit" value="Submit">Submit</button>
</form>
</pre>
<p>By the way, it is a good idea to structure form input elements using an HTML table inside the form. That way the form looks more straight. This concludes HTML forms within this <a href="https://www.serpbot.org/en/howto-php-mysql-tutorial-for-bloggers">PHP MySQL tutorial</a> for now.</p>
<h2>The next lessons:</h2>
<ul>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-learning-php-programming-basics-for-output-calculation-and-variables">Lesson 7: Learning PHP: programming basics for output, calculation and variables</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-php-for-loops-and-conditions">Lesson 8: PHP for loops and conditions</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-how-to-use-php-functions">Lesson 9: How to use PHP functions</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-php-get-and-post-parameters">Lesson 10: PHP GET and POST parameters</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-how-to-build-a-website-php-navigational-skeleton-step-by-step">Lesson 11: How to build a website — PHP navigational skeleton step by step</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-how-to-connect-to-mysql-using-php">Lesson 12: How to connect to MySQL using PHP</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-php-login-script-tutorial">Lesson 13: PHP Login Script Tutorial</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-dynamic-php-based-mysql-data-readout-with-html-output">Lesson 14: Dynamic PHP based MySQL data management with HTML output</a></li>
</ul>The post <a href="https://www.serpbot.org/en/howto-php-mysql-html-form-elements">Lesson 6: HTML form elements</a> first appeared on <a href="https://www.serpbot.org/en">SERPBOT</a>.]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Lesson 5: HTML Coding Basics</title>
		<link>https://www.serpbot.org/en/howto-php-mysql-html-coding-basics</link>
		
		<dc:creator><![CDATA[Dr.-Ing. Erik Neitzel]]></dc:creator>
		<pubDate>Mon, 30 Nov 2020 11:16:10 +0000</pubDate>
				<category><![CDATA[Web Development]]></category>
		<guid isPermaLink="false">https://www.serpbot.org/?p=997</guid>

					<description><![CDATA[<div class="slide-text-bg2"><span>This lesson gives a step-by-step introduction to HTML coding basics. We&#8217;re heading towards simple web frontend design using basic HTML elements as it</span></div>
<div class="slide-btn-area-sm"><a href="https://www.serpbot.org/en/howto-php-mysql-html-coding-basics" class="slide-btn-sm">Read More</a></div>
The post <a href="https://www.serpbot.org/en/howto-php-mysql-html-coding-basics">Lesson 5: HTML Coding Basics</a> first appeared on <a href="https://www.serpbot.org/en">SERPBOT</a>.]]></description>
										<content:encoded><![CDATA[<p>This lesson gives a step-by-step introduction to <strong>HTML coding basics</strong>. We&#8217;re heading towards simple <strong>web frontend design</strong> using<strong> basic HTML elements</strong> as it is being generated by WordPress, ready to be transmitted to the visitors browser at a moments notice.</p>
<p>Yet we want to build that understanding up from scratch. To that end, you could still use one of the fancy visual frameworks like Twitter Bootstrap to get you started, which is totally fine, but would require that you already know about the basics of HTML in order to work effectively. This lesson gives a short introduction into basic markup elements and how they are used.</p>
<h2>What is HTML?</h2>
<p>HTML stands for Hyper Text Markup Language and is a sub type of XML, the Extensible Markup Language. Markup is formed using so called &#8220;tags&#8221;. So HTML is used to <b>describe</b> websites. With that in mind, let&#8217;s look at some basic components.</p>
<h2>Basic HTML page structure</h2>
<p> The following code represents a minimal HTML page.</p>
<pre lang="html4strict" line="1">
<!DOCTYPE html>
<html>
     <head>
          <title>Tab text</title>
     </head>
     <body>
          Black on white.
     </body>
</html>
</pre>
<h2>Basic HTML elements</h2>
<p>There are a lot of HTML tags. Let&#8217;s focus on some stuff we really need. I will provide links for additional stuff when appropriate. </p>
<h3>Basic content structure</h3>
<p>Let&#8217;s say you want to use headings and sub headings, like the ones within this very article. You can do so using the following h1, h2, h3, &#8230; tags:</p>
<pre lang="html4strict" line="1">
<h1>Big Heading<h1>
<h2>Sub Heading 1<h2>
<h3>Sub Heading 2<h3>
<h4>Sub Heading 3<h4>
<h5>Sub Heading 4<h5>
</pre>
<p>Now let&#8217;s say you want to separate something from the rest of the content you wrote. You can do that using a horizontal line:</p>
<pre lang="html4strict" line="1">
<hr />
</pre>
<p>&#8230; or using paragraphs:</p>
<pre lang="html4strict" line="1">
<p>Paragraph content</p>
<p>Another paragraph content</p>
</pre>
<p>&#8230; or using line breaks:</p>
<pre lang="html4strict" line="1">
Some text<br />
Some other text<br /><br /><br /><br />
Some other text :)
</pre>
<h3>Ordered and unordered lists</h3>
<p>If you want to enumerate list items, do that using a ordered list:</p>
<pre lang="html4strict" line="1">
<ol>
      <li>
             A first item
      </li>
      <li>
             A second item
      </li>
</ol>
</pre>
<p>If you just want those items to be listed with leading dots, you can do it using an unordered list:</p>
<pre lang="html4strict" line="1">
<ul>
      <li>
             A first item
      </li>
      <li>
             A second item
      </li>
</ul>
</pre>
<h3>Simple HTML tables</h3>
<p>Let&#8217;s assume you have a rather complex content you want to structure. You can do that using HTML tables like this:</p>
<pre lang="html4strict" line="1">
<table><tr>
            <td>First row, first column</td>
            <td>First row, second column</td>
      </tr>
      <tr>
            <td>Second row, first column</td>
            <td>Second row, second column</td>
      </tr>
</table>
</pre>
<h3>Images, links and comments</h3>
<p>If you wanted to include images within your HTML website, you can use the IMG-Tab like this:</p>
<pre lang="html4strict" line="1">
<img decoding="async" src="path/to/image/image.png" alt="Description of image" />
</pre>
<p>To insert links a user can click on, use the A-Tag like this:</p>
<pre lang="html4strict" line="1">
<a href="https://www.serpbot.org" target="_blank" rel="noopener noreferrer">Anchor text the user can read</a>
</pre>
<p>The target &#8220;_blank&#8221; means a new window/tab will open. You could also use &#8220;_self&#8221; for the page to load within the same window/tab you&#8217;re currently surfing in.</p>
<p>Now you often want to include some comments within your page that is not shown to the user directly but serves you as a marker for something left to be done or anything. You can do that like this:</p>
<pre lang="html4strict" line="1">
<!-- Comment -->
</pre>
<p>Please be aware, however, that the user can always lookup the HTML source and is thereby able to see your comments. So you may not want to write down anything that is coming to your mind 🙂</p>
<p>If you need other examples on how to use basic HTML tags please visit <a href="http://www.w3schools.com/html/" target="_blank" rel="noopener noreferrer">http://www.w3schools.com/html/</a></p>
<p>You can experiment on HTML usage by doing some extensive formatting and link creation in your WordPress visual editor, and then switch to &#8220;Text&#8221; mode. You can then see the post portion of the HTML that is being created by WordPress and then transported to your visitors web browser.</p>
<p>This concludes the HTML basics for now. Please look at the next article for more advanced stuff like HTML forms.</p>
<h2>The next lessons:</h2>
<ul>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-html-form-elements">Lesson 6: HTML form elements</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-learning-php-programming-basics-for-output-calculation-and-variables">Lesson 7: Learning PHP: programming basics for output, calculation and variables</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-php-for-loops-and-conditions">Lesson 8: PHP for loops and conditions</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-how-to-use-php-functions">Lesson 9: How to use PHP functions</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-php-get-and-post-parameters">Lesson 10: PHP GET and POST parameters</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-how-to-build-a-website-php-navigational-skeleton-step-by-step">Lesson 11: How to build a website — PHP navigational skeleton step by step</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-how-to-connect-to-mysql-using-php">Lesson 12: How to connect to MySQL using PHP</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-php-login-script-tutorial">Lesson 13: PHP Login Script Tutorial</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-dynamic-php-based-mysql-data-readout-with-html-output">Lesson 14: Dynamic PHP based MySQL data management with HTML output</a></li>
</ul>The post <a href="https://www.serpbot.org/en/howto-php-mysql-html-coding-basics">Lesson 5: HTML Coding Basics</a> first appeared on <a href="https://www.serpbot.org/en">SERPBOT</a>.]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Lesson 3: Database Modelling and Structurization</title>
		<link>https://www.serpbot.org/en/howto-php-mysql-database-modelling-and-structurization</link>
		
		<dc:creator><![CDATA[Dr.-Ing. Erik Neitzel]]></dc:creator>
		<pubDate>Mon, 30 Nov 2020 11:16:05 +0000</pubDate>
				<category><![CDATA[Web Development]]></category>
		<guid isPermaLink="false">https://www.serpbot.org/?p=993</guid>

					<description><![CDATA[<div class="slide-text-bg2"><span>This lesson shall give some advice on how to start each database project regarding data modeling and a way to think it through, followed by a brief intr</span></div>
<div class="slide-btn-area-sm"><a href="https://www.serpbot.org/en/howto-php-mysql-database-modelling-and-structurization" class="slide-btn-sm">Read More</a></div>
The post <a href="https://www.serpbot.org/en/howto-php-mysql-database-modelling-and-structurization">Lesson 3: Database Modelling and Structurization</a> first appeared on <a href="https://www.serpbot.org/en">SERPBOT</a>.]]></description>
										<content:encoded><![CDATA[<p>This lesson shall give some <strong>advice</strong> on how to start each <strong>database project</strong> regarding <strong>data </strong><b>modeling</b> and a way to think it through, followed by a brief introduction into the usage of data definition, manipulation and queueing statements.</p>
<h2>Basic database design process</h2>
<p>The first thing you need to make sure is that you know what your <strong>application</strong> shall be able to do. Having thought about that, you can decide for a data structure.</p>
<p>Try to think of the following:</p>
<ul>
<li>What are the <strong>main entities</strong> my database is dealing with?</li>
<li>What are the <strong>relationships</strong> between those entities?</li>
<li>Do I need additional relationship tables?</li>
<li>What are the <strong>main attributes</strong> of both my entities and my relationships?</li>
</ul>
<p>You can use an <strong>Entity Relationship Modeling</strong> tool or just a sheet of paper &#8212; it depends on how complex your database is.</p>
<p>Afterwards, decide for a unique <strong>primary key</strong> for each of your entities, usually an ongoing number or ID, which is what you will find in every WordPress table, for example.</p>
<p>Now it is wise to sort of &#8220;emulate&#8221; all your database tables and all your attributes including primary keys using an Keynote/Excel file or a sheet of paper. Visualize your tables <em>and fill them</em> with <strong>example data</strong>. That way you can be sure not to miss something important. When that is done, think about the kind of data your primary key consists of. Is it data you get from a different system, where you can be sure that every new entry has a different key value, or do you want to let it be filled automatically using <strong>auto_increment</strong>.</p>
<h2>Create table statements</h2>
<p>Finally, build your final <strong>data model</strong> using <strong>create table SQL statements</strong> (DDL) as discussed earlier. WordPress and every one of its plugins will do that for you, and the only way you will ever see that is by pulling a dump of your database. Within that you will see statements like the following:</p>
<pre lang="sql">CREATE TABLE `wp_users` (
  `ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `user_login` varchar(60),
  `user_pass` varchar(255),
  `user_nicename` varchar(50),
  `user_email` varchar(100),
  `user_url` varchar(100),
  `user_registered` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `user_activation_key` varchar(255),
  `user_status` int(11) NOT NULL DEFAULT '0',
  `display_name` varchar(250) NOT NULL DEFAULT '',
  PRIMARY KEY (`ID`)
)
</pre>
<p>What you see here is a table &#8220;wp_users&#8221; being created with ten columns (attributes): ID, user_login, user_pass, user_nicename, user_email, user_url, user_registered, user_activation_key, user_status and display_name. Afterwards it is defined that column ID is a primary key (whose value can only exist once). That key can then be used by other tables as a reference for the data row in question. In addition, ID cannot be null and it is automatically incremented whenever a new row is created in table wp_users.</p>
<p>You also see bigint(20) and varchar(100), etc. &#8211; which are the data types of each attribute and its allowed maximum value size. There are also some additional information which you do not need to concern yourself with at this time. Yet is is important to get a basic understanding on how and why data tables are being defined within a database.</p>
<h2>Insert, select, update and delete statements</h2>
<p>Let us now say a user shall be added to your WordPress table wp_users by talking directly to the database.</p>
<h3>INSERT statements</h3>
<p>You will then issue the following <strong>insert statement</strong>:</p>
<pre lang="sql">INSERT INTO wp_users 
(ID, user_login, user_pass, user_email, user_url, display_name)
VALUES 
(null, 'serpbot', 'abc123', 'serpbot@serpbot.org', 'www.serpbot.org', 'SERPBOT')
</pre>
<p>We tell the database to INSERT something INTO the table &#8220;wp_users&#8221;, specify the columns which we want to address, followed by its according VALUES.</p>
<h3>SELECT statements</h3>
<p>If we wanted to see all contents of our user table, we could ask the database like this:</p>
<p>SELECT * FROM wp_users</p>
<p>That would SELECT all (*) data FROM our table &#8220;wp_users&#8221;, giving us a list of all the rows that are currently inserted &#8211; including our newly inserted user &#8220;serpbot@serpbot.org&#8221;.</p>
<h3>UPDATE statements</h3>
<p>If we now wanted to update that users password, we would use:</p>
<pre lang="sql">UPDATE wp_users SET user_pass = 'bcd234'
</pre>
<p>With this SQL statement we instruct the database to UPDATE the table &#8220;wp_users&#8221; and SET the attribute &#8220;user_pass&#8221; to &#8220;bcd234&#8221;.</p>
<h3>DELETE statements</h3>
<p>Finally, if we wanted to delete that user from the database, we would do it like this:</p>
<pre lang="sql">DELETE FROM wp_users WHERE user_email = 'serpbot@serpbot.org'
</pre>
<p>We tell the database to DELETE FROM the table &#8220;wp_users&#8221; WHERE the attribute &#8220;user_mail&#8221; equals the value &#8220;serpbot@serpbot.org&#8221;.</p>
<p>Pretty straight forward, right? This is just meant as an introduction, of course. Yet it may serve as a sign not to be afraid of relational databases and SQL statements when doing maintenance on your WordPress installation or building your own plugin or standalone application from scratch.</p>
<h2>The next lessons:</h2>
<ul>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-vi-editor-in-unix">Lesson 4: VI Editor in Unix</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-html-coding-basics">Lesson 5: HTML Coding Basics</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-html-form-elements">Lesson 6: HTML form elements</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-learning-php-programming-basics-for-output-calculation-and-variables">Lesson 7: Learning PHP: programming basics for output, calculation and variables</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-php-for-loops-and-conditions">Lesson 8: PHP for loops and conditions</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-how-to-use-php-functions">Lesson 9: How to use PHP functions</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-php-get-and-post-parameters">Lesson 10: PHP GET and POST parameters</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-how-to-build-a-website-php-navigational-skeleton-step-by-step">Lesson 11: How to build a website — PHP navigational skeleton step by step</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-how-to-connect-to-mysql-using-php">Lesson 12: How to connect to MySQL using PHP</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-php-login-script-tutorial">Lesson 13: PHP Login Script Tutorial</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-dynamic-php-based-mysql-data-readout-with-html-output">Lesson 14: Dynamic PHP based MySQL data management with HTML output</a></li>
</ul>The post <a href="https://www.serpbot.org/en/howto-php-mysql-database-modelling-and-structurization">Lesson 3: Database Modelling and Structurization</a> first appeared on <a href="https://www.serpbot.org/en">SERPBOT</a>.]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Lesson 4: VI Editor in Unix</title>
		<link>https://www.serpbot.org/en/howto-php-mysql-vi-editor-in-unix</link>
		
		<dc:creator><![CDATA[Dr.-Ing. Erik Neitzel]]></dc:creator>
		<pubDate>Mon, 30 Nov 2020 11:15:58 +0000</pubDate>
				<category><![CDATA[Web Development]]></category>
		<guid isPermaLink="false">https://www.serpbot.org/?p=995</guid>

					<description><![CDATA[<div class="slide-text-bg2"><span>This lesson is meant to give you an alternative to the WordPress Theme Editor and plugins able to manipulate script file contents. The reason for this is s</span></div>
<div class="slide-btn-area-sm"><a href="https://www.serpbot.org/en/howto-php-mysql-vi-editor-in-unix" class="slide-btn-sm">Read More</a></div>
The post <a href="https://www.serpbot.org/en/howto-php-mysql-vi-editor-in-unix">Lesson 4: VI Editor in Unix</a> first appeared on <a href="https://www.serpbot.org/en">SERPBOT</a>.]]></description>
										<content:encoded><![CDATA[<p>This lesson is meant to give you an alternative to the WordPress Theme Editor and plugins able to manipulate script file contents. The reason for this is simple: if you make a mistake using an editor that is part of the content management system itself, you will have shut yourself out. The only ways to save your installation are to restore your webspace from a backup or to re-edit your files using the operating system&#8217;s file editors of your web server.</p>
<p>In case you have a Unix based system running on the server, the odds are great that you can use VI as a remote editor. That way you do not have to transfer any locally created code files to the server. This brief article shows some basic step-by-step command sequences for you to get started with both Unix environments and VI.</p>
<p>Get connected to the web server using either Putty (Windows) or Terminal (OSX) and the SSH access parameters you either received from your hosting provider, your admin or yourself 🙂</p>
<h2>Unix file handling commands</h2>
<p>First of all you need to know how to <strong>create folders</strong>, since you probably want to organize the files you are about to create. If you wanted to create a folder within just the folder you&#8217;re currently in, use: <span style="text-decoration: underline;">mkdir folder-name</span></p>
<p>If you want to <strong>remove a directory</strong> you previously created, use <span style="text-decoration: underline;">rmdir folder-name</span> to do so.</p>
<p>After creating a folder you can then switch to that folder using the <strong>change directory</strong> command &#8220;cd&#8221;: <span style="text-decoration: underline;">cd folder-name</span></p>
<p>You always get the full path of your current directories using the command <span style="text-decoration: underline;">pwd</span>.</p>
<p>To <strong>create a file</strong> in the current directory use: <span style="text-decoration: underline;">touch file-name.php</span></p>
<p>Sometimes you need to <strong>copy existing files</strong> to another location. You can do this using the &#8220;cp&#8221; command: <span style="text-decoration: underline;">cp ./existing-file.php ./new-file.php</span>, whereas &#8220;./&#8221; stands for the current folder and can also consist of several subfolders like ./sub1/sub2/sub3/file.php. Be aware, however, that those subfolders have to exist, they will not be created automatically. Use the commands mentioned above to do so.</p>
<p>If you simply want to <strong>move a file</strong>, use &#8220;mv&#8221; instead of cp. That way you can also <strong>rename files and folders: </strong><span style="text-decoration: underline;">mv current-name-or-location new-name-or-location</span></p>
<p>To <strong>remove a</strong> created or copied <strong>file</strong> use the &#8220;rm&#8221; command: <span style="text-decoration: underline;">rm existing-file.php</span></p>
<p>If you lost track on the files within the current directory, use the <strong>list command</strong> like this: <span style="text-decoration: underline;">ls -la</span>, which shows you details to all files within that folder.</p>
<h2>VI file editing commands</h2>
<p>Once you created a file within the directory you want, that file will be blank. You may want to fill it with fancy code, probably 🙂</p>
<p>Please go to the directory you created your file in using <span style="text-decoration: underline;">cd directory</span> and <span style="text-decoration: underline;">ls -la</span> to be sure that the file you seek is present and <span style="text-decoration: underline;">touch file.php</span> if it is not.</p>
<p>Then type: <span style="text-decoration: underline;">vi file.php</span> in order to open that file in an editor called VI.</p>
<p>The VI editor will show an empty editing space, since your file is still empty. Now please type letter [i] on your keyboard, which results in an &#8220;insert&#8221; label on the bottom left pane of VI. You can then type code, e.g. &lt;?php echo &#8220;Hello world&#8221;; ?&gt;</p>
<p>As soon as you&#8217;re done coding, please hit [ESC] followed by &#8220;<span style="text-decoration: underline;">:w</span>&#8221; which results in &#8220;123 bytes written&#8221; on the bottom pane.</p>
<p>The Escape key gets VI in the command mode where you can use</p>
<ul>
<li><span style="text-decoration: underline;">:w</span> to write (save)</li>
<li><span style="text-decoration: underline;">:u</span> to undo</li>
<li><span style="text-decoration: underline;">:q</span> to quit VI</li>
</ul>
<p>Do not forget to type [i] again if you want to continue coding (assuming that you did not leave VI, if you did, just point Unix to VI file.php again).</p>
<p>I hope this brief introduction into Unix file handling and VI editing helps you get started.</p>
<h2>The next lessons:</h2>
<ul>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-html-coding-basics">Lesson 5: HTML Coding Basics</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-html-form-elements">Lesson 6: HTML form elements</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-learning-php-programming-basics-for-output-calculation-and-variables">Lesson 7: Learning PHP: programming basics for output, calculation and variables</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-php-for-loops-and-conditions">Lesson 8: PHP for loops and conditions</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-how-to-use-php-functions">Lesson 9: How to use PHP functions</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-php-get-and-post-parameters">Lesson 10: PHP GET and POST parameters</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-how-to-build-a-website-php-navigational-skeleton-step-by-step">Lesson 11: How to build a website — PHP navigational skeleton step by step</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-how-to-connect-to-mysql-using-php">Lesson 12: How to connect to MySQL using PHP</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-php-login-script-tutorial">Lesson 13: PHP Login Script Tutorial</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-dynamic-php-based-mysql-data-readout-with-html-output">Lesson 14: Dynamic PHP based MySQL data management with HTML output</a></li>
</ul>The post <a href="https://www.serpbot.org/en/howto-php-mysql-vi-editor-in-unix">Lesson 4: VI Editor in Unix</a> first appeared on <a href="https://www.serpbot.org/en">SERPBOT</a>.]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Lesson 2: Relational Database Management System Basics</title>
		<link>https://www.serpbot.org/en/howto-php-mysql-relational-database-management-system-basics</link>
		
		<dc:creator><![CDATA[Dr.-Ing. Erik Neitzel]]></dc:creator>
		<pubDate>Mon, 30 Nov 2020 11:15:53 +0000</pubDate>
				<category><![CDATA[Web Development]]></category>
		<guid isPermaLink="false">https://www.serpbot.org/?p=991</guid>

					<description><![CDATA[<div class="slide-text-bg2"><span>This lesson gives an introduction towards basic relational database management system concepts. It serves theoretical purpose only. You don&#8217;t need th</span></div>
<div class="slide-btn-area-sm"><a href="https://www.serpbot.org/en/howto-php-mysql-relational-database-management-system-basics" class="slide-btn-sm">Read More</a></div>
The post <a href="https://www.serpbot.org/en/howto-php-mysql-relational-database-management-system-basics">Lesson 2: Relational Database Management System Basics</a> first appeared on <a href="https://www.serpbot.org/en">SERPBOT</a>.]]></description>
										<content:encoded><![CDATA[<p>This lesson gives an introduction towards basic relational database management system concepts. It serves theoretical purpose only. You don&#8217;t need this in order to build an application. However understanding what your WordPress system is doing &#8220;under the hood&#8221; can help put other lessons in context.</p>
<h2>Elements, concept and languages of a database system</h2>
<p>A relational <strong>database system</strong> (DBS) consists of the following components:</p>
<ul>
<li>A <strong>database management system</strong> (DMBS), a software able to serve the ACID concept</li>
<li>A <strong>database</strong> (DB) which carries relational data</li>
</ul>
<p>What is the <strong>ACID concept</strong>?</p>
<ul>
<li><strong>Atomicity</strong> (all or nothing &#8211; there is no state in between a state before and after a desired change)</li>
<li><strong>Consistency</strong> (data is consistent before and after a change &#8211; regardless of how many internal transactions may be necessary for the system to preserve that secure state)</li>
<li><strong>Isolation</strong> (apparent exclusive access &#8211; you application can access the whole database even if another application is doing the same, without disturbing one another)</li>
<li><strong>Durability</strong> (data is persistently written to its carrier medium at all times)</li>
</ul>
<p>For the database system to achieve all this, <strong>transactions</strong> are used. Transactions are a sequence of operations which result in different states of data. Those operations do not change data accessible by other users until a commit is sent to the DBS. Once a commit is done, only changed records can be accessed, no longer the ones before a change was made.</p>
<p>In order to deal with data in terms of a database system we have to distinguish between the following languages, which are part of the overall <strong>Structured Query Language</strong> (SQL):</p>
<ul>
<li><strong>Data Definition</strong> Language (DDL)</li>
<li><strong>Data Manipulation</strong> Language (DML)</li>
<li><strong>Interactive Query</strong> Langauge (IQL)</li>
</ul>
<p>We use DDL when we create tables, DML when we insert, update or delete table data and IQL when we select certain parts of the database.</p>
<p>A transaction <strong>commit</strong> can be initiated automatically after each SQL operation or manually using the commit command sent to the database. This is useful whenever you want to collectively change certain data bound together by a business case, without letting just portions of it being accessed by users.</p>
<h2>A bloggers perspective toward database concepts</h2>
<p>For you as a blogger it is important to understand when database actions are performed and which category they belong to:</p>
<ul>
<li>Installing your WordPress installation creates many database tables and fills them with initial data, some of which are derived from your basic installation input (e.g. your blogs name, your admin users email address or your personal password) (DDL).</li>
<li>Each WordPress plugin you activate will most likely create new tables in your database (DDL).</li>
<li>As soon as you save a post certain database tables (e.g. wp_posts and wp_post_metadata) will be updated (DML).</li>
<li>Whenever you log into your blog software, your user data (user name and password) will be checked for a match within a datbase table (e.g. wp_users when using WordPress) (IQL).</li>
<li>When a user visits your website, PHP scripts are called which read data out of your database which is used to deliver seemingly static HTML to the visitors web browser (IQL)</li>
</ul>
<p>The last point already shows why you as both blogger and WordPress administrator will most likely use caching plugins. Those will pre-load all needed database contents and created static HTML to be served to the browser on each request. That way we prevent the whole database requesting (IQL) processes from being being repeated over and over again for each request without actually having new content in the database. Those plugins have to rebuild that static HTML only when you change a posts content.</p>
<h2>The next lessons:</h2>
<ul>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-database-modelling-and-structurization">Lesson 3: Database Modelling and Structurization</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-vi-editor-in-unix">Lesson 4: VI Editor in Unix</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-html-coding-basics">Lesson 5: HTML Coding Basics</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-html-form-elements">Lesson 6: HTML form elements</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-learning-php-programming-basics-for-output-calculation-and-variables">Lesson 7: Learning PHP: programming basics for output, calculation and variables</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-php-for-loops-and-conditions">Lesson 8: PHP for loops and conditions</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-how-to-use-php-functions">Lesson 9: How to use PHP functions</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-php-get-and-post-parameters">Lesson 10: PHP GET and POST parameters</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-how-to-build-a-website-php-navigational-skeleton-step-by-step">Lesson 11: How to build a website — PHP navigational skeleton step by step</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-how-to-connect-to-mysql-using-php">Lesson 12: How to connect to MySQL using PHP</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-php-login-script-tutorial">Lesson 13: PHP Login Script Tutorial</a></li>
<li><a href="https://www.serpbot.org/en/howto-php-mysql-dynamic-php-based-mysql-data-readout-with-html-output">Lesson 14: Dynamic PHP based MySQL data management with HTML output</a></li>
</ul>The post <a href="https://www.serpbot.org/en/howto-php-mysql-relational-database-management-system-basics">Lesson 2: Relational Database Management System Basics</a> first appeared on <a href="https://www.serpbot.org/en">SERPBOT</a>.]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
