Curso Udemy PHP
Curso Udemy PHP
Es un lenguaje creado en el año 1994. Puede correr en diversos sistemas operativos. Es un programa Open
Source. Esta mas orientado a correr eficientemente desde el punto de vista de los servidores. Utilizado por
WordPress.
Un servidor es un programa local o global el cual permite que otros programas se ejecuten sobre el.
El servidor Apache permite ejecutar paginas web desde nuestro pc con un servidor local cuya dirección es
localhost y este localhost abre carpetas de la dirección de xamp en la base del disco C:
Creadas la carpeta MiWebEjemplo, se coloca un index.php y luego si queremos ejecutar eso lo que hay que
hacer es colocar su dirección en el Chrome y ya esta.
CÓDIGO 1
En esta parte de código se ve como se puede ingresar código html y ejecutarlo directamente y mezclarlo
con código php
<?php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Mi Página</title>
</head>
<body>
<h1>Bienvenido</h1>
<?php
echo "<p>Este texto fue generado por PHP.</p>";
?>
<p>Este texto está escrito directamente en HTML.</p>
<?php
echo "<p>Hoy es " . date("Y-m-d") . "</p>";
?>
</body>
</html>
CÓDIGO 2
Aqui se estudia la diferencia entre echo y print. Lo principal es que print da un resultado entre 1 y 0 , echo
no por eso no puede ser asignado a una variable. Tambien se dice que print es mas rápido.
<?php
print "Hello from print";
print "<br>";
print 9-7;
print "<br>";
$var= print "Hello from var";
// $var= echo "hello form echo does´nt exist"
<?php
$username = "mohamed123";
$num = 8;
$NUM = 9;
echo $username;
echo "<br>";
echo $num;
echo "<br>";
echo $NUM;
?>
Constantes: Son como los variables que no cambian y se pueden acceder desde otras partes del codigo.
<?php
define("CONSTANT","this is a constant");
define("NUMBER", 99);
echo CONSTANT;
echo "<br>";
echo NUMBER;
?>
Tipos de Variables
En php se escribe el tipo de variable y luego el sistema le asigna el tipo, no se declara como en otros
sistemas.
CÓDIGO 3
<?php
$float = 1.1;
$num = 4;
$bool=false;
var_dump($float);
echo gettype($float);
echo "<br>";
var_dump($bool);
echo gettype($bool);
echo "<br>";
var_dump($num);
echo gettype($num);
echo "<br>";
var_dump($str);
echo gettype($str);
?>
ESTRUCTURAS REPETITIVAS
For
<?php
// Declaramos un array con nombres
$names = ["Carlos", "Ana", "Luis", "Maria", "Pedro"];
WHILE
<?php
// Inicializamos una variable
$counter = 1;
echo "Contando con while:<br>";
SWITCH
<?php
$favColor = "black";
switch ($favColor){
case "red":
echo "your fav color is red";
break;
case "green":
echo "your fav color is green";
break;
default:
echo "you like another color";
}
?>
ARRAYS
Arrays asociativos: son como los comunes pero usan strings para indexar la información en ve de
posiciones numéricas.
<?php
$person = [
"name" => "Carlos",
"age" => 30,
"city" => "Madrid"
];
foreach: El foreach se utiliza para logra recorrer todo el array sin usar numeros porque la matriz asociativa
no los tiene.
Foreach:
<?php
// Array asociativo
$person = [
"name" => "Carlos",
"age" => 30,
"city" => "Madrid"
];
$sentence = "Name: " . $person["name"] . ", Age: " . $person["age"] . ", City: " . $person["city"];
echo "<br>" . $sentence;
?>
Multidimensional
Con arreglos sin asignación de nùmero para ellos.
<?php
// Arreglo multidimensional correctamente definido
$multi = array(
array(1, 2, 3),
array(4, 5, 6),
array(7, 8, 9)
);
<?php
$companies = [
"Company1" => [
"department1" => ["employee1" => "Carlos", "employee2" => "Ana"],
"department2" => ["employee1" => "Luis", "employee2" => "Maria"]
],
"Company2" => [
"department1" => ["employee1" => "Pedro", "employee2" => "Lucia"],
"department2" => ["employee1" => "Jorge", "employee2" => "Sara"]
]
];
FUNCIONES
// Llamamos a la función
bienvenida();
bienvenida();
bienvenida();
echo "<br>";
bienvenida1("Carlos", "días");
bienvenida1("Ana", "tardes");
bienvenida1("Luis", "noches");
?>
FUNCIONES GLOBALES
html
Copiar código
<form method="POST" action="">
<label for="username">Nombre de Usuario:</label>
<input type="text" name="username" id="username">
<label for="email">Correo Electrónico:</label>
<input type="email" name="email" id="email">
<input type="submit" value="Enviar">
</form>
• name en los campos de entrada es importante, ya que se usará para acceder a los datos enviados a
través de $_POST en PHP.
php
Copiar código
if (isset($_POST['submit'])) {
// Verificar si se ha enviado el formulario
$username = $_POST['username'];
$email = $_POST['email'];
echo "Mi nombre de usuario es: " . $username;
echo "Mi correo electrónico es: " . $email;
}
En este caso, $_POST['username'] y $_POST['email'] acceden a los valores que el usuario ha ingresado en
el formulario.
<?php
if (isset($_POST['submit'])) {
$username = $_POST['username'];
$email = $_POST['email'];
echo "Mi nombre de usuario es: " . $username . "<br>";
echo "Mi correo electrónico es: " . $email . "<br>";
}
?>
En este ejemplo, cuando el usuario envía el formulario, los datos del formulario se procesan con PHP y se
muestran en la misma página.
Tiempo y hora
<?php
date_default_timezone_set('America/Argentina/Buenos_Aires');
echo date_default_timezone_set;
Desde phpmyadmin se pueden crear las bases de datos desde comandos aunque
también hay interfaz:
CREACIÓN DE LAS BASES
CREATE DATABASE testdb;
la crea,
USE testdb;
la usa;
DROP DATABASE testdb;
la elimina;
CREACIÓN DE LAS TABLAS
CREATE TABLE users (
id INT (2) NOT NULL,
username VARCHAR (20),
email VARCHAR(20),
password VARCHAR(30)
);
ELIMINACION
DROP TABLE users;
elimina
INGRESO DE DATOS A LA TABLA (MANUALMENTE)
ACTUALIZAR Y BORRAR
UPDATE users SET username = “user number 4” WHERE id = 4;
DELETE FROM user WHERE id = 4;
FUNCIONES:
SUMA:
SELECT SUM(id) FROM users;
AVERAGE:
SELECT SUM(id) FROM users;
COUNT:
SELECT COUNT (id) FROM users;
MIN Y MAX:
SELECT MIN/MAX(id) FROM users;
ALTER
ALTER TABLE users ADD COLUMN created_at timestamp;
ALTER TABLE users DROP COLUMN created_at timestamp;
ALIAS
SELECT title AS ti FROM blogs;
le da un nickname a las columnas en la columna.
JOINS
se usa basicamente para unir ds tablas que tienen informacion similar o
complementaria y esto se hace uniendo las claves que tiene informacion similar y
son primarias o foraneas
Un INNER JOIN es útil cuando necesitas trabajar con datos relacionados almacenados en
diferentes tablas de una base de datos. Por ejemplo, si tienes dos tablas relacionadas:
1. Tabla usuarios:
markdown
Copiar código
id_usuario | nombre_usuario
---------------------------
1 | Juan
2 | Maria
3 | Pedro
2. Tabla pedidos:
markdown
Copiar código
id_pedido | id_usuario | producto
------------------------------
101 | 1 | Laptop
102 | 2 | Celular
103 | 1 | Teclado
Si quieres obtener una lista de los usuarios junto con los productos que compraron, puedes usar el
INNER JOIN:
Resultado:
diff
Copiar código
nombre_usuario | producto
-------------------------
Juan | Laptop
Maria | Celular
Juan | Teclado
1. INNER JOIN
Solo devuelve las filas donde hay coincidencias entre ambas tablas según la condición
especificada.
Si no hay coincidencias, esas filas se excluyen del resultado.
Ejemplo:
Con estas tablas:
Tabla usuarios:
id_usuario | nombre_usuario
---------------------------
1 | Juan
2 | Maria
3 | Pedro
Tabla pedidos:
Consulta:
Resultado:
nombre_usuario | producto
-------------------------
Juan | Laptop
Maria | Celular
Ejemplo:
Consulta:
Resultado:
nombre_usuario | producto
-------------------------
Juan | Laptop
Maria | Celular
Pedro | NULL
Nota: Pedro aparece, pero sin producto porque no tiene un pedido asociado.
Ejemplo:
Consulta:
Resultado:
nombre_usuario | producto
-------------------------
Juan | Laptop
Maria | Celular
Nota: En este caso, como todos los pedidos tienen coincidencias con un usuario, el resultado es el
mismo que el de INNER JOIN. Si hubiera un pedido sin usuario asociado, aparecería con NULL en
la columna nombre_usuario.
Diferencias clave:
Tipo de
Filas incluidas en el resultado
JOIN
INNER
Solo las filas donde ambas tablas tienen coincidencias.
JOIN
Tipo de
Filas incluidas en el resultado
JOIN
Todas las filas de la tabla izquierda, y las filas coincidentes de la derecha (las no
LEFT JOIN
coincidentes en la derecha son NULL).
RIGHT Todas las filas de la tabla derecha, y las filas coincidentes de la izquierda (las no
JOIN coincidentes en la izquierda son NULL).
¿Cuál usar?
INNER JOIN: Cuando solo necesitas datos que tengan coincidencias entre ambas tablas.
LEFT JOIN: Cuando necesitas todas las filas de la tabla izquierda, incluso si no hay
coincidencias en la tabla derecha.
RIGHT JOIN: Cuando necesitas todas las filas de la tabla derecha, incluso si no hay
coincidencias en la tabla izquierda.
PDO
<?php
$host = "localhost:3307";
$dbname = "blogpost";
$user = "root";
$password = "";
try {
// Crear una conexión con PDO
$conn = new PDO("mysql:host=$host;dbname=$dbname", $user, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
1. Declaración de variables
php
Copiar código
$host = "localhost:3307"; // Dirección del servidor MySQL y puerto
$dbname = "blogpost"; // Nombre de la base de datos
$user = "root"; // Usuario de la base de datos
$password = ""; // Contraseña del usuario (vacía en este caso)
$host: Indica la dirección del servidor MySQL. Aquí se especifica localhost y el
puerto 3307.
$dbname: El nombre de la base de datos a la que queremos conectarnos.
$user: Usuario con permisos para acceder a la base de datos.
$password: Contraseña del usuario. En este caso, está vacía.
2. Bloque try
php
Copiar código
try {
// Crear una conexión con PDO
$conn = new PDO("mysql:host=$host;dbname=$dbname", $user, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
3. Bloque catch
php
Copiar código
catch (PDOException $e) {
echo "There is something wrong: " . $e->getMessage();
}
conn.php
<?php
try {
$host = "localhost:3307";
$dbname = "todos";
$user = "root";
$pass = "";
} catch(PDOException $e) {
delete.php
<?php
require "conn.php";
if(isset($_GET['del_id'])) {
$id = $_GET['del_id'];
header("location: index.php");
}
index.php
<?php
require "conn.php";
?>
<!DOCTYPE html>
<html>
<head>
<title>todos</title>
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/2.2
.0/jquery.min.js"></script>
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6
/css/bootstrap.min.css" />
<script
src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/
js/bootstrap.min.js"></script>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="container">
<form method="POST" class="form-inline"
id="user_form">
<table class="table">
<thead>
<tr>
<th>#</th>
<th>Task Name</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<?php while($rows = $data-
>fetch(PDO::FETCH_OBJ)): ?>
<tr>
</tbody>
</table>
</div>
<script type="text/javascript">
$('#user_form').on('submit', function(event){
event.preventDefault();
var name = $('#task').val();
if(name != '')
{
//console.log(name);
$.ajax({
url:"insert.php",
method:'POST',
data:new FormData(this),
contentType:false,
processData:false,
success:function(data)
{
alert(data);
$("#action").val("Insert");
$('#button_action').val("Insert");
}
});
}
else
{
alert("Both Fields are Required");
}
});
</script>
</body>
</html>
insert.php
<?php
require "conn.php";
if($_POST["action"] == "Insert") {
$task = $_POST['mytask'];
//header("location: index.php");
?>
style.css
form {
margin-top: 91px;
margin-left: 281px;
}