MySQL Katılıyım, görsel bir gösterimle ilgileniyoruz. Basit birleştirme örnekleri.

Formlar bugün hemen hemen herhangi bir web uygulamasının bir parçasıdır. Thea, uygulamayı kullanan kişilerden girdi almak için ana yöntemdir. E-posta adresinizi, yalnızca e-posta adresinizi, çok uzun süredir veya hatta yüzlerce alanlara yönlendirdiğiniz bir alandan uzaklık biçimindedir.

Uzun formları kullanıcı dostu yapmak için, formu birden fazla sayfada yaymak iyi bir fikirdir. Bu, bir alışveriş sepeti ödeme formundaki ödeme verilerinden ayrı ayrı kişisel müşteri bilgilerindeki verileri takip etmeyi kolaylaştırabilir).

Formu birden fazla sayfa üzerinden bölmekten kaynaklanan zorluklardan biri, gereken verilerin işleme için hazır verilerin son noktasında olduğu gibi, verileri bir sayfadan diğerine geçiyor. Bunu yapmak için iki yönteme bakacağız: Oturum değişkenleri ve gizli giriş alanları.

Yine de oturumlar nelerdir?

Bir HTML oturumu, kullanıcı belirli bir sitenin sayfalarını gezinirken durumunu tutan bir değişken koleksiyonudur. Yalnızca oluşturan etki alanına sunulacak ve kullanıcı siteyi terk ettikten veya tarayıcısını kapattıktan hemen sonra silinir.

Bu nedenle, oturumun yarı-kalıcı bir yapıya sahiptir ve ziyaretçilerin siteyi ziyaret ederken arazilerinin bulunduğu farklı sayfalar boyunca değişkenleri geçmek için kullanılabilir.

Oturumları kullanarak çok sayfalı form

Örneğimizde, bir üyelik kayıt ve ödeme formunu yeniden adlandıran üç sayfa formu oluşturacağız. İlk sayfa, müşterinin adını ve adresini isteyecek, ikinci sayfada üyelik türü için seçimi var ve üçüncü ve son sayfada, ödeme verilerinin verilmesi gerekiyor. Son adım, verileri MySQL'de kaydetiyor.

Oluşturacağımız ilk dosya (Formun 1. Adımı) iki alanla sadece basit bir form içerecektir.

Tamam, bu yüzden hiçbir şey, 2'den fazla giriş alanı ve bir SuniTon'a adım 2'ye götürmek için 2. sayfada, Üyelik verilerini toplamak için HTML formunun yanı sıra, gönderilen verileri adım 1'den kaydetmek için koda ihtiyacımız olacak. Oturum, toplantı, celse.

3. Adım 3'te, tekrar yeni oturum değişkenleri oluşturmalıyız, POST tarafından alınan değerler atayın ve formun son bölümünü oluşturmalıyız.

Şimdi formun 3. adımını oluşturduk, soluncu, MySQL veritabanındaki verileri ekleyen nihai işlem komut dosyasıdır.

Ve biz bitti. Lütfen nihai sorguda, $ _SESSESSION dizisinden veri kullanıyoruz ve ayrıca formun son adımından gelen $ _POST dizisinden veri kullanıyoruz.

Standart yazılım ürünlerinin geliştirilmesine de uygulanabilse de yerel kullanım. Ancak makale bunun hakkında konuşmayacak.

Genellikle, dillerin her birinde veritabanlarıyla çalışırken, çeşitli raporlara, grafiklere ve benzeri bir veri örneği yapmak için bir veri örneği yapmak için bir görev vardır. Kural olarak, bu tür görevleri uygularken, bir kişiyi, ancak birkaç tablo kullanmak, onları tek bir talebe birleştirerek, tasarımını önemli ölçüde karşılaştırır. Aynı zamanda, verilerin nasıl görüntüleneceği göz önünde bulundurmanız gerekir, tabloları nasıl "yukarı çekecek" ve hangi sonuç programcı için en çok kabul edilebilir olacaktır. Bu görevleri çözmek için, Standart MySQL-Join Dil tasarımından biri kullanılır.

