Rieptere un numero più volte,numero inserito in ciclo for

  • Creatore Discussione Creatore Discussione Monital
  • Data di inizio Data di inizio

Monital

Utente Attivo
15 Apr 2009
778
2
18
Salve,

raga semplicemtne mi servirebbe capire come posso ripetere un numero x volte in un ciclo for

ad esempio

PHP:
for($x=1;$x<7;$x++){
echo $x."<br>";
}

questo mi restituisce

1
2
3
4
5
6
7

invece vorrei mi restituisse

1
1
2
2
3
3
4
4
5
5
6
6
7
7

mi serve in quest'ordine per poi popolare una query.

L'unica cosa che ho trovato nel web è la funzione str_repeat() ma non fa quelloc he vorrei anche se gli va vicino, ho provato a nidificare i cicli ma non ho raggiunto buoni risultati

suggerimenti?
 
Ciao, inserisci un ciclo nel ciclo ( for annidati )
PHP:
<?php

for ($x = 1; $x < 7; $x++) {
    for ($i = 0; $i < 2; $i++) {
        echo $x . "<br>";
    }
}
?>
cmq stampa fino a 6 no 7 :-)
 
eh si ho fatto cosi ma mi restituisce
1
2
3
4
5
6
1
2
3
4
5
6
quindi quandfo vedo a fare la query mi inserisce nell'ordine descritto su invece mi deve proprio seguire il criterio di

1
1
2
2
3
3
4
4
etc.

da precisare che comunque la coppia o la terzina la facciod efinireda una variabile della serie

$var=2;
allora mi restituisce

1
1

2
2

3
3


con var 3 mi deve restituire

1
1
1

2
2
2

3
3
3

e cia dicendo
 
il codice che ti ho postato con la vriabile impostata a 2 restituisce questo
1
1
2
2
3
3
4
4
5
5
6
6
se la metti a 3 stamperà come hai descrritto tu sopra
non so come lo hai fatto tu, non cosi
PHP:
<?php
$var = 3;
for ($x = 1; $x < 7; $x++) {
    for ($i = 0; $i < $var; $i++) {
        echo $x . "<br>";
    }
}
?>
 
Ultima modifica:
OK il tuo codice cosi com'è fa quello che dici, non l'avevo provato perchè avevo tentato già ma sbagliavo l'echo

però non sono riuscitoa d ottenere quello che volevo.

In sostanza devo inserire in una tabella delle date pari alla $variabile*un numero

e poi accostargli quel doppio ciclo

in pratica ti posto il codice che faccio prima
PHP:
$var=2;
$incognita=7;

//in questoc aso ho 14 giorni a disposizione
	for($x=1;$x<($incognita*$var)+1;$x++){
					$ini= date("d/m/Y", mktime(0,00,00,$sca[1],$sca[0],$sca[2])+$x*86400);///ho una data iniziale e la scompongo per avere il ciclo delle 14 date
					$ini_complete=data_per_mysql($ini_compe);
		   	$sqlquery = "INSERT INTO tabella  VALUES ('','".$ini_complete."','','','','')";
		$result = mysql_query($sqlquery);


}

for ($x = 1; $x <=$incognita; $x++) {
	 for ($i = 1; $i <= $var; $i++) {
		   	$sqlquery = "UPDATE  tabella  SET campo3='".$x."'";
		$result = mysql_query($sqlquery);

		}
}

facendo i vari var_dump mi da tutto corretto però ovviamente mi sballa l'update che nella tabella mi uppa tutti gli ultimi numeri in questo caso il 7 perchè non so che corrispondenza dargli nel WHERE

vorrei riuscire però a farmi fare tutto nell'insert perchè poi devo proseguire con altri inserimenti

quindi avere come risultatona cosa di sto genere

campo_data|ripetizione
2013-09-01|1
2013-09-02|1
2013-09-03|2
2013-09-04|2
2013-09-05|3
2013-09-06|3

etc etc.

non l'ho specificato prima perchè pensavo che con l'insert(che funge bene) e poi con il secondo ciclo l'update funzionasse bene invece no
 
ok dai ho risolto con un escamotage

ho creato un array epr le date ed una rray epr quei numeri poi con un if ho comparato le chiavie dove le trovava uguali uppava in funzione della data
 
Felice che tu abbia risolto , ma , non mi è chiaro ...
non potevi fare tutto in un solo cilco?
 

Discussioni simili