Newsgroup: it.comp.www.php
Titolo: foreach array

Ho due problemini con foreach
Problema 1:
Se ho due righe nella tabella  no problem
da una sql estraggo i dati dopodiche:
foreach( $res as $row )
 {
echo $row['nome'];
echo $row['cognome'];
}
mentre se ne ho una sola mi scrive il primo carattere di ogni campo e
uno sotto altro
Problema 2
utilizzo phpmailer per inviare email
$mail->AddAttachment($file); questo campo dovrebbe inserirmi i file da
allegare
foreach( $res as $row )
 {
$file = $row['immagine']
}
$file contiene N file da inviare, il mio problema è inserire questi
file e dividerli con una virgola uno dall'altro mentre nell'ultimo
file della coda omettere la virgola
come faccio?

 coda omettere la virgola
Se contiene semplici stringhe, il metodo piu` rapido e`
print implode(',', $file);
Bye.


ecco il codice completo
    public function select($table, $where = null, $and = null, $order
= null)
    {
        $q = 'SELECT * FROM '.$table;
        if($where != null)
            $q .= ' WHERE '.$where;
        if($and != null)
            $q .= ' AND '.$and;
        if($order != null)
            $q .= ' ORDER BY '.$order;
        $query = @mysql_query($q);
		print $q.'<br>';
        if($query)
        {
            $this->numResults = mysql_num_rows($query);
            for($i = 0; $i < $this->numResults; $i++)
            {
                $r = mysql_fetch_array($query);
                $key = array_keys($r);
                for($x = 0; $x < count($key); $x++)
                {
                    // Sanitizes keys so only alphavalues are allowed
                    if(!is_int($key[$x]))
                    {
                        if(mysql_num_rows($query) > 1)
                            $this->result[$i][$key[$x]] =
$r[$key[$x]];
                        else if(mysql_num_rows($query) < 1)
                            $this->result = null;
                        else
                            $this->result[$key[$x]] = $r[$key[$x]];
                    }
                }
            }
			return true;
        }
        else
        {
            return false;
        }
    }
 public function getResult()
    {
        return $this->result;
    }
	$db = new Database();
	$db->connect();
	$db->select('cart','operatore_id = '.$_GET['id'].' ');
	$res = $db->getResult();
foreach( $res as $row )
 {
echo $row['nome'];
echo $row['articolo_id'];
}

 - Mostra testo citato -
Nel secondo problema, ho fatto come consigliato con IMPLODE ma nulla..
	foreach( $res as $row )
    {
		$array = $row['immagine'];
		$comma_separated = implode(",", $array);
		print $comma_separated;
	}
Se faccio un print $array vedo ogni singolo file attattaco all'altro,
mentre se faccio print $comma_separated; non vedo nessun file

                     }
Qui c'e` il tuo problema.
Questa funzione ritorna valori non omogenei. Se hai un risultato torna un 
array con un solo elemento, se ne hai piu` di uno ritorna un array di 
array. Se non ne hai nessuno torna null.
Io tornerei sempre e solo un array (vuoto, con una o con piu` righe). Poi 
si arrangia chi lo riceve a gestirsi i vari casi, se ne ha bisogno. Cosi` 
invece costringi sempre a fare un if (per di piu` difficile da 
implementare) al ricevente.
KISS (semplificalo) & DRY (usa PDO) !
Bye.

 ha scritto nel messaggio 
news:8tn1k7...@mid.individual.net...

Rispondo da questa postazione
Volevo creare delle funzioni per creare delle semplici SQL
Quello che hai visto lo ho preso piu di un anno fa cui parlavano delle 
funzioni CRUD
Per cui mi conviene rifare tutto....
corretto?

 ha scritto nel messaggio 
news:8tn1k7...@mid.individual.net...

Salve Alessandro
ho pensato  "meglio mettere tutto a posto"
Ti chiedo troppo pulire tutta la cozzaglia?
Volevo creare una semplice funzione select con un Where se c'è per non 
riscrivere di volta in volta la query su ogni pagina
dopodiche  con un while o foreach se ne ho la necessità mi facevo l'array 
del risultato
help me.... 

 Ti chiedo troppo pulire tutta la cozzaglia?
Direi di si`. Non e` un lavoro da 2 minuti.
Anche perche` l'hanno gia` fatto in tanti (PDO, PEAR DB, AdoDb, Zend 
Framework, Doctrine, ecc. ecc.)
Inizia a studiarti PDO, se proprio non vuoi usare un framework.
Bye.