Kelime Kavramı.

Veritabanı Geliştirme Dilleri, tam olarak bu dilin, temel olarak, İngilizce konuşan sözlüklerden standart kelimeleri (bu yüzden, bilmeniz şartıyla) alındığı önemli değildir. ingilizceTablolarla çalışmanız için çok daha kolay olacaksınız). Numunedeki tabloların bağlantısını uygulamak için, aynı kelime alınır - katılın. SQL'im veritabanı programlama dilinde kullanılır. Bu hizmet kelimesinin çevirisi tam olarak dilin kendisiyle aynıdır - "Union".

MySQL tasarımının yorumlanması - Katılın, bunlardan herhangi biri ile tamamen aynı olacaktır. Tasarım atamasının şifresini çözüyorsanız, yani operasyonun şeması, aşağıdaki değeri elde ederiz: Tasarımlar, gerekli alanları farklı tablolardan almanıza veya bir numunedeki isteklerden yatırım yapmanızı sağlar.

Birleştirilecek tasarım türleri

Programcının birkaç tablodan bir örnek alması gerekiyorsa ve bunlar içindeki anahtar alanların hangi anahtar alanların rapor için gerekli olduğunu biliyorsa, istenen sonucu elde etmek için ana tasarım yapılarından birini kullanabilirsiniz. Temel yapılar (tabloları birleştirmek için) dört:

  1. İç birleşim.
  2. Çapraz katılmak.
  3. Sol yönden katılım.
  4. Sağ katılmak.

Göreve bağlı olarak, standart yapıların her biri verecek farklı sonuçlarBu, kısa sürede farklı parametrelerle ilgili raporlar almanıza izin verecektir.

Daha fazla kullanım için tabloları oluşturma ve doldurma

Başlamadan önce, örneğin, tasarımları birleştiren veri ile çalışma mekanizmalarını düşünün, çalışmaya devam edeceğimiz birkaç tablo hazırlamaya değer. Bu, tüm operatörlerin çalışmalarının tüm ilkelerini görsel olarak göstermeye yardımcı olacaktır, bu nedenle yeni gelenler, tablo programlamanın tüm temelleri için daha kolay olacaktır.

İlk tablo, bir kişinin hayatında sürekli olarak bulunduğu bazı maddeleri tanımlayacaktır.

İkinci tabloda, ilk tablodaki nesnelerin bazı özelliklerini açıklar, böylece onlarla daha fazla çalışabilmeniz için.

Genel olarak, iki tablo, çalışmalarını örnekte göstermek için yeterli olacaktır. Artık tasarımlarımızın pratik olarak değerlendirilmesine devam edebilirsiniz.

İçselleştirme kullanarak.

MySQL tasarımını kullanırken - Inheer'e katılın Bazı özelliklerinden bazılarını dikkate almalısınız. Bu tasarım, her iki tablodan da yalnızca ilk ve ikinci tabloda olan kayıtlardan seçim yapmanızı sağlar. Nasıl çalışır? İlk tabloda, tablodaki kayıt sayısını gösteren ana anahtar kimliğine sahibiz.

İkinci bir tablo oluştururken, aynı anahtar bir dizi numarası olarak kullanılır, resimlerde bir örnek görüntülenebilir. Veri seçildiğinde, SELECT ifadesi sadece sıra numaraları çakışan kayıtların sonucunu belirler - ilk önce ve ikinci tabloda oldukları anlamına gelir.

