[PHP] associare immagine ad un array

Punix

Nuovo Utente
20 Feb 2017
13
1
3
33
salve, ho creato un piccolo box di news dove mi vengono restituite notizie riguardanti eventuali compleanni ..

PHP:
<?php
// HERE add your data for connecting to MySQ database
$host = 'XXXX';           // MySQL server address
$user = 'XXXX';                // User name
$pass = 'XXXX';            // User`s password
$dbname = 'XXXXXX';          // Database name

// connect to the MySQL server
$conn = new mysqli($host, $user, $pass, $dbname);

// check connection
if (mysqli_connect_errno()) exit('Connect failed: '. mysqli_connect_error());

$oggi=date("d-m-Y");;//leggi la data atuale, attento = a come è scritta in tabella

//interroghi il db
$query="SELECT username,sesso FROM users WHERE date_format(compleanno,'%d %m') = date_format(curdate(),'%d %m');";
$ris=mysqli_query($conn, $query);

echo "<table class='bordered' style='margin:30px auto;'>
                <tr>
                <td>
                <center>
                <img src='images/news.gif' width='300' height='60'>
                <br><br>
                </center>


<div class='marquee up'><p>";

//e estrai i nomi degli utenti che compiono gli anni $oggi
while($riga=mysqli_fetch_assoc($ris)){
    $utenti[]=$riga['username'];
    $sesso=$riga['sesso'];
    
}
//se nessun utente compie gli anni
if (count($utenti) == 0) {
echo $oggi.": Oggi nessun utente compie gli anni.";
}else{


//controllo sesso utente e attribuisco immagine in base al sesso
if ($sesso == 'Uomo') {   
$img='<img src="images/uomo_s.png" width="15px" height="25px">';
}else{
$img='<img src="images/donna_s.png" width="25px" height="25px">';
}

//raggruppi i nomi
$compleanni_di_oggi=implode("<img src ='".$img."'><font color='white'>,</font> ",$utenti);//diventa es. Attenzio, Pancrazio


    
//e fai gli auguri
ob_start();
echo $oggi.": L'utente <font color='red'>$compleanni_di_oggi</font> oggi compie gli anni. <i>Intorno le ore 12:00 vi arriver&agrave; un e-mail di auguri (al 100% la troverete nella posta indesiderata o SPAM)</i>, ancora Tanti Auguri!!<img src='images/auguri.gif' width='30px' height='30px'>";
$out1 = ob_get_contents();
ob_end_clean();

//controllo numero utenti che compiono gli anni e modifico l echo di auguri in plurale o singolare
if (count($utenti) == 1) {
echo "$out1";
}
else{
$cerca = array("L'utente","compie");
$sostituisci = array("Gli utenti","compiono");
echo str_replace($cerca, $sostituisci, $out1);
}
}
echo "</p></div></td></tr></table>";
?>

il mio problema è che vorrei associare agli username che mi vengono restituiti come array un immagine in base al sesso , in modo tale che mi viene restituito username e immagine accostata...ho provato ad inserire quel tag img dentro l implode , ma nulla, ottengo solo un immagine danneggiata per ogni utente, e l ultimo utente che compie gli anni (in caso di piu utenti che compiono gli anni) dato che non è seguito dalla virgola non mi da nessuna immagine... spero di essermi spiegato bene cosa intendo fare ..qualcuno saprebbe dirmi come rimediare?
 

the_jurgs

Nuovo Utente
6 Apr 2017
31
1
8
Per fare un debug più veloce puoi postare l'output in html? Da lì ti renti subito conto del perchè non visualizza l'immagine
 

livellacri

Utente Attivo
18 Ago 2016
108
13
18
Per il problema con l'immagine devi modificare questa riga:

PHP:
$compleanni_di_oggi=implode("<img src ='".$img."'><font color='white'>,</font> ",$utenti);//diventa es. Attenzio, Pancrazio
diventa
PHP:
$compleanni_di_oggi=implode($img."><font color='white'>,</font> ",$utenti);//diventa es. Attenzio, Pancrazio

Ma nel codice ci sono anche altri problemi...
Per esempio, nella variabile img c'è l'immagine relativa all'ultimo utente, ma utilizzando implode viene utilizzata per tutti.
Dovresti utilizzare un ciclo.

edit: potresti fare qualcosa tipo così:
PHP:
<?php
// HERE add your data for connecting to MySQ database
$host = 'XXXX';           // MySQL server address
$user = 'XXXX';           // User name
$pass = 'XXXX';           // User`s password
$dbname = 'XXXXXX';       // Database name

// connect to the MySQL server
$conn = new mysqli($host, $user, $pass, $dbname);

// check connection
if (mysqli_connect_errno()) exit('Connect failed: '. mysqli_connect_error());

$oggi=date("d-m-Y");;//leggi la data atuale, attento = a come è scritta in tabella

