- Home
- Categorie
- Coding e Sistemistica
- Coding
- info array
-
info array
Buongiorno a tutti,
una domanda:
ho una tabella:
[PHP]
CATEGORIE
ID | NOME | TITLE | DESCRIPTION | KEYWORDS | DESCRIZIONE
1 | nome1 | title1 | description1 | keywords1 | descrizione1
2 | nome2 | title2 | description2 | keywords2 | descrizione2
3 | nome3 | title3 | description3 | keywords3 | descrizione3
4 | nome4 | title4 | description4 | keywords4 | descrizione4[/PHP]
estraggo i dati e li metto in 6 array:
[PHP]
<?php
$sql = "SELECT * FROM categorie";
$ret = mysqli_query( $db, $sql );
while ($row = mysqli_fetch_array($ret)){
$id_categoria[] = $row['id'];
$nome_categoria[] = $row['nome'];
$title_categoria[] = $row['title'];
$description_categoria[] = $row['description'];
$keywords_categoria[] = $row['keywords'];
$descrizione_categoria[] = $row['descrizione'];
}?>
[/PHP]il mio output:
[PHP]
<?php echo $id_categoria[0] ?>
<?php echo "<br />"; ?>
<?php echo $nome_categoria[0] ?>
<?php echo "<br />"; ?>
<?php echo $title_categoria[0] ?>
<?php echo "<br />"; ?>
<?php echo $description_categoria[0] ?>
<?php echo "<br />"; ?>
<?php echo $keywords_categoria[0] ?>
<?php echo "<br />"; ?>
<?php echo $nome_categoria[0] ?>
<?php echo "<br />"; ?>
<?php echo "<br />"; ?>
<?php echo $id_categoria[1] ?>
<?php echo "<br />"; ?>
<?php echo $nome_categoria[1] ?>
<?php echo "<br />"; ?>
<?php echo $title_categoria[1] ?>
<?php echo "<br />"; ?>
<?php echo $description_categoria[1] ?>
<?php echo "<br />"; ?>
<?php echo $keywords_categoria[1] ?>
<?php echo "<br />"; ?>
<?php echo $nome_categoria[1] ?>
<?php echo "<br />"; ?>
<?php echo "<br />"; ?>
<?php echo $id_categoria[2] ?>
<?php echo "<br />"; ?>
<?php echo $nome_categoria[2] ?>
<?php echo "<br />"; ?>
<?php echo $title_categoria[2] ?>
<?php echo "<br />"; ?>
<?php echo $description_categoria[2] ?>
<?php echo "<br />"; ?>
<?php echo $keywords_categoria[2] ?>
<?php echo "<br />"; ?>
<?php echo $nome_categoria[2] ?>
<?php echo "<br />"; ?>
<?php echo "<br />"; ?>
<?php echo $id_categoria[3] ?>
<?php echo "<br />"; ?>
<?php echo $nome_categoria[3] ?>
<?php echo "<br />"; ?>
<?php echo $title_categoria[3] ?>
<?php echo "<br />"; ?>
<?php echo $description_categoria[3] ?>
<?php echo "<br />"; ?>
<?php echo $keywords_categoria[3] ?>
<?php echo "<br />"; ?>
<?php echo $nome_categoria[3] ?>
[/PHP]c'è un sistema per ottenere lo stesso output ma con meno codice?
un ciclo tipo foreach?grazie 1000 a tutti e buona giornata
-
Puoi usare un ciclo for, conosci il numero di record disponibili con mysql_num_rows() oppure con un semplice count($unarrayqualsiasidiquellicreati).
[PHP]$ripetizioni = count($id_categoria);
for($i = 0, $i < $ripetizioni, ++$i) {
echo $id_categoria* . "<br />" ;
echo $nome_categoria* . "<br />";
echo $title_categoria* . "<br />";
echo $description_categoria* . "<br />";
echo $keywords_categoria* . "<br />";
echo $nome_categoria* . "<br /><br />";
}[/PHP]Due domande:
Ripeti due volte il "nome", è giusto così?
Perché a volte usi l'italiano (nome) e altre l'inglese (title, description, ecc..)?
-
Ciao Gigi,
grazie mille per la risposta, in verità ho messo 2 volte il nome per errore;
in verità sarebbe così:
[PHP]
<?php
$sql = "SELECT * FROM articoli";
$ret = mysqli_query( $db, $sql );
while ($row = mysqli_fetch_array($ret)){
$id_articolo[] = $row['id'];
$title_articolo[] = $row['title'];
$description_articolo[] = $row['description'];
$keywords_articolo[] = $row['keywords'];
$data_articolo[] = $row['data'];
$h1_articolo[] = $row['h1'];
$h2_articolo[] = $row['h2'];
$testo_articolo[] = $row['testo'];
$visibile_articolo[] = $row['visibile'];
}?><?php
$ripetizioni = count(4);
for($i = 0, $i < $ripetizioni, ++$i) {
echo $id_articolo* . "<br />" ;
echo $title_articolo* . "<br />";
echo $description_articolo* . "<br />";
echo $keywords_articolo* . "<br />";
echo $data_articolo* . "<br />";
echo $h1_articolo* . "<br />";
echo $h2_articolo* . "<br />";
echo $testo_articolo* . "<br />";
echo $visibile_articolo* . "<br />";
}
?>
[/PHP]però non funziona, non capisco, sembra tutto corretto
grazie mille ancora e buona pasqua
-
L'errore è nella istruzione FOR. I vari parametri vanno separati con il punto e virgola anzichè la sola virgola.
[PHP]for($i = 0; $i < $ripetizioni; ++$i)[/PHP]
Ma perchè non usi un semplice ciclo così?
[PHP]
<?php
$sql = "SELECT * FROM articoli";
$ret = mysqli_query( $db, $sql );while ($row = mysqli_fetch_array($ret)){ echo $row['id'] . '<br />' ; echo $row['title'] . '<br />'; echo $row['description'] . '<br />'; echo $row['keywords'] . '<br />'; echo $row['data'] . '<br />'; echo $row['h1'] . '<br />'; echo $row['h2'] . '<br />'; echo $row['testo'] . '<br />'; echo $row['visibile'] . '<br />'; }
?>
[/PHP]Buona Pasqua anche a te.
-
Mi sembra che ci sia un errore anche in questa istruzione:
@enricocarli said:
$ripetizioni = count(4);
Essa assegnerà tautologicamente
[PHP]$ripetizioni = 1;[/PHP]
di conseguenza ciclerà al massimo una sola volta.
-
ciao Oslino! tempestivo come al solito
il codiche funzionante se servisse a qualcuno è questo:
[PHP]
<?php
$sql = "SELECT * FROM articoli";
$ret = mysqli_query( $db, $sql );
while ($row = mysqli_fetch_array($ret)){
$id_articolo[] = $row['id'];
$title_articolo[] = $row['title'];
$description_articolo[] = $row['description'];
$keywords_articolo[] = $row['keywords'];
$data_articolo[] = $row['data'];
$h1_articolo[] = $row['h1'];
$h2_articolo[] = $row['h2'];
$testo_articolo[] = $row['testo'];
$visibile_articolo[] = $row['visibile'];
}?><?php
$ripetizioni = count($id_articolo);
for($i = 0; $i < $ripetizioni; ++$i) {
echo $id_articolo* . "<br />" ;
echo $title_articolo* . "<br />";
echo $description_articolo* . "<br />";
echo $keywords_articolo* . "<br />";
echo $data_articolo* . "<br />";
echo $h1_articolo* . "<br />";
echo $h2_articolo* . "<br />";
echo $testo_articolo* . "<br />";
echo $visibile_articolo* . "<br />";
}
?>
[/PHP]Oslino, ho fatto in questo modo perchè; dimmi se sbaglio, molto probabilmente è una cosa sciocca, ma volevo separare le query dall'html, per cui il primo pezzo lo metterei in un file e il secondo pezzo in un altro; non è + corretto secondo te? ho letto un po' di cose sull'mvc e ho provato un po' (molto superficialmente) codeigniter, che usa appunto l'mvc, mi sembra più leggibile il codice ecco...
grazie a tutti per le delucidazioni
saluti!