Tasarımı kullanırken, hangi verilerin elde edilmesi gerektiğini anlamanız gerekir. Özellikle acemi programcısında en yaygın hata, içsel birleştirme tasarımının irrasyonel ve uygunsuz kullanımıdır. Bize daha önce tarif edilen ve tamamlandıktan sonra bize geri dönecek olan komut dosyasını dikkate alabileceğiniz gibi, nesneler ve özellikleri hakkında tablo bilgileri. Ancak burada tasarımı kullanmanın birkaç yolu olabilir. Bu planda, SQL'm çok esnek bir dildir. Öyleyse, MySQL İç Katılımı Kullanma Örneklerini göz önünde bulundurabilirsiniz.

Herhangi bir parametre belirtmeden masaları birleştirin. Bu durumda, böyle bir planın sonucunu alırız:

Hizmet sözcüğünü kullanarak, tablolardaki kayıtların ana anahtarlarını göz önünde bulundurmanız gerekirse, numunenin sonucu çarpıcı bir şekilde değişecektir. Bu durumda, yalnızca aynı ana anahtarlara sahip olan satırları geri dönecek bir örnek alıyoruz.

Tasarımın üçüncü bir düzenlemesi, tabloların gerçekleşmesi gereken "Açık" kelimesi ile bu sorguda belirtildiğinde de mümkündür. Bu durumda, seçim aşağıdaki verileri döndürür:

Sol birleştirme kullanmanın özellikleri

MySQL-Join Tasarımını kullanarak tabloları birleştirmenin başka bir yolunu düşünüyorsanız, görüntülenen verilerdeki farkı görebilirsiniz. Bu mekanizma sol tasarımdır.

Sol Birleştir'i kullanarak MySQL tasarımın bazı özellikleri vardır ve iç gibi, elde etmeniz gereken sonucu net bir şekilde anlaşılmasını gerektirir.

Bu durumda, ilk tablodaki tüm kayıtlar önce seçilecektir ve daha sonra ikinci özellikler tablosundan daha sonraki girişler eklenecektir. Aynı zamanda, bir kayıt varsa, örneğin bir "dışkı" olup, ikinci tabloda bunun için bir özellik yoktur, daha sonra sol açıklama, NULL değerini görüntüler, bu da programcının olmadığını söyleyen null değerini gösterir. işaret.

Bu tasarımın kullanımının hangi alanların veya örneğin, mağazadaki malların fiyatı vb. Gösterilmesine izin verilecektir.

Sol kullanmanın bir örneği.

Hakaret için, pratikte, Sol MySQL tasarım operatörü birleştirin daha önce tarif edilen tabloları kullanır. Örneğin, mağazada bulunan tüm ürünlerin tüm listesini seçmeniz ve bazılarını kontrol edilmesini kontrol etmeniz gerekir. Bu durumda, numune ekrandaki tüm malları görüntüler ve özellikleri olmayanlar için boş değerler yapıştırılır.

Katıl Tasarımında Nerede Kullanın

Bir parametre olarak, birleştirme yalnızca tablonun bağlandığı alanların talimatlarını da içerebilir, ancak nerede durum operatörünü içerebilir.

Örneğin, yalnızca işaretin yapıştırılmadığı kayıtları iade etmeniz gereken komut dosyasını düşünün. Bu durumda, durum operatörü birleştirme tasarımına eklenmeli ve sonuç olarak tam olarak ne döndürülmesini belirtmelidir.

MySQL Katılında kullanıldığında - yalnızca belirtilen koşulun ait olduğu kayıtların gösterildiğini açıkça anlamanız gerektiğinde ve örnek daha sonra şöyle görünecektir:

Bu sorgular, seçilen programcı durumuna başvuran belirli verilerde numuneleri yapmayı mümkün kılar. Bu koşullar, aynı zamanda, veri seçim parametrelerini kombine tablolardan belirlemek birkaç tarafından belirtilebilir.

Tablolardaki verileri değiştirmek için Katılın kullanılması