//interroghi il db
$query="SELECT username,sesso FROM users WHERE date_format(compleanno,'%d %m') = date_format(curdate(),'%d %m');";
$ris=mysqli_query($conn, $query);

echo "<table class='bordered' style='margin:30px auto;'>
                <tr>
                <td>
                <center>
                <img src='images/news.gif' width='300' height='60'>
                <br><br>
                </center>
<div class='marquee up'><p>";

//e estrai i nomi degli utenti che compiono gli anni $oggi
if (mysqli_num_rows($ris)==0) {
   echo $oggi.": Oggi nessun utente compie gli anni.";
}
elseif (mysqli_num_rows($ris)==1) {
   $riga=mysqli_fetch_assoc($ris);
   $utente = $riga['username'];
   $sesso = $riga['sesso'];
   if ($sesso == 'Uomo') {   
       $img='<img src="images/uomo_s.png" width="15px" height="25px">';
   }
   else {
       $img='<img src="images/donna_s.png" width="25px" height="25px">';
   }
   echo $oggi.": L'utente $img <font color='red'>$utente</font> oggi compie gli anni. <i>Intorno le ore 12:00 vi arriver&agrave; un e-mail di auguri (al 100% la troverete nella posta indesiderata o SPAM)</i>, ancora Tanti Auguri!!<img src='images/auguri.gif' width='30px' height='30px'>";
}
else {
   echo $oggi.": Gli utenti ";
   $utenti = "";
   while($riga=mysqli_fetch_assoc($ris)){
       $utente = $riga['username'];
       $sesso = $riga['sesso'];
       if ($sesso == 'Uomo') {   
           $img='<img src="images/uomo_s.png" width="15px" height="25px">';
       }
       else {
           $img='<img src="images/donna_s.png" width="25px" height="25px">';
       }
       $utenti .= "$img <font color='red'>$utente</font>, ";
   }
   echo substr($utenti, 0, -2);
   echo " oggi compiono gli anni. <i>Intorno le ore 12:00 vi arriver&agrave; un e-mail di auguri (al 100% la troverete nella posta indesiderata o SPAM)</i>, ancora Tanti Auguri!!<img src='images/auguri.gif' width='30px' height='30px'>";
}

echo "</p></div></td></tr></table>";
?>
 
Ultima modifica:
  • Like
Reactions: Punix

Punix

Nuovo Utente
20 Feb 2017
13
1
3
33
Per il problema con l'immagine devi modificare questa riga:

PHP:
$compleanni_di_oggi=implode("<img src ='".$img."'><font color='white'>,</font> ",$utenti);//diventa es. Attenzio, Pancrazio
diventa
PHP:
$compleanni_di_oggi=implode($img."><font color='white'>,</font> ",$utenti);//diventa es. Attenzio, Pancrazio

Ma nel codice ci sono anche altri problemi...
Per esempio, nella variabile img c'è l'immagine relativa all'ultimo utente, ma utilizzando implode viene utilizzata per tutti.
Dovresti utilizzare un ciclo.

edit: potresti fare qualcosa tipo così:
PHP:
<?php
// HERE add your data for connecting to MySQ database
$host = 'XXXX';           // MySQL server address
$user = 'XXXX';           // User name
$pass = 'XXXX';           // User`s password
$dbname = 'XXXXXX';       // Database name

// connect to the MySQL server
$conn = new mysqli($host, $user, $pass, $dbname);

// check connection
if (mysqli_connect_errno()) exit('Connect failed: '. mysqli_connect_error());

$oggi=date("d-m-Y");;//leggi la data atuale, attento = a come è scritta in tabella

//interroghi il db
$query="SELECT username,sesso FROM users WHERE date_format(compleanno,'%d %m') = date_format(curdate(),'%d %m');";
$ris=mysqli_query($conn, $query);

echo "<table class='bordered' style='margin:30px auto;'>
                <tr>
                <td>
                <center>
                <img src='images/news.gif' width='300' height='60'>
                <br><br>
                </center>
<div class='marquee up'><p>";

