Valore inviato verso altra pagina scala di una unità

renoir09

Utente Attivo
10 Ago 2009
72
0
0
Ciao a tutti!
Ho un problema che non riesco a risolvere (e magari sarà semplicissimo ma io sono ancora un apprendista in PHP) nell'invio di un dato da una pagina all'altra.
Ho una variabile $index=1
che poi integro con $index++
mi serve affinchè i dati che vengono fuori con una query abbiano una numerazione progressiva:
1 dato A
2 dato B
3 dato C

n dato/n

il problema nasce quando io voglio inviare un dato (ad esempio "1 dato A" che invio cosi': <a href='pagina2.php?numero=".$index.">) ad una altra pagina (mettiamo pagina2.php) in modo che in quella pagina io possa recuperarlo con $_GET['numero'].
Il valore lo recupera si, ma aumentato di una unità.
Cosi' se io invio "1 dato A" nella pagina 2 ricevo "2 dato A" e se invio "3 dato C" ricevo "4 dato C"...
insomma tutto aumentato di 1
volevo provare ad usare comunque il valore che già arriva diminuendolo di 1 nella nuova pagina ma non riesco a trovare la sintassi giusta...
 
L'istruzione $index++ è equivalente a $index += 1 oppure alla più vecchia $index = $index + 1; Così facendo incrementi il valore contenuto in $index di una unità. Nel tuo caso, non hai postato tutto il codice per cui posso solo fare delle supposizioni, devi incrementare la variabile dopo aver creato il tag <a ...>. Probabilmente fai una cosa del genere:

PHP:
$index = 1;
while (...) {
...
$index++;
...
<a href='pagina2.php?numero=".$index.">...</a>
}

Così facendo la variabile che passi nel tag a è già stata incrementata di una unità per cui dovresti modificare il codice:

PHP:
$index = 1;
while (...) {
...
<a href='pagina2.php?numero=".$index.">...</a>
$index++;
}
 
codice

Grazie per la risposta.
Questo non è tutto il codice ma quello che stampa i dati richiesti con la query

<?php

$index = 1;
while ($r = mysql_fetch_array($s)) {

echo "<tr><td class='t_c'>" . $index++ . "</td>" ;
echo "<td class='t_c'>" . $r["nome"] . "</td>";
echo "<td class='t_c'>". $r["saldo"] ."</td>";
echo "<td class='t_c'><a href='pagina2.php?utente=".$r['nome']."&numero=".$index."&quota=".$r['saldo']."' target='_blank'>stampa</a></td>";
}
?>

cosicchè ho ad esempio:
1 marco 20 euro stampa
2 giorgio 10 euro stampa
3 giacomo 5 euro stampa

e posso stampare ogni dato con il comando stampa che mi prepara una ricevuta già un versione stampabile in pagina 2
ma quando in pagina 2 recupero appunto il numero con

Ricevuta numero: <?php echo $_GET['numero']; ?>

in modo che ho la ricevuta, ad esempio, per marco numero=1
ricevo invece ricevuta=2
quando apro la pagina2 vedo già nel campo indirizzo del browser che 'numero' è 2 invece di 1 o 3 al posto di 2...
 
E' come ti ho detto precedentemente. Modifica il codice così:

PHP:
<?php
$index = 1;
while ($r = mysql_fetch_array($s)) {
echo "<tr><td class='t_c'>" . $index . "</td>" ;
echo "<td class='t_c'>" . $r["nome"] . "</td>";
echo "<td class='t_c'>". $r["saldo"] ."</td>";
echo "<td class='t_c'><a href='pagina2.php?utente=".$r['nome']."&numero=".$index++."&quota=".$r['saldo']."' target='_blank'>stampa</a></td>";
}
?>

oppure, se tu risulta più chiaro:

PHP:
<?php
$index = 1;
while ($r = mysql_fetch_array($s)) {
echo "<tr><td class='t_c'>" . $index . "</td>" ;
echo "<td class='t_c'>" . $r["nome"] . "</td>";
echo "<td class='t_c'>". $r["saldo"] ."</td>";
echo "<td class='t_c'><a href='pagina2.php?utente=".$r['nome']."&numero=".$index."&quota=".$r['saldo']."' target='_blank'>stampa</a></td>";
$index = $index + 1;
}
?>
 
Ultima modifica:
Funziona bene!!!

Funziona!!!
Grazie mille...hai ragione sul fatto che avevi già suggerito la soluzione...solo che stavo già incollando e copiando il codice per integrarlo nella discussione ed alla fine ho fatto confusione...
comunque va alla grande...grazie ancora!
 
Se alla fine del ciclo non vuoi sbagliare a sapere quanti sono i dati prendendo un valore di $index che vale 1 di troppo, puoi cambiarlo così.
PHP:
<?php
$index = 0;         // <-------
while ($r = mysql_fetch_array($s)) {
$index = $index + 1;         // <-------
echo "<tr><td class='t_c'>" . $index . "</td>" ;
echo "<td class='t_c'>" . $r["nome"] . "</td>";
echo "<td class='t_c'>". $r["saldo"] ."</td>";
echo "<td class='t_c'><a href='pagina2.php?utente=".$r['nome']."&numero=".$index."&quota=".$r['saldo']."' target='_blank'>stampa</a></td>";

// qui $index è il numero di elementi visualizzati
}
?>
 

Discussioni simili