Temel olarak evrensel tasarıma katılın. Yalnızca çeşitli örnekler yapmayı, aynı zamanda birden birkaç tablodan gelen isteklere bağlanmak için de, numuneye ek koşulları girin. Tasarım ayrıca diğer veri işlemleri için de kullanılabilir. Böylece, tablodaki verileri değiştirmek için katılmak için birleştirilebilir. Aksine, tablodaki koşulları veya aynı koşullara göre birkaç tablodaki verileri güncellemeniz gereken durumlarda netleştirmek için.

Örneğin, böyle bir görevi düşünün. Bazı verilerin olduğu üç tablo vardır. Her iki tablodaki verileri bir istek kullanarak değiştirmeniz gerekir. Sadece bu tür görevleri çözmek için Güncelleme Komutu'na katılmak için uygulanabilir. Katıl Tasarım Tipinin kendisi, bir veri örneği durumunda, programcının elde etmek istediği sonuçtan da bağlıdır.

En kolay örneği düşünün. Aynı koşullarda bir istek verisi ile güncellemeniz gerekir. Bu tür talepler veritabanıyla çalışmayı optimize etmek için inşa edilmiştir. Tüm manipülasyonları tek bir istekle geçirirseniz, tabloların her biri için farklı istekleri yazıyorsunuz? Bizim davamızda bir katılım örneği böyle olacak:

Kompleks talepleri inşa etmek

Çoğu zaman, bir veritabanıyla çalışırken, sadece birkaç tablo kombinasyonu ile değil, aynı zamanda alt sorguları kullanarak sorgular oluşturmanız gerekir. Bu tür görevler, acemi programcı veritabanlarını anlamak için oldukça karmaşıktır. Karmaşıklık, her adımda düşünmenin gerekli olması, hangi tabloya veya talebin hangi verilerinin elde edilmesi gerektiğini belirlemek için gerekli olmasıdır ve gelecekte çalışmak için gerekli olacaktır.

Daha spesifik bir anlayış için, (MySQL Katılında) karmaşık sorguların örneklerini göz önünde bulundurabilirsiniz. Eğer yeniyseniz ve sadece veritabanlarıyla çalışmaya başlayın, o zaman böyle bir eğitim yalnızca faydalanır. İdeal seçenek olacak

Bu sorgu, dengenin doldurulduğu veya var olduğu satış sözleşmelerinde ABD 58 girişine geri dönecektir. para Seçilen tarihte. Bu durumda, bu geçerli tarihtir. Numuneye ayrıca bir durum da sözleşmenin başlığında semboller olmalıdır - "123". Ekranda (veri) görüntülenen bilgiler, sözleşme numarasında sıralama yapacaktır.

Aşağıdaki örnek, sözleşme numarasının belirtileceği tüm ödemelerdeki verileri görüntüleyecektir.

Subqueries kullanın

Daha önce de belirtildiği gibi, yalnızca tabloları değil, veritabanları ile çalışırken sorguyu olan bir tabloyu da birleştirmek mümkündür. Bu tasarım esas olarak talebin ve optimizasyonun çalışmasını hızlandırmak için kullanılır.

Örneğin, alanların birkaç hücresine sahip olan tablodan gerektiğinde, bir bin giriş, yalnızca iki alan seçin, ardından yalnızca gerekli alanları döndürecek ve ana verilerle birleştirecek isteği kullanmalısınız. örneklem. Nasıl Örnek mysql Katıl Seçimi Bu tür bir istekle görüntülenebilir:

Bunlar, Standart MySQL yapılarını kullanmanın her yolu değil, yalnızca standart değildir. Birleştirme tasarımını nasıl kullanacağınız ve türlerinin ne türlerindeki, programcı kendisi çözer, ancak sorguyu yürütürken sonuçların elde edilmesi gerektiği sonucu hatırlamaya değer ve dikkate almaya değer.

MySQL'de, birleştirme kullanılarak örnek üretilebilir farklı yollar. Tüm bu istekleri düşünmeye çalışacağız. Katılın katılımıyla tüm isteklerin bir listesi:

  1. İç birleşim.
  2. SOL YÖNDEN KATILIM.
  3. Sağ katılmak.
  4. Sol masa ile kesişme yapmadan doğru katılın
  5. Tam dış
  6. Sol veya sağ masanın boş olduğu tam dış