//e estrai i nomi degli utenti che compiono gli anni $oggi
if (mysqli_num_rows($ris)==0) {
   echo $oggi.": Oggi nessun utente compie gli anni.";
}
elseif (mysqli_num_rows($ris)==1) {
   $riga=mysqli_fetch_assoc($ris);
   $utente = $riga['username'];
   $sesso = $riga['sesso'];
   if ($sesso == 'Uomo') {  
       $img='<img src="images/uomo_s.png" width="15px" height="25px">';
   }
   else {
       $img='<img src="images/donna_s.png" width="25px" height="25px">';
   }
   echo $oggi.": L'utente $img <font color='red'>$utente</font> oggi compie gli anni. <i>Intorno le ore 12:00 vi arriver&agrave; un e-mail di auguri (al 100% la troverete nella posta indesiderata o SPAM)</i>, ancora Tanti Auguri!!<img src='images/auguri.gif' width='30px' height='30px'>";
}
else {
   echo $oggi.": Gli utenti ";
   $utenti = "";
   while($riga=mysqli_fetch_assoc($ris)){
       $utente = $riga['username'];
       $sesso = $riga['sesso'];
       if ($sesso == 'Uomo') {  
           $img='<img src="images/uomo_s.png" width="15px" height="25px">';
       }
       else {
           $img='<img src="images/donna_s.png" width="25px" height="25px">';
       }
       $utenti .= "$img <font color='red'>$utente</font>, ";
   }
   echo substr($utenti, 0, -2);
   echo " oggi compiono gli anni. <i>Intorno le ore 12:00 vi arriver&agrave; un e-mail di auguri (al 100% la troverete nella posta indesiderata o SPAM)</i>, ancora Tanti Auguri!!<img src='images/auguri.gif' width='30px' height='30px'>";
}

echo "</p></div></td></tr></table>";
?>

Perfettissimo quello che volevo.... mille like per te... alla prossima!!
 
  • Like
Reactions: livellacri

Punix

Nuovo Utente
20 Feb 2017
13
1
3
33
salve son sempre io...
PHP:
<?php
// HERE add your data for connecting to MySQ database
$host = 'XXXX';           // MySQL server address
$user = 'XXXX';                // User name
$pass = 'XXXX';            // User`s password
$dbname = 'XXXX';          // Database name


// connect to the MySQL server
$conn = new mysqli($host, $user, $pass, $dbname);

// check connection
if (mysqli_connect_errno()) exit('Connect failed: '. mysqli_connect_error());

$oggi=date("d-m-Y");;//leggi la data atuale, attento = a come è scritta in tabella

//interroghi il db
$query="SELECT username,sesso FROM users WHERE date_format(compleanno,'%d %m') = date_format(curdate(),'%d %m');";
$ris=mysqli_query($conn, $query);

echo "<table class='bordered' style='margin:30px auto;'>
                <tr>
                <td>
                <center>
                <img src='images/news.gif' width='300' height='60'>
                <br><br>
                </center>
<div class='marquee up'><p>";

//e estrai i nomi degli utenti che compiono gli anni $oggi
if (mysqli_num_rows($ris)==0) {
   echo "<font color='red'>$oggi</font> : Oggi nessun utente compie gli anni.";
}
elseif (mysqli_num_rows($ris)==1) {
   $riga=mysqli_fetch_assoc($ris);
   $utente = $riga['username'];
   $sesso = $riga['sesso'];
   if ($sesso == 'Uomo') {   
       $img='<img src="images/uomo_s.png" width="15px" height="25px">';
   }
   else {
       $img='<img src="images/donna_s.png" width="25px" height="25px">';
   }
   echo "<font color='red'>$oggi</font> : L'utente $img <font color='red'>$utente</font> oggi compie gli anni. <i>Intorno le ore 12:00 vi arriver&agrave; un e-mail di auguri (al 100% la troverete nella posta indesiderata o SPAM)</i>, ancora Tanti Auguri!!<img src='images/auguri.gif' width='30px' height='30px'>";
}
else {
   echo "<font color='red'>$oggi</font> : Gli utenti ";
   $utenti = "";
   while($riga=mysqli_fetch_assoc($ris)){
       $utente = $riga['username'];
       $sesso = $riga['sesso'];
       if ($sesso == 'Uomo') {   
           $img='<img src="images/uomo_s.png" width="15px" height="25px">';
       }
       else {
           $img='<img src="images/donna_s.png" width="25px" height="25px">';
       }
       $utenti .= "$img <font color='red'>$utente</font>, ";
   }
   echo substr($utenti, 0, -2);
   echo " oggi compiono gli anni. <i>Intorno le ore 12:00 vi arriver&agrave; un e-mail di auguri (al 100% la troverete nella posta indesiderata o SPAM)</i>, ancora Tanti Auguri!!<img src='images/auguri.gif' width='30px' height='30px'>";
}

echo "</p><p>";


$query2="SELECT username,DATE_FORMAT(`data_reg`,'%d/%m/%Y - %H:%i') AS `data_reg`  FROM users ORDER BY id DESC LIMIT 0,1";
$ris2=mysqli_query($conn, $query2);

if (mysqli_num_rows($ris2)==1) {
   $riga2=mysqli_fetch_assoc($ris2);
   $utente1 = $riga2['username'];
   $data = $riga2['data_reg'];

echo " <font color='red'>$data</font> : L'utente <font color='red'>$utente1</font> &egrave; l&grave;ultimo utente registrato. Benvenuto!! <img src='images/welcome.gif' width='60px' height='60px'> ";

}


