[PHP] associare immagine ad un array

Punix

Nuovo Utente
20 Feb 2017
13
1
3
31
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
31
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
31
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
L Problemi form Pagina php HTML e CSS 2
L php mysql non salva solo id PHP 21
L php mysql cerca e visualizza pagina PHP 0
F Il codice php è giusto? PHP 2
R Aggiornare record mysql con Ajax, jQuery e php Ajax 2
A invio massivo dati a file php Javascript 4
Z MySql injection PHP PHP 1
V PHP form intersecate PHP 0
I [Offro][Retribuito] Programmatore Php Offerte e Richieste di Lavoro e/o Collaborazione 0
P Funzione jQuery Ajax invio file a php jQuery 1
C Dopo chiusura del tag php la stringa html va a capo PHP 1
E Transaction php PHP 11
B ciclare file xml con PHP PHP 1
L Estrazione dati php Database 6
A Aiuto per pagina php PHP 0
E Php select option e ajax PHP 23
I Aiuto php Dependent Lookup PHP 0
T arretramento versione PHP... PHP 3
D problema php mysql PHP 1
D problema php mysql PHP 1
E Barra di avanzamento codice PHP PHP 4
G creazione menu a tendina e invio a pagina php PHP 1
A inserire variabile php colore in div html PHP 2
Z Video protetto con PHP PHP 0
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
I Eecuzione di javascript in ciclo foreach php. PHP 7
S Libreria PHP per creare file dwg o dxf PHP 0
A [cerco - retribuito] Sviluppatore Php freelance per progetti vari Offerte e Richieste di Lavoro e/o Collaborazione 2
L Google chart php mysql PHP 2
R Download file multipli da directory php PHP 0
F pagina dinamica PHP PHP 3
P Rimozione automatica url da sitemap.xml con PHP PHP 1
L php tinymce mi duplica la classe label PHP 3
S Errore PHP - Notice: Undefined index ... PHP 14
N file manager da php 5 a 7 PHP 15
M Utilizzare la funzione mysql_num_rows() in PHP 5 PHP 3
elpirata Update dinamico informazioni scritte in una pagina php jQuery 11
N Mysql_result per PHP 7 PHP 2
Emix Select concatenate php sql ajax PHP 2
P Modifica con PHP di un node in una sitemap xml PHP 0
D Come usare funzione php PHP 6
P Cancellazione specifici files in una folder php PHP 1
R Tradurre stringhe con php e google translator PHP 4
I Salvataggio snapshot IPCAM tramite PHP PHP 5
felino PHP e script generazione file excel PHP 2
L Aiuto per programma web php/mySQL PHP 2
A Estrapolare parti di testo con PHP PHP 2
A Aiuto php colore diverso PHP 10
E Errore di lettura php in html PHP 8

Discussioni simili