Ancak bu tür katılımların illüstrasyonu:

Site dosyalarımızın dosyalarını ekleyeceğim, aralarında tüm kayıtları geri çekeceğim. farklı operatörler Katılmak.

İç birleşim.

Bu operatör iç katılmasıyla başlayalım, çünkü bu operatör sadece sorguya katılıyorsanız, varsayılan olarak tetiklenir. Bu operatör, operatörden sonra durumun çalıştığı iki tablodan tüm kayıtları seçer. İki tablo dosya ve mesajımız var:

Mesajlar tablosu:

Katılın isteği aşağıdakiler olacaktır:

Mesajlardaki Mesajlardaki * Mesajlar.FID \u003d Dosyaları.

Sonuç olarak, bu tür girişler gösterilecektir.

Dosyalar Tablo:

Sol birleştirme, mesajların tüm kayıtlarını görüntülerken ihtiyaç duyacaktır ve ekli bir dosya varsa, PHP üzerinden kontrol edeceğiz.

Sağ masa ile kesişme yapmadan sola katılın

Sol birleştirme, fidin doğru tabloda çakıştığı gibi, sol masadan tüm kayıtları görüntüler.

Mesajlar tablosu:

Kavşaksız sol katılma isteği aşağıdakiler olacaktır:

Mesajlardaki mesajlardan * seçeneğini seçin.FID \u003d Files.FID dosyaları.fid null null olduğunu

Sonuç olarak, bu örneği burada alırız:

Dosyalar Tablo:

Tüm ekli dosyaları farksız görüntülerken, sadece tüm dosyalarda, tüm ekli dosyaları görüntülemediğinizde doğru birleştirme gerekli olacaktır.

Kavşaksız doğru katılın

Kavşaksız sağ bir katılım, sol tablonun kesiştiği olanlar dışında, doğru tablodaki tüm kayıtları görüntüler.

Mesajlar tablosu:

Kavşaksız sağ katılma isteği aşağıdakiler olacaktır:

Mesajlardan * SEÇİN (Mesajlar'daki dosyaları sağa katılın .FID \u003d Dosyaları.FID Mesajlar.

Bu yüzden aşağıdaki verileri elde ettik:

oRTA gövde metni. fida yol.
BOŞ BOŞ 1 /Files/1.png.

Herhangi bir mesaja eklenmeyen tüm ekli dosyaları görüntülerken doğru birleştirme gerekecektir. Örneğin, kullanılmayan dosyaları görüntülemek istiyorsak.

Tam dış katılmak.

SQL dilinde, MySQL'de tam dış birikimde bulunduğuna rağmen bu operatör değil. Gerçek şu ki, benzer bir operatör sunucuda büyük bir yük. Şimdi 3 dosya ve 3 mesajımız var ve 4 satır, sorgunun yürütülmesi sonucu oluşur. Buna bir istek yazmak için iyi bir fikir olduğundan emin değilim. Ancak yine de tam dış katılma isteğini taklit etmek mümkündür.

Mesajlar tablosu:

Tam Dış Üretim İsteği Emülasyonu aşağıdaki gibi olacaktır:

* Mesajlardan * öğesini seçin. Mesajlar .FID \u003d dosya dosyalarını birleştirin.

Bu sorguda, Sol Katılma ve Sağ Katılın için iki isteği birleştirmek için Union ifadesini kullanıyoruz.

Sonuç olarak, aşağıdaki girişleri alacağız:

oRTA gövde metni. fida yol.
1 Ölçek 2 /Files/2.png.
2 SELAM BOŞ BOŞ
3 Merhaba. 3 /Files/3.png.
BOŞ BOŞ 1 /Files/1.png.

Ve burada tam dış katmanın neden gerekli olacağını söylemek zor buldum. Ancak bir kez SQL'de, sonra görünüşte gerekli.

Kavşaksız tam dış katılmak

Başka bir katılım türü, tam dış bir katılımdan daha da çıldırır, yani kavşaksız tam dış katılır. Bu tür bir katılın kullanabileceğinizi bile teklif edemiyorum. Sonuç olarak, kullanılmayan dosyaları ve dosyalar olmadan mesajlar alırız. Ve muhtemelen zaten tahmin ettin bu operatör de değil MySQL'de. Yalnızca Teklifler olmadan iki sol birikim operatörünün yardımıyla taklit etmek için kalır.

Kavşaksız Tam Dış Kepçe Sorgu Emülasyonu:

$ SQL \u003d "SELECT * Mesajlardan * SEÇİMİ Mesajlar.FID \u003d dosya dosyalarını birleştirin.

Sonuç olarak (kaynak tablolar, tam dış katılmakla birlikte olduğu gibi aynıdır) alacağız:

oRTA gövde metni. fida yol.
2 SELAM BOŞ BOŞ
BOŞ BOŞ 1 /Files/1.png.

Muhtemelen hepsi, aşağıdaki derste, bir kerede birkaç tabloya daha karmaşık talepler yazmaya başlayacağız.

Tarayıcınızda bir javascript engellendi. Site çalışması için JavaScript'e izin ver!

Formlarla çalışmak

HTML-Formlar, veri sayfasının web sayfasından veri aktarmak için kullanılır. PHP'de formlarla çalışmak için bir dizi özel fon sağlar.

Önceden tanımlanmış değişkenler

PHP'de, belirli bir ortamda tüm uygulamaları gerçekleştirirken değişmeyen bir dizi önceden tanımlanmış değişken vardır. Ayrıca ortam değişkenleri veya değişkenleri de denir. Apache'nin web sunucusunun ayarlarını yanı sıra bu tarayıcının istek hakkında bilgi yansıtıyorlar. URL değerleri, sorgu dizeleri ve diğer HTTP istek öğeleri elde etmek mümkündür.

Önceden tanımlanmış tüm değişkenler $ Küresel İlişkili Dizide yer almaktadır. Çevre değişkenlerine ek olarak, bu dizi ayrıca programda tanımlanan genel değişkenler içerir.

Örnek 1.

$ Globals Dizisini Görüntüleyin $ Value) echo "\\ $ globals [\\" $ tuşu \\ "] \u003d\u003d $ değeri
"; ?>

Sonuç olarak, çevre değişkenleri de dahil olmak üzere ekranda tüm genel değişkenlerin bir listesi görünecektir. En sık kullanılanlar:

DeğişkenAçıklamaBina
$ _Server ["http_user_agent"]İsim ve Müşteri SürümüMozilla / 5.0 (uyumlu; GoogleBot / 2.1; + http: //www.google.com/bot.html)
$ _Server ["remote_addr"]IP adresi144.76.78.3
getenv ("http_x_forwarded_for")Dahili İstemci IP Adresi
$ _Server ["Request_method"]İstek yöntemi (GET veya POST)Almak.
$ _Server ["query_string"]URL ile iletilen kodlanmış verileri talep ederken
$ _Server ["Request_url"]Bir sorgu dizesi de dahil olmak üzere müşterinin tam adresi
$ _Server ["http_referer"]İsteğin yapıldığı sayfanın adresi
$ _Server ["php_self"]Programın Yolu Yürütülmesi/İndex.php.
$ _Server ["server_name"]Alan adıİnternet sitesi
$ _Server ["Request_uri"]Yol/Php/php_form.php.

Kullanıcı Girişi İşleme

PHP giriş işleme programı, giriş kalıpları içeren HTML metninden ayrılabilir ve bir sayfada düzenleyebilirsiniz.

Örnek 2.

Giriş işleme örneği

"Yöntem \u003d" POST "\u003e

Kart numarası:

Burada veri aktarımı yok, çünkü Bir alandan oluşan bir form, tuşuna bastığınızda otomatik olarak iletilir. .

Seçilen tüm değerlere erişmek için çok değerli bir seçim içeren bir öğeyi işlerken, elementi adına bir kaç köşeli parantez eklemeniz gerekir. Birden fazla element seçmek için, CTRL tuşunu basılı tutun.

Örnek 3.1.

Liste

Örnek 3.1'in sonucu:

Çay kahve süt jambon peyniri

Örnek 3.2.

EX1.HTM dosyasından işleme listesi

    "; Foreach ($ ürün olarak $ değer olarak) echo"
  • $ Değeri "; echo"
"; ?>

Örnek 4. Onay Kutusu-Bayraklarından Değerleri Alın

$ V) (eğer ($ v) echo "Programlama dilini biliyorsanız $ K!
"; Else Echo" Programlama dilini bilmiyorsunuz $ k.
"; } } ?>
"Yöntem \u003d" POST "\u003e Hangi programlama dillerini biliyorsunuz?
Php.
Perl

Örnek 4'in sonucu:

Hangi programlama dillerini biliyorsunuz? Php. Perl

Örnek 5.

"; ?>
"Yöntem \u003d" POST "\u003e

Gerçek alan adları hakkında endişelenmeden formları işleyebilirsiniz.

Bunu yapmak için, (iletim yöntemine bağlı olarak), $ http_get_vars veya $ http_post_vars'ın ilişkisel bir dizisini kullanabilirsiniz. Bu diziler, iletilen formun her bir elemanı için çift isim / değer içerir. Eğer umursamıyorsanız, bir ilişkisel dizi $ _REQUEST kullanabilirsiniz.

Örnek 6.

Transfer yönteminden bağımsız olarak rastgele girişin işlenmesi $ Value) echo "$ key \u003d\u003d $ değeri
"; ?>

Örnek 7. "@" operatörünü kullanarak düğmeye basmak.

">

Header () işlevini kullanarak, tarayıcı başlığını gönderme, kullanıcıyı yeni bir sayfaya yönlendirebilirsiniz.

Örneğin:

Dosyayı sunucuya aktarın. Dosyayı dökün. Yükleme.

PHP dosyaları sunucuya iletmenizi sağlar. Dosyayı iletmek için tasarlanmış HTML formu, ektype \u003d "Multipart / Form-Data" argümanı içermelidir.

Ek olarak, Max_File_Size adına sahip gizli bir alan, dosyayı kopyalamak için dosyanın önündeki formda olmalıdır. İletilen dosyanın maksimum boyutu bu Gizli alanda kaydedilmelidir (genellikle 2 MB'den fazla değil).

Alanın kendisi dosyayı aktarmaktır - türlü giriş elemanı Type \u003d "" Dosya "argümanı ile.

Örneğin:

"Yöntem \u003d" POST "\u003e

Dosya sunucuya aktarıldıktan sonra, benzersiz bir ad alır ve geçici dosyalar için dizinde saklanır. Dosyanın tam yolu, adı bu dosyayı aktarmak için adı alan adıyla eşleşen Global değişkene kaydedilir. Ek olarak, PHP, diğer global değişkenlerde iletilen dosya hakkında daha fazla bilgi korur:

Örnek 8.

Aktarılan dosyanın işlenmesi "; Echo" adı: "$ _ dosyaları [" userfile "] [" İsim "]."
"; Echo" boyutu: "$ _ dosyaları [" userfile "] [" Boyut "]."
"; Echo" tipi: ". $ _ Dosyaları [" userfile "] [" Tip "]."
"; } ?>
"Yöntem \u003d" POST "\u003e

Dosyaları sunucuya indirme örnekleri

İndirilen dosyanın kod kodlama sunucusuyla ilgili sorunlar varsa, kod sembolü 0x00 Bir boşlukla değiştirildi (kod sembolü) 0x20), Dosyaya ekle httpd.conf. Apache kataloğundan (/ usr / local / apache) aşağıdaki satırlardan.

Charsetrecodemultipartforms kapalı

Önemli bir süre boyunca, web geliştirici kariyerinin başlangıcında, bildiğim gibi verilen veritabanıyla çalıştım ve pek bir şey bilmiyordum. Basit ilkel istekleri ve bazen de döngüler için istekleri bile ekledi. O zaman, maalesef ellerime girmedim, MySQL'deki doğru kitap ve öğrenmek numuneler ve hatalar tarafından gerçekleştirildi. İnternetteki birçok makale bir şekilde bir şekilde bana harika bir MySQL sorgusu - katıl.
Bu yayında, size katılmak için tüm olası seçenekleri anlatacağım ve ayrıca, her ekibin çalışma ilkesini görsel olarak sunacağım.

Düşüneceğiz:

  1. İç birleşim.
  2. SOL YÖNDEN KATILIM.
  3. Sağ katılmak.
  4. Dış katılmak.
  5. İçselleştirme hariç sola katılın
  6. İçselleştirme hariç doğru katılın
  7. İç katılma hariç dış katılmak

Ayrı olarak, 5.6 ve 7. paragraflara dikkat etmeye değerdir. Aslında, bu talepler iki tablo bağlamaz, ancak aksine, diğerinde bulunan sütunlar bir tablodan dışlanır. Aslında, bu çok faydalı olabilir.

İç birleşim.

En yaygın sorgulardan biri son derece sıklıkta. Bu sorgu, tüm kayıtları sol masadan (sekme A) ve kayıtları (sekme b) iade edecektir, ancak yalnızca çakışan sütunlar iade edilecektir.

Örnek Talep:

SQL kodunu görüntüle

Seçmek< select_list> Table_A'dan bir içsel birleştirme tablosu_b B'de A. Tuş \u003d B. anahtar

SOL YÖNDEN KATILIM.

Bu sorgu, tüm sütunları sol masadan (sekme A), yanı sıra sağ tablodaki tüm sütunlar (sekme) iade edecektir (sekme. B), ancak sadece sol tablodaki sütunlarla çakışır.

Örnek Talep:

SQL kodunu görüntüle

Seçmek< select_list> Table_A'dan Sol Bir Sol Birleştir A. Key \u003d B. Anahtar

Sağ katılmak.

Önceki sorguya benzer şekilde, ancak tüm sütunları doğru tablodan (sekme b) yanı sıra, sağ tablodaki sütunlarla çakışan sol tablonun (sekme) arasındaki tüm sütunlardan iade edecektir.

Örnek Talep:

SQL kodunu görüntüle

Seçmek< select_list> Table_A'dan bir sağa birleştirin Table_b B'de A. Key \u003d B. Anahtar

Dış katılmak.

Genellikle, bu istek tam dış katılma veya tam birleştirme olarak kaydedilir, tüm varyasyonlar bir işlem yapar, yani, her iki tablodan tüm sütunları her iki tablodan iade ederken, çakışan sütunlar sol masadan sütunlarla kaplanacaktır.

Örnek Talep:

SQL kodunu görüntüle

Seçmek< select_list> Table_A'dan tam bir dış bir dış katılır. A. Key \u003d B. anahtarında

Katılmak hariç sol.

Bu istek, tüm sütunları sol tablodan (sekme) sağ tablodaki sütunlarla çakışmayan (sekme) döndürür.

Örnek Talep:

SQL kodunu görüntüle

Konuya devam ediyor:
Akıllı telefon

Minitool Güç Veri Kurtarma Serbest Sürümü, verileri kurtarmak için tasarlanmış kullanımı kolay bir programdır. Minitool Güç Veri Kurtarma ile çalışmak için ...