|  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
Programmering
  • C /C + + -programmering
  • Computer Programspråk
  • Delphi Programmering
  • Java Programming
  • JavaScript programmering
  • PHP /MySQL Programmering
  • perl Programmering
  • python Programming
  • Ruby programmering
  • Visual Basics Programmering
  • * Dator Kunskap >> Programmering >> PHP /MySQL Programmering >> Content

    Jämför ett fält från tabell med olika och använder PHP MySQL?

    Det bästa sättet att jämföra ett fält från en tabell med olika värden i en annan tabell med PHP och MySQL beror på den specifika jämförelse du behöver utföra. Här är flera scenarier och hur man hanterar dem:

    Scenario 1:Kontrollera om ett värde finns i en annan tabell

    Låt oss säga att du har två tabeller:"Användare" och "beställningar". Du vill hitta alla användare som har gjort minst en beställning.

    * Tabell `Användare`: `user_id`,` namn '

    * Tabell `Order`: `Order_id`,` user_id`, `order_date`

    PHP -kod:

    `` `php

    $ conn =new mysqli ("your_db_host", "your_db_user", "your_db_password", "your_db_name");

    if ($ conn-> connect_error) {

    Die ("Anslutning misslyckades:". $ conn-> connect_error);

    }

    $ sql ="Select U.User_id, U.Name

    Från användare u

    Där finns (

    Välj 1

    Från order o

    Där o.user_id =u.user_id

    ) ";

    $ resultat =$ conn-> query ($ sql);

    if ($ result-> num_rows> 0) {

    medan ($ rad =$ result-> fetch_assoc ()) {

    Echo "Användar -ID:". $ rad ["user_id"]. " - Namn:". $ rad ["namn"]. "
    ";

    }

    } annat {

    echo "0 resultat";

    }

    $ conn-> close ();

    ?>

    `` `

    Detta använder en "existerande" underprov, som i allmänhet är det mest effektiva sättet att kontrollera om det finns. Den kontrollerar bara om en matchande "user_id" finns i tabellen "Order", inte hämtar några data från själva tabellen "Order".

    Scenario 2:Jämförelse av värden och hitta skillnader

    Låt oss säga att du har två tabeller med ett gemensamt fält, och du vill hitta rader där värdena i ett annat fält skiljer sig åt.

    * Tabell `Products`: `Product_id`,` pris '

    * Tabell `Price_history`: `Product_id`,` pris ', `datum`

    Du vill hitta produkter där det nuvarande priset i "Products" skiljer sig från det senaste priset i "Price_history".

    PHP -kod:

    `` `php

    $ conn =new mysqli ("your_db_host", "your_db_user", "your_db_password", "your_db_name");

    if ($ conn-> connect_error) {

    Die ("Anslutning misslyckades:". $ conn-> connect_error);

    }

    $ sql ="Select p.product_id, p.price as current_price, ph.price som history_price

    Från produkter P

    Gå med (välj produkt_id, max (datum) som max_date från price_history grupp av produkt_id) som ph_max på p.product_id =ph_max.product_id

    Gå med i Price_History Ph på ph_max.product_id =ph.product_id och ph_max.max_date =Ph.Date

    Där P.Price! =Ph.Price ";

    $ resultat =$ conn-> query ($ sql);

    // ... (resten av koden för att behandla resultaten är densamma som scenario 1)

    $ conn-> close ();

    ?>

    `` `

    Detta använder en underkvis för att hitta det senaste priset från `Price_history` för varje produkt och sedan går med med den med` Products '-tabellen för att jämföra priser.

    Scenario 3:Hitta matchningar baserade på flera fält

    Om du behöver jämföra baserat på flera fält, justera klausulen "Var" i enlighet därmed:

    `` `SQL

    Där u.user_id =o.user_id och u.city =o.city

    `` `

    Viktiga överväganden:

    * Felhantering: Koden innehåller grundläggande felhantering för databasanslutningen. Lägg till mer robust felhantering för produktionsmiljöer.

    * Förberedda uttalanden: För säkerhet, använd alltid beredda uttalanden för att förhindra SQL -injektionssårbarheter, särskilt om du integrerar användarinmatning i dina frågor.

    * databasoptimering: För stora datasätt kan du överväga att lägga till index till de fält du jämför för att förbättra frågeställningen.

    * Datatyper: Se till att datatyperna för fälten du jämför är kompatibla.

    Kom ihåg att ersätta `" your_db_host "`, `" your_db_user "`, `" your_db_password "` och `" your_db_name "med dina faktiska databasuppgifter. Välj det scenario och kod som bäst passar dina specifika jämförelsebehov. Om du har en mer specifik fråga, ge tabellstrukturerna och den exakta jämförelsen du vill utföra och jag kan ge dig mer skräddarsydd kod.

    Tidigare:

    nästa:
    relaterade artiklar
    ·Hur man dödar en MySQL -anslutning
    ·Så här öppnar Kör SQL-kommando
    ·Hur man uppgraderar MySQL
    ·Hur att ge tillgång till en MySQL databas
    ·PHP Felloggar i cPanel
    ·Hur Infoga PHP variabler i XML
    ·Hur man läser ett element i en array som en sträng i …
    ·MySQL Linux Tutorial
    ·Hur du använder PHP Mailer
    ·Hur man skapar en symbolisk länk med PHP
    Utvalda artiklarna
    ·Hur får Strings att konvertera heltal i VB.NET 2005
    ·Hur du ändrar NetBeans Font
    ·Hur man sätter in en ny rad i TextBox
    ·Hur du ansluter en Direct Java Application Interface
    ·Avinstallera Ruby 1.8.7 Med MacPorts
    ·Hur man använda vanliga uttryck för att blockera skrä…
    ·Hur att validera ett datum i Java
    ·Assemblerprogram för en IBM PC
    ·Hur Ring onSubmit metod i en Controller Från JSP
    ·Hur till Redigera PHP i Thesis
    Copyright © Dator Kunskap https://www.dator.xyz