echo "</p></div></td></tr></table>";
?>

come potete vedere ho aggiunto un altra cosetta allo script (seleziono momento di registrazione e nome ) dell ultimo utente registrato e stampo a video...


adesso vorrei aggiungere altri 2 messaggi al box di news...
vorrei che nel momento in cui un utente logga al mio sito mi venga restituito un messaggio nel box del tipo:

26/07/2017 - 20:05 L'utente XXX si è loggato.

e nel momento in cui un utente slogga:

26/07/2017 - 20:05 L'utente XXX si è sloggato.

le funzioni che si occupano di gestire lo stato utente ,login e logout si trovano all interno di un altro file php che io chiamo user.class.php.

PHP:
 /***********************************
        VERIFICA DELLO STATO DI LOGIN UTENTE
        ***********************************/ 
          
        // verifica login 
        public function is_logged(){ 
            return isset($_SESSION['auth']); 
            } 
          
        // set login 
        protected function set_logged($id_user){ 
            $_SESSION['auth'] = $id_user; 
            return; 
            } 
          
        // access denied 
        public function access_denied(){ 
            if(!$this->is_logged()){ 
                header("location: ".$this->Urls['login_page']."?message=14"); 
                exit; 
                } 
            return; 
            } 
      
        protected function set_username($username){ 
            $_SESSION['username_logged'] = $username; 
            return; 
            } 
          
        public function get_username(){ 
            return isset($_SESSION['username_logged']) ? $_SESSION['username_logged'] : ''; 
            }     
              
        // logout 
        public function logout(){ 
            session_unset(); 
            session_destroy(); 
            setcookie(session_name(), '', time()-42000, '/'); 
            header("location: ".$this->Urls['login_page']."?message=13"); 
            return; 
            }

dite che è fattibile questa cosa? come posso implementarla?
 
Discussioni simili
Autore Titolo Forum Risposte Data
Lizzy [WordPress] Associare una pagina php ad un css WordPress 2
F Cerco Hosting con VECCHIE versioni di php Hosting 0
Cosina Captcha php PHP 1
S passare un valore da un form a un file .php con metodo post PHP 4
N php msyql PHP 6
N php problemi a visualizzare video PHP 3
A menu a tendina php PHP 1
D protezione cartelle: blocco visualizzazione/scaricamento contenuto, ma abilitazione utilizzo dati da parte di file .php presenti sul sito Web Server 1
F Php date_diff PHP 1
K [PHP] Aggiungere caratteri ad una stringa in base alla lunghezza della stessa PHP 2
C Wp-admin a file php WordPress 5
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0
csi Inviare file jpg in locale alla stampante con php PHP 0
M Passaggio variabili array php su un tasto jq PHP 3
E Php aggiornamento tabella PHP 9
G phpmailer e php 8.1 con estensione mysqli PHP 6
M Invio dati database via email php PHP 0
K [php] Problema con inner join PHP 4
K [php]form invio dati PHP 0
P Codifica caratteri speciali mysql php PHP 0
K [PHP] Problema con variabili concatenate. PHP 1
E Stampante termica escpos-php PHP 6
JeiMax Modifica codice php personalizzato PHP 2
G Come modificare un pdf in php PHP 1
U Link a doppio file PHP PHP 0
E PHP & jQuery PHP 8
N Passare array da php a javascript PHP 5
F Applicazione PHP/MySQL per prenotazioni: limitare il numero massimo di posti prenotabili PHP 20
L tipo boolean non funzionante su mariadb (mysql). E codice php 7.4. PHP 0
U PHP creare un file excel dopo ricerca nel DB PHP 0
M PHP/MySQL - Estrarre valori min e max di ogni gruppo PHP 5
F Php e fatturazione elettronica PHP 0
P lanciare script asp (o php) da jquery Javascript 1
Couting95 inserire dati da un file di testo in una tabella in php PHP 1
P Data scraping in PHP non funziona PHP 4
C Calcoli matematici in php PHP 5
F Scrivere dei dati in word con php PHP 0
D PHP leggere cartella di Windows PHP 1
I dominio aruba versione php server linux Domini 3
G Colorare menu select attraverso ricerca php PHP 0
L PHP motore di ricerca nel sito PHP 1
S PHP e Mysqli PHP 0
Y Stampare da php su un foglio A6 attraverso una stampante esterna PHP 1
M Visulizzare immagine con php PHP 8
G [PHP] Creare script di prenotazione con controllo disponibilità. PHP 7
G leggere file txt e stampare con php il contenuto a video PHP 7
F Ricreare struttura php+mysql su Xampp Apache 0
Z PHP.INI - STMP per invio email con PHP Server Dedicati e VPS 0
M Array associativi php su 2 campi mysql PHP 10
G Invio form con PHP PHP 3

Discussioni simili