Gå til innhold

PHP Mysqli Print hvis resultat


Anbefalte innlegg

Hei

 

Jeg har en kode som henter data fra en Mysql database.

Jeg bruker en plugin til wordpress som heter phpsnippet.

 

Koden til denne ser slik ut:

 

$db_handle = mysql_connect($server, $user_name, $password);
mysql_set_charset("utf8", $db_handle);
$db_found = mysql_select_db($database, $db_handle);
 
if ($db_found) {
 
$SQL = "SELECT * FROM nestemote limit 1";
$result = mysql_query($SQL);
while ( $db_field = mysql_fetch_assoc($result) ) 
{print "Tale v/ ". $db_field['taler']. "<BR>";}
 
mysql_close($db_handle);
 
}
else {
 
print "Database NOT Found ";
mysql_close($db_handle);
 
Denne henter navnet på taler på ett arrangement , og printer den på hjemmesiden.
Noen arrangementer har ikke taler, og jeg ønsker at den skriver "Tale v/ " foran navnet på taleren, hvis det er taler på arrangementet. Hvordan kan jeg gjøre dette?
 
 
Lenke til kommentar
Videoannonse
Annonse

Heisann! Først av alt! 

$db_handle = mysql_connect($server, $user_name, $password); // This extension was deprecated in PHP 5.5.0, and it was removed in PHP 7.0.0. Instead, the MySQLi or PDO_MySQL extension should be used.

alle mysql__ funksjoner er utdatert av blant annet sikkerhetsmessige årsaker og unngåes å brukes.

Det finnes så mange exploits som kan resultere i en ødelagt nettside. Unngå!  :w00t:

 

Så til hva du ønsker å gjøre. Jeg har skrevet kode som du nærmest kan kopiere og lime inn. Du trenger bare å gjøre om host, database navn, bruker og passord, samt navnet på kolonnene i databasen og ikke minst HTML koden som genereres. All kode er kommentert så du kan følge med.

 

Oppsett av tilkobling med PDO

$db_creds = [
  "host"      => "127.0.0.1", // Som regel dette
  "name"      => "databasenavn", // Navnet på databasen
  "user"      => "danlevi", // brukernavnet for MySQL brukeren
  "password"  => "NkXRSypCxfh8vpih", // passordet for MySQL brukeren
  "charset"   => "utf8" // Definerer tegnsett
];
$dsn = "mysql:dbname={$db_creds['name']};host={$db_creds['host']};charset={$db_creds['charset']}";
// Variabel for databasetilkoblingen
$dbh;

Logikk for å hente ut rader med taler

// try catch blokk, fint hvis det er noen feil, da trenger ikke siden å krasje...
try {
  // Koble til databasen
  $dbh = new PDO($dsn, $db_creds['user'], $db_creds['password']);
} catch (PDOException $e) {
  // Her kan du gjøre feilhåndtering..
  echo 'Tilkobling feilet med følgende feilmelding: ' . $e->getMessage();
} finally {
  // Vi definerer at talen må være lenger enn denne variabelen. Som er 0 i dette tilfellet.
  $taleLengde = 0;
  // SQL koden. merk CHAR_LENGTH(`tale`) og :taleLengde, vi sjekker i spørringen om lengden på strengen i kolonnen tale er større enn 0. (:taleLengde forklares nærmere nedenfor)
  $sql = '
    SELECT * FROM `nestemote` WHERE CHAR_LENGTH(`tale`) > :taleLengde
  '; // kolonnenavn som inneholder tale
  // prepare SQL koden
  $sth = $dbh->prepare($sql);
  // Vi har ikke kjørt kommandoen enda
  // :taleLengde - Vi binder variabelen $taleLengde som er 0 ved å anngi ett array som argument nr2 i execute funksjonen.
  $sth->execute(
    array(":taleLengde"=>$taleLengde)
  ); // Nå har vi kjørt kommandoen
  // Henter et array med objekter fra tabellen hvor kolonnen taler har tekst
  $taler = $sth->fetchAll(PDO::FETCH_CLASS);
  // variabel for å holde den genererte HTML koden
  $talerHTML = "";
  // For hver tale
  foreach ($taler as $taleObj) {
    // Eksempel HMTL markup av taleseksjonen
    $talerHTML .= "
      <div class='taleSeksjon'>\n
        <h3 class='taler'>Tale v/ {$taleObj->taler}</h3>\n
        <p class='tale'>{$taleObj->tale}</p>\n
      </div>\n
    ";
  }
  // Dette er sikkert feil men viser utdata av den genererte HTML markupen
  echo "
    <div class='sideSeksjon'>\n
      <div id='taleWrapper'>\n
        $talerHTML
      </div>\n
    </div>\n
  ";
}

Generert HTML

<div class="sideSeksjon">
  <div id="taleWrapper">
    <div class='taleSeksjon'>
      <h3 class='taler'>Tale v/ Dan-Levi</h3>
      <p class='tale'>Det stilles store krav til den som skal holde en takk for maten tale, og derfor er det til stor ære over at akkurat jeg fikk dette oppdraget....</p>
    </div>
    <div class='taleSeksjon'>
      <h3 class='taler'>Tale v/ Per</h3>
      <p class='tale'>Synger man sammen, skapes det en følelse av fellesskap og stemningen på festen stiger....</p>
    </div>
    <div class='taleSeksjon'>
      <h3 class='taler'>Tale v/ Siri</h3>
      <p class='tale'>Å skrive tale kan være vanskelig. Derfor har de fleste politikere, kongehuset, næringslivtopper m.m. egne taleskrivere, men det har ikke jeg! I dag.....</p>
    </div>
    <div class='taleSeksjon'>
      <h3 class='taler'>Tale v/ Kari</h3>
      <p class='tale'>En tale for de tykke og de smale</p>
    </div>
  </div>
</div>

Her har du alt du trenger, bortsett fra den genererte HTML koden her som bare er ett eksempel.

Endret av Dan-Levi
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...