Ottimizzazione con ciclo while
Ottimizzazione con ciclo while postato il 10/11/2019 17:31:44 nel forum programmazione, open source e hosting
Ragazzi... io sto cercando di ottimizzare un codice con un ciclo while ma sto incontrando vari probemi.
Il codice che va nel ciclo While è questo:
$SaluteAttNemicoX = $_POST['SaluteAttNemicoX'];
if ($SaluteAttNemicoX!='') {
$MySql = "UPDATE Nemici SET SaluteAtt = '$SaluteAttNemicoX' WHERE Nome = 'Generico 1'";
mysql_query($MySql);
}
$MySql = "SELECT * FROM Nemici WHERE Nome = 'Generico 1'";
$Result = mysql_query($MySql);
$rs = mysql_fetch_array($Result);
$SaluteAttNemicoX = $rs['SaluteAtt'];
$rs->close;
mysql_free_result($Result);
Come potete intuire, questo pezzo di codice si ripete n volte (da 0 a 30) e invece di scriverlo (copiarlo) 30 volte, vorrei usare un while.
Il ciclo while è questo:
$select = mysql_query("SELECT * FROM Nemici WHERE SaluteAtt!=0");
while($row = mysql_fetch_array($select)){
...
}
Quindi vado ad esludere tutti i nemici la cui salute attuale è 0.
Il problema che riscontro nell'inserire quel pezzo di codice nel ciclo while è:
1) La variabile $SaluteAttNemicoX dovrebbe "variare nome" in base alla row in questione.
2) Il valore di suddetta variabile dovrebbe essere $row[SaluteAtt]
3) Il Nome (nell'UPDATE) dovrà essere $row[Nome]
Tuttavia, quando vado ad apportare queste modifiche, il PC mi fa la linguaccia XD
La domanda è:
sto affrontando male il problema e c'è forse una soluzione migliore (o corretta)?
Oppure sto sbagliando a implementare le modifiche?
O ancora sto dimenticando qualcosa?
Grazie a tutti :-)
Pagine → 1
10/11/2019 18:07:30 e modificato da storm_ed il 10/11/2019 18:08:42
Se non ho capito male cosa vuoi fare, ti manca un pezzo: se $SaluteAttNemicoX, quindi anche $_POST['SaluteAttNemicoX], è variabile e cambia in base alla riga, ti manca indicare la condizione su cui fare l' upgrade
quello che era WHERE Nome = 'Generico 1'.
Variable da combinare con $_POST['SaluteAttNemicoX]
P.s. Sto da Cell mi riesce difficile fare un esempio pratico, sorry
10/11/2019 18:23:10
tu:
SELECT * FROM Nemici WHERE SaluteAtt <> 0
vuoi selezionare tutti i nemici che hanno saluteAtt <> 0 e poi portarla a $SaluteAttNemicoX
invece di fare un ciclo while per la cosa non ti comviene cambiare la logica della query a:
UPDATE Nemici SET SaluteAtt = '$SaluteAttNemicoX' WHERE SaluteAtt <> 0
direttamente?
10/11/2019 19:21:48 e modificato da sgc carter il 10/11/2019 19:25:48
storm_ed ha scritto: $_POST['SaluteAttNemicoX], è variabile e cambia in base alla riga, ti manca indicare la condizione su cui fare l' upgrade
quello che era WHERE Nome = 'Generico 1'.
Esatto, è quello che scrivevo al punto 3
sgc carter ha scritto:
3) Il Nome (nell'UPDATE) dovrà essere $row[Nome]
Solo che non so come scriverlo, visto che
$MySql = "UPDATE Nemici SET SaluteAtt = '$SaluteAttNemicoX' WHERE Nome = $row[Nome]";
non va :(
dyrr ha scritto:
vuoi selezionare tutti i nemici che hanno saluteAtt <> 0 e poi portarla a $SaluteAttNemicoX
Non proprio, io voglio selezionare tutti i nemici per cui la salute è superiore a 0 (una condizione che mi esclude di pescare n-nemici che non mi servono in quella situazione dal DB) e poi opere su un singolo valore alla volta (aggiustando il valore dal master per eventuali danni subiti dal nemico o cure effettuate dal nemico).
AGGIUNTA:
Aggiungo questa nota che potrebbe tornare utile a capire il mio intento (spiegato senz'altro in maniera un po' confusionaria...)
Quella che sto tentando di modificare con il ciclo while è la pagina di gestione. La "lista" dei nemici (con salute >0) è su una seconda pagina e funziona con questo codice:
$select = mysql_query("SELECT * FROM Nemici WHERE SaluteAtt!=0");
while($row = mysql_fetch_array($select)){
echo "<table width=\"100%\" border=0 cellpadding=1 cellspacing=0>";
echo "<tr><td width=150 valign=top>";
echo "<font color=white><b>".$row[Nome]."</b></font>";
echo "</td><td>";
echo "<font color=white><b>".$row[SaluteAtt].'/'.$row[SaluteMax]."</b></font>";
echo "</td></tr></table>";
Gli elementi ci sono tutti, solo che unire la parte dell'aggiornamento e del POST, mi manda in crisi qualche neurone XD
10/11/2019 20:10:02
Urgh, cosa vedo!
A prescindere dal problema in sè, posso suggerire di considerare un graduale passaggio a una versione di php supportata? Tutte le funzioni mysql sono state rimosse già a partire da php 7.0 (che è del 2015)... non so su quale hosting vi appoggiate, ma se un domani dovessero decidere di rimuovere il supporto a php 5.6 e inferiori avreste un bel problema.
A parte ciò, credo che la cosa migliore sarebbe copiare qui l'errore che ti viene ritornato dal database, di solito si riesce a capire cosa non va bene.
11/11/2019 01:05:04
Purtroppo non da nessun errore, semplicemente non aggiorna i dati in database.
Adesso, per vedere se il concetto funziona "di base" ho scritto il codice senza ciclo, semplicemente scrivendo 5 volte tutte le parti che il ciclo while dovrebbe iterare, appunto, 5 volte.
Quello che ne esce sono i due blocchi di codice qui di seguito
// NEMICI UPDATE
//GENERICO 1
$SaluteAttGenerico1 = $_POST['SaluteAttGenerico1'];
if ($SaluteAttGenerico1!='') {
$MySql = "UPDATE Nemici SET SaluteAtt = '$SaluteAttGenerico1' WHERE Nome = 'Generico 1'";
mysql_query($MySql);
}
$MySql = "SELECT * FROM Nemici WHERE Nome = 'Generico 1'";
$Result = mysql_query($MySql);
$rs = mysql_fetch_array($Result);
$SaluteAttGenerico1 = $rs['SaluteAtt'];
$rs->close;
mysql_free_result($Result);
//FINE GENERICO 1
//GENERICO 2
$SaluteAttGenerico2 = $_POST['SaluteAttGenerico2'];
if ($SaluteAttGenerico2!='') {
$MySql = "UPDATE Nemici SET SaluteAtt = '$SaluteAttGenerico2' WHERE Nome = 'Generico 2'";
mysql_query($MySql);
}
$MySql = "SELECT * FROM Nemici WHERE Nome = 'Generico 2'";
$Result = mysql_query($MySql);
$rs = mysql_fetch_array($Result);
$SaluteAttGenerico2 = $rs['SaluteAtt'];
$rs->close;
mysql_free_result($Result);
//FINE GENERICO 2
//GENERICO 3
$SaluteAttGenerico3 = $_POST['SaluteAttGenerico3'];
if ($SaluteAttGenerico3!='') {
$MySql = "UPDATE Nemici SET SaluteAtt = '$SaluteAttGenerico3' WHERE Nome = 'Generico 3'";
mysql_query($MySql);
}
$MySql = "SELECT * FROM Nemici WHERE Nome = 'Generico 3'";
$Result = mysql_query($MySql);
$rs = mysql_fetch_array($Result);
$SaluteAttGenerico3 = $rs['SaluteAtt'];
$rs->close;
mysql_free_result($Result);
//FINE GENERICO 3
//GENERICO 4
$SaluteAttGenerico4 = $_POST['SaluteAttGenerico4'];
if ($SaluteAttGenerico4!='') {
$MySql = "UPDATE Nemici SET SaluteAtt = '$SaluteAttGenerico4' WHERE Nome = 'Generico 4'";
mysql_query($MySql);
}
$MySql = "SELECT * FROM Nemici WHERE Nome = 'Generico 4'";
$Result = mysql_query($MySql);
$rs = mysql_fetch_array($Result);
$SaluteAttGenerico4 = $rs['SaluteAtt'];
$rs->close;
mysql_free_result($Result);
//FINE GENERICO 4
//GENERICO 5
$SaluteAttGenerico5 = $_POST['SaluteAttGenerico5'];
if ($SaluteAttGenerico5!='') {
$MySql = "UPDATE Nemici SET SaluteAtt = '$SaluteAttGenerico5' WHERE Nome = 'Generico 5'";
mysql_query($MySql);
}
$MySql = "SELECT * FROM Nemici WHERE Nome = 'Generico 5'";
$Result = mysql_query($MySql);
$rs = mysql_fetch_array($Result);
$SaluteAttGenerico5 = $rs['SaluteAtt'];
$rs->close;
mysql_free_result($Result);
//FINE GENERICO 5
//GENERICO 6
$SaluteAttGenerico6 = $_POST['SaluteAttGenerico6'];
if ($SaluteAttGenerico6!='') {
$MySql = "UPDATE Nemici SET SaluteAtt = '$SaluteAttGenerico6' WHERE Nome = 'Generico 6'";
mysql_query($MySql);
}
$MySql = "SELECT * FROM Nemici WHERE Nome = 'Generico 6'";
$Result = mysql_query($MySql);
$rs = mysql_fetch_array($Result);
$SaluteAttGenerico6 = $rs['SaluteAtt'];
$rs->close;
mysql_free_result($Result);
//FINE GENERICO 6
?>
<!--FINE NEMICI UPDATE-->
<table>
<!--Generico 1-->
<?php if ($SaluteAttGenerico1 >= 1) { ?>
<tr>
<td width="104"><font color="#FFFFFF">Generico 1</font></td>
<td width="63"><?php
if ($SaluteAttGenerico1 >= 67)
progressBarSalV($SaluteAttGenerico1);
else if ($Defcon <= 66 && $SaluteAttGenerico1 >= 34){
progressBarSalG($SaluteAttGenerico1); }
else if ($SaluteAttGenerico1 <= 33)
progressBarSalR($SaluteAttGenerico1);
;
?></td>
<? if($_SESSION['Master']==1){?>
<td><font color="#FFFFFF" face="Times New Roman"><form action="NemiciF22.php" method=Post>
<input type="text" name="SaluteAttGenerico1" maxlength="3" value="<?= htmlspecialchars($SaluteAttGenerico1) ?>" style="width:35px; font-size:11px; ">
<input type=submit value="Cambia">
</form></font></td> <? } ?>
</tr>
<?php } ?>
<!--Fine Generico 1-->
<!--Generico 2-->
<?php if ($SaluteAttGenerico2 >= 1) { ?>
<tr>
<td width="104"><font color="#FFFFFF">Generico 2</font></td>
<td width="63"><?php
if ($SaluteAttGenerico2 >= 67)
progressBarSalV($SaluteAttGenerico2);
else if ($Defcon <= 66 && $SaluteAttGenerico2 >= 34){
progressBarSalG($SaluteAttGenerico2); }
else if ($SaluteAttGenerico2 <= 33)
progressBarSalR($SaluteAttGenerico2);
;
?></td>
<? if($_SESSION['Master']==1){?>
<td><font color="#FFFFFF" face="Times New Roman"><form action="NemiciF22.php" method=Post>
<input type="text" name="SaluteAttGenerico2" maxlength="3" value="<?= htmlspecialchars($SaluteAttGenerico2) ?>" style="width:35px; font-size:11px; ">
<input type=submit value="Cambia">
</form></font></td> <? } ?>
</tr>
<?php } ?>
<!--Fine Generico 2-->
<!--Generico 3-->
<?php if ($SaluteAttGenerico3 >= 1) { ?>
<tr>
<td width="104"><font color="#FFFFFF">Generico 3</font></td>
<td width="63"><?php
if ($SaluteAttGenerico3 >= 67)
progressBarSalV($SaluteAttGenerico3);
else if ($Defcon <= 66 && $SaluteAttGenerico3 >= 34){
progressBarSalG($SaluteAttGenerico3); }
else if ($SaluteAttGenerico3 <= 33)
progressBarSalR($SaluteAttGenerico3);
;
?></td>
<? if($_SESSION['Master']==1){?>
<td><font color="#FFFFFF" face="Times New Roman"><form action="NemiciF22.php" method=Post>
<input type="text" name="SaluteAttGenerico3" maxlength="3" value="<?= htmlspecialchars($SaluteAttGenerico3) ?>" style="width:35px; font-size:11px; ">
<input type=submit value="Cambia">
</form></font></td> <? } ?>
</tr>
<?php } ?>
<!--Fine Generico 3-->
<!--Generico 4-->
<?php if ($SaluteAttGenerico4 >= 1) { ?>
<tr>
<td width="104"><font color="#FFFFFF">Generico 4</font></td>
<td width="63"><?php
if ($SaluteAttGenerico4 >= 67)
progressBarSalV($SaluteAttGenerico4);
else if ($Defcon <= 66 && $SaluteAttGenerico4 >= 34){
progressBarSalG($SaluteAttGenerico4); }
else if ($SaluteAttGenerico4 <= 33)
progressBarSalR($SaluteAttGenerico4);
;
?></td>
<? if($_SESSION['Master']==1){?>
<td><font color="#FFFFFF" face="Times New Roman"><form action="NemiciF22.php" method=Post>
<input type="text" name="SaluteAttGenerico4" maxlength="3" value="<?= htmlspecialchars($SaluteAttGenerico4) ?>" style="width:35px; font-size:11px; ">
<input type=submit value="Cambia">
</form></font></td> <? } ?>
</tr>
<?php } ?>
<!--Fine Generico 4-->
<!--Generico 5-->
<?php if ($SaluteAttGenerico5 >= 1) { ?>
<tr>
<td width="104"><font color="#FFFFFF">Generico 5</font></td>
<td width="63"><?php
if ($SaluteAttGenerico5 >= 67)
progressBarSalV($SaluteAttGenerico5);
else if ($Defcon <= 66 && $SaluteAttGenerico5 >= 34){
progressBarSalG($SaluteAttGenerico5); }
else if ($SaluteAttGenerico5 <= 33)
progressBarSalR($SaluteAttGenerico5);
;
?></td>
<? if($_SESSION['Master']==1){?>
<td><font color="#FFFFFF" face="Times New Roman"><form action="NemiciF22.php" method=Post>
<input type="text" name="SaluteAttGenerico5" maxlength="3" value="<?= htmlspecialchars($SaluteAttGenerico5) ?>" style="width:35px; font-size:11px; ">
<input type=submit value="Cambia">
</form></font></td> <? } ?>
</tr>
<?php } ?>
<!--Fine Generico 5-->
<!--Generico 6-->
<?php if ($SaluteAttGenerico6 >= 1) { ?>
<tr>
<td width="104"><font color="#FFFFFF">Generico 6</font></td>
<td width="63"><?php
if ($SaluteAttGenerico6 >= 67)
progressBarSalV($SaluteAttGenerico6);
else if ($Defcon <= 66 && $SaluteAttGenerico6 >= 34){
progressBarSalG($SaluteAttGenerico6); }
else if ($SaluteAttGenerico6 <= 33)
progressBarSalR($SaluteAttGenerico6);
;
?></td>
<? if($_SESSION['Master']==1){?>
<td><font color="#FFFFFF" face="Times New Roman"><form action="NemiciF22.php" method=Post>
<input type="text" name="SaluteAttGenerico6" maxlength="3" value="<?= htmlspecialchars($SaluteAttGenerico6) ?>" style="width:35px; font-size:11px; ">
<input type=submit value="Cambia">
</form></font></td> <? } ?>
</tr>
<?php } ?>
<!--Fine Generico 6-->
</table>
Con due cicli while dovrei riuscire a non dover scrivere altre n volte quegli stessi spezzoni di codice che si ripetono in cui cambiano solo le variabili, ma il problema principale resta:
1) Non so come chiamare la variabile $SaluteAttGenerico1
2) Non so come inserire nel $_POST['SaluteAttGenerico1']; una variabile al posto di SaluteAttGenerico1
Il ciclo while (che sarebbe da ripetere due volte, una volta per ogni blocco di codice) dovrebbe essere questo
$select = mysql_query("SELECT * FROM Nemici WHERE SaluteAtt!=0");
while($row = mysql_fetch_array($select)){
Che dovrebbe valorizzarmi:
$row[Nome] -> Il nome dei nemici (Nel codice sopra andrebbe a sostituire Generico 1, Generico 2, Generico 3...)
e
$row[SaluteAtt] -> Il valore della salite dei nemici (Nel codice sopra andrebbe a sostituire $SaluteAttGenerico1, $SaluteAttGenerico2, $SaluteAttGenerico3,...)
Domani proverò di nuovo, magari a mente fresca, e se riesco a produrre qualcosa che dia un errore "identificabile" lo posto :-)
p.S.: lo so che dovrei passare a MySqli e lo farò presto... è solo una questione di avere poco tempo e timore di distruggere tutta la land XD
11/11/2019 13:01:49 e modificato da sgc carter il 11/11/2019 13:04:35
Ok, ho tentato di implementare il rimo codice while (1 su 2 diciamo) e beh, ecco cosa ho scritto e cosa è successo:
// NEMICI UPDATE
$select = mysql_query("SELECT * FROM Nemici WHERE SaluteAtt!=0");
while($row = mysql_fetch_array($select)){
$NomeNemico = $row[Nome];
$SaluteAttNemico = $row[SaluteAtt];
//GENERICO 1
$SaluteAttGenerico1 = $_POST[$SaluteAttNemico];
if ($SaluteAttGenerico1!='') {
$MySql = "UPDATE Nemici SET SaluteAtt = '$SaluteAttNemico' WHERE Nome = '$NomeNemico'";
mysql_query($MySql);
}
$MySql = "SELECT * FROM Nemici WHERE Nome = '$NomeNemico'";
$Result = mysql_query($MySql);
$rs = mysql_fetch_array($Result);
$SaluteAttGenerico1 = $rs['SaluteAtt'];
$rs->close;
mysql_free_result($Result);
//FINE GENERICO 1
}?>
Non soltanto non funziona, nel senso che non aggiorna nulla in DB, ma curiosamente nella tabella che stampa la salute dei vari nemici se questi hanno salute >0, stampa solo il nome del primo nemico (quello con ID più basso, quindi Generico 1) seguito dal valore di salute dell'ultimo nemico nella tabella che soddisfa il requisito "SaluteAtt!=0.
Lo stamp avviene tramite il seguente codice:
<table>
<!--Generico 1-->
<?php if ($SaluteAttGenerico1 >= 1) { ?>
<tr>
<td width="104"><font color="#FFFFFF">Generico 1</font></td>
<td width="63"><?php
if ($SaluteAttGenerico1 >= 67)
progressBarSalV($SaluteAttGenerico1);
else if ($Defcon <= 66 && $SaluteAttGenerico1 >= 34){
progressBarSalG($SaluteAttGenerico1); }
else if ($SaluteAttGenerico1 <= 33)
progressBarSalR($SaluteAttGenerico1);
;
?></td>
<? if($_SESSION['Master']==1){?>
<td><font color="#FFFFFF" face="Times New Roman"><form action="NemiciF22.php" method=Post>
<input type="text" name="SaluteAttGenerico1" maxlength="3" value="<?= htmlspecialchars($SaluteAttGenerico1) ?>" style="width:35px; font-size:11px; ">
<input type=submit value="Cambia">
</form></font></td> <? } ?>
</tr>
<?php } ?>
<!--Fine Generico 1-->
<!--Generico 2-->
<?php if ($SaluteAttGenerico2 >= 1) { ?>
<tr>
<td width="104"><font color="#FFFFFF">Generico 2</font></td>
<td width="63"><?php
if ($SaluteAttGenerico2 >= 67)
progressBarSalV($SaluteAttGenerico2);
else if ($Defcon <= 66 && $SaluteAttGenerico2 >= 34){
progressBarSalG($SaluteAttGenerico2); }
else if ($SaluteAttGenerico2 <= 33)
progressBarSalR($SaluteAttGenerico2);
;
?></td>
<? if($_SESSION['Master']==1){?>
<td><font color="#FFFFFF" face="Times New Roman"><form action="NemiciF22.php" method=Post>
<input type="text" name="SaluteAttGenerico2" maxlength="3" value="<?= htmlspecialchars($SaluteAttGenerico2) ?>" style="width:35px; font-size:11px; ">
<input type=submit value="Cambia">
</form></font></td> <? } ?>
</tr>
<?php } ?>
<!--Fine Generico 2-->
<!--Generico 3-->
<?php if ($SaluteAttGenerico3 >= 1) { ?>
<tr>
<td width="104"><font color="#FFFFFF">Generico 3</font></td>
<td width="63"><?php
if ($SaluteAttGenerico3 >= 67)
progressBarSalV($SaluteAttGenerico3);
else if ($Defcon <= 66 && $SaluteAttGenerico3 >= 34){
progressBarSalG($SaluteAttGenerico3); }
else if ($SaluteAttGenerico3 <= 33)
progressBarSalR($SaluteAttGenerico3);
;
?></td>
<? if($_SESSION['Master']==1){?>
<td><font color="#FFFFFF" face="Times New Roman"><form action="NemiciF22.php" method=Post>
<input type="text" name="SaluteAttGenerico3" maxlength="3" value="<?= htmlspecialchars($SaluteAttGenerico3) ?>" style="width:35px; font-size:11px; ">
<input type=submit value="Cambia">
</form></font></td> <? } ?>
</tr>
<?php } ?>
<!--Fine Generico 3-->
<!--Generico 4-->
<?php if ($SaluteAttGenerico4 >= 1) { ?>
<tr>
<td width="104"><font color="#FFFFFF">Generico 4</font></td>
<td width="63"><?php
if ($SaluteAttGenerico4 >= 67)
progressBarSalV($SaluteAttGenerico4);
else if ($Defcon <= 66 && $SaluteAttGenerico4 >= 34){
progressBarSalG($SaluteAttGenerico4); }
else if ($SaluteAttGenerico4 <= 33)
progressBarSalR($SaluteAttGenerico4);
;
?></td>
<? if($_SESSION['Master']==1){?>
<td><font color="#FFFFFF" face="Times New Roman"><form action="NemiciF22.php" method=Post>
<input type="text" name="SaluteAttGenerico4" maxlength="3" value="<?= htmlspecialchars($SaluteAttGenerico4) ?>" style="width:35px; font-size:11px; ">
<input type=submit value="Cambia">
</form></font></td> <? } ?>
</tr>
<?php } ?>
<!--Fine Generico 4-->
<!--Generico 5-->
<?php if ($SaluteAttGenerico5 >= 1) { ?>
<tr>
<td width="104"><font color="#FFFFFF">Generico 5</font></td>
<td width="63"><?php
if ($SaluteAttGenerico5 >= 67)
progressBarSalV($SaluteAttGenerico5);
else if ($Defcon <= 66 && $SaluteAttGenerico5 >= 34){
progressBarSalG($SaluteAttGenerico5); }
else if ($SaluteAttGenerico5 <= 33)
progressBarSalR($SaluteAttGenerico5);
;
?></td>
<? if($_SESSION['Master']==1){?>
<td><font color="#FFFFFF" face="Times New Roman"><form action="NemiciF22.php" method=Post>
<input type="text" name="SaluteAttGenerico5" maxlength="3" value="<?= htmlspecialchars($SaluteAttGenerico5) ?>" style="width:35px; font-size:11px; ">
<input type=submit value="Cambia">
</form></font></td> <? } ?>
</tr>
<?php } ?>
<!--Fine Generico 5-->
<!--Generico 6-->
<?php if ($SaluteAttGenerico6 >= 1) { ?>
<tr>
<td width="104"><font color="#FFFFFF">Generico 6</font></td>
<td width="63"><?php
if ($SaluteAttGenerico6 >= 67)
progressBarSalV($SaluteAttGenerico6);
else if ($Defcon <= 66 && $SaluteAttGenerico6 >= 34){
progressBarSalG($SaluteAttGenerico6); }
else if ($SaluteAttGenerico6 <= 33)
progressBarSalR($SaluteAttGenerico6);
;
?></td>
<? if($_SESSION['Master']==1){?>
<td><font color="#FFFFFF" face="Times New Roman"><form action="NemiciF22.php" method=Post>
<input type="text" name="SaluteAttGenerico6" maxlength="3" value="<?= htmlspecialchars($SaluteAttGenerico6) ?>" style="width:35px; font-size:11px; ">
<input type=submit value="Cambia">
</form></font></td> <? } ?>
</tr>
<?php } ?>
<!--Fine Generico 6-->
</table>
Quante migliaia di errori ho commesso? XD
EDIT:
Ecco il risultato e la tabella del database:


11/11/2019 14:28:04
Per forza che non aggiorna niente... qui gli stai dicendo di prendere il valore attuale di SaluteAtt:
$SaluteAttNemico = $row[SaluteAtt];
E qui gli stai dicendo di sovrascriverlo con lo stesso valore:
$MySql = "UPDATE Nemici SET SaluteAtt = '$SaluteAttNemico'
A ogni modo, ti svelo un segreto: in php i nomi delle variabili possono essere generati anche dinamicamente per concatenazione. Questo è un codice perfettamente valido:
$i = 1;
while ($i <= 6)
{
$Nome = "Generico " . $i;
echo $Nome;
}
Il modo più semplice per condensare il primo blocco in un while dovrebbe essere così (non ottimizza nulla, ma almeno hai 1/6 delle righe di codice):
$i = 1;
while ($i <= 6)
{
$Nome = "Generico " . $i;
$SaluteAttacco = "SaluteAttGenerico" . $i;
$SaluteAttGenerico = $_POST['SaluteAttacco'];
if ($SaluteAttGenerico!='')
{
$MySql = "UPDATE Nemici SET SaluteAtt = '$SaluteAttGenerico' WHERE Nome = '$Nome'";
mysql_query($MySql);
}
$MySql = "SELECT * FROM Nemici WHERE Nome = '$Nome'";
$Result = mysql_query($MySql);
$rs = mysql_fetch_array($Result);
$SaluteAttGenerico = $rs['SaluteAtt'];
$rs->close;
mysql_free_result($Result);
$i++;
}
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
World of Tanks ↗
Imperion ↗
New Orleans ↗
Wuthering Waves ↗
The Coven ↗