Skip to main content

SQL coding examples

This SQL and PHP will count how many rows contain unique elements in your database.   For example, you may have a database of user entries and want to know how many entries each user has.   In this example, you want to know how many rows contain each unique element "name":

$query = mysql_query("SELECT name, COUNT(*) AS number FROM $table GROUP BY name");
if ( mysql_num_rows($query) == 0 ) echo "No rows in the database";
while ($row = mysql_fetch_array($query)) {
  $name = $row['name'] ;
  $count = $row['number'] ;
  echo "$name has $count rows in the database<br>";
}

Using PHP/MySQL scripts at your host and at home
If you have PHP/MySQL scripts that you want to use both at your host and on your home machine, you can add a few script lines that will allow you to do that without requiring any further modifications when you transfer your scripts back and forth.  In your MySQL configuration statements include a simple "if test" to see if you are on the remote server or on your home machine and set the parameters accordingly.

- - Start Script Here - -
<?phpif($_SERVER['HTTP_HOST'] == "localhost") {
  
$host="localhost";
} else {
  
$host="your-host-mysql-server.com";
}
?>

- - End Script Here - -

The script example above tests for the domain name to see if it is executing on your home machine (localhost in this example), then sets the configuration accordingly.


MySQL Error Notification
Would you like to be notified when your site has a MySQL error?  This PHP script will trap MySQL errors, send the user a custom error page, and email you with the details of the error.  You can customize this example to launch other pages based on the type of error, or to have the error routine do what ever you want.

A typical MySQL statement should look like this:

- - Start Script Here - -
<?php
mysql_connect
("$host""$dbuser""$dbpswd") or sql_error("connect",mysql_error());?>

- - End Script Here - -

When there is an error, this will call the function sql_error, sending a marker (in this case "connect") and the actual MySQL error.

At the top of your script (before any MySQL statements) put the function sql_error:

- - Start Script Here - -
<?phpfunction sql_error($function,$mysql_err) {
  echo 
"<center><br><hr>
  Oops . . . looks like our database is having technical problems.
  <br><br>
  Please come back later . . . hopefully we can get things up and running again soon.
  <hr>"
;
  
$error_time = (date(" F d h:ia"));
  
$message .= "There has been a MySQL error.\n\n";
  
$message .= "Error: $function - $mysql_err\n\n";
  
$message .= "Server time of the error: $error_time\n\n";
  
mail("youremail@domain.com""MySQL error" $message"From: Website <>");
  die();
}
?>

- - End Script Here - -


Automated MySQL Backups
Here is a php script that will backup your MySQL database, creating a different file each day for a month (then start over) so you have 30 days of backups.  It will email you with a backup confirmation.  Run it every night using cron to kick it off.  Replace the X's with your information.  In this example the backups will be placed in your FTP Root directory.

- - Start Script Here - -
<?php
$emailaddress 
"XXXXXX@yourdomain.com";$host="XXXXXX"// database host$dbuser="XXXXXX"// database user name$dbpswd="XXXXXX"// database password$mysqldb="XXXXXX"// name of database$day = (date("d"));$filename "/full_path_to_file_goes_here/backup" $day ".sql";
if ( 
file_exists($filename) ) unlink($filename);system"mysqldump --user=$dbuser --password=$dbpswd --host=$host $mysqldb > $filename",$result);$size filesize($filename);$runtime = (date(" F d h:ia"));$message .= "The backup has been run.\n\n";$message .= "The return code was: $result\n\n";$message .= "Size of the backup: $size bytes\n\n";$message .= "Server time of the backup: $runtime\n\n";mail($emailaddress"Backup Message" $message"From: Website <>"); ?> 
- - End Script Here - -

You can restore the database using the following:

system( "mysql --user=$dbuser --password=$dbpswd --host=$host $mysqldb < $filename",$result);

Note that hosts may have different paths for the mysql commands.  For example /usr/local/bin/mysqldump could be required.

Comments

Popular posts from this blog

21 "teure" Arbeitsplätze in der Zukunft, vielversprechend und nur schwer durch künstliche Intelligenz zu ersetzen

Bei der Suche nach einem Arbeitsplatz sind die beiden Top-Belange, die Sie oft in Betracht ziehen,: Gehalt und Aussichten für die Zukunft. Vor kurzem hat das Bureau of Labor Statistics eine Zweijahresprognose der Entwicklung von Hunderten von Karrieren zwischen 2016 und 2026 veröffentlicht.


Auf der Grundlage der Prognosen und Schätzungen des durchschnittlichen Jahreseinkommens dieser Arbeitsplätze haben Forscher eine Rangliste der teuersten Berufe in der Zukunft veröffentlicht.
Hier werden 21 Stellen mit den höchsten Gehältern in den kommenden Jahrzehnten erwartet.
21. Landwirte, Viehzüchter, landwirtschaftliche Manager
20 Hauptaufgaben: Planen, verwalten, betreiben Sie den Betrieb, Gewächshaus, Aquakultur, Baumschule, Wald oder andere landwirtschaftliche Anlagen.
Anzahl der offenen Stellen im Jahr 2026: 68.700.
Durchschnittliches Einkommen im Jahr 2016: 66.360 USD.
Voraussetzungen: Abitur oder gleichwertig.
Computersystem-Analysator

Hauptaufgaben: Analyse von Datenverarbeitungsfrage…

The Flame Breathers

I write this narrative, not with the idea of contributing any additional scientific data to the discovery of Vulcan, but to put upon the record the real facts of our truly-amazing space voyage. The newscasters have hailed me as a modern Columbus. Surely I would not want to appear ungracious, unappreciative of all the applause that has been heaped upon me. But I do not deserve it. I did my job for my employers. The Society sent me to make a landing upon Vulcan—if the little planet existed. I found that it does exist; it was exactly where I was told it ought to be. I carried out my instructions, returned and made my report. There is no great heroism in that. So I am writing the facts of what happened. Just a bald, factual account, without the imaginative trimmings. The real hero of the discovery of Vulcan was young Jan Holden. He did his job—did it well—and he did something just a little extra. I'm Bob Grant, which of course you have guessed by now. Peter Torrence—the third member …

Der verschwindende Baum

Die Palme war einst am Stadtrand von Madurai reichlich vorhanden. Leider verschwindet der üppige Baum dank der raschen Verstädterung vom Horizont.
Raju legt seine Hände fest um den dunklen Kofferraum. Er befestigt den Knoten des Vadam um seine Beine und hüpft in weniger als fünf Minuten wie ein Frosch den 25 Fuß hohen Baum hinauf. Diese Bäume liegen mir sehr am Herzen. Ich umarme sie jeden Tag “, sagt Raju. Der Nungu-Verkäufer spricht von den Palmen, die für die Nungu-Verkäufer eine Einkommens- und Lebensgrundlage waren. Aber jetzt erscheint ihnen die Zukunft düster, da die Palmen rapide abnehmen. Die Stadt wächst und die Bäume werden gefällt, um Platz für Grundstücke zu machen, sagt Raju. „Früher war die Sivaganga Road von Palmen gesäumt, heute sind nur noch wenige übrig. Dies ist der Grund, warum der Preis für Palmen gestiegen ist. “

Umweltschützer sind auch besorgt über die sinkenden Zahlen. Die Panai Marams stammen aus dem südlichen Tamil Nadu und sind auch der Staatsbaum. "…