Autor Zpráva
WellBloud
Profil
Zdravím,
už mi z toho hrabe. Potřebuju změnit vícero údajů v tabulce, nové hodnoty to úspěšně předá, ale uloží se vždy jen poslední. Mohli byste se prosím mrknout, co dělám blbě? Vím že tam je nějaká malá, ale podstatná chyba, ale nemůžu ju najít... Byl bych moc vděčný za pomoc :)
Zde vypisuji tabulku, kde jsou inputy pro zadání nových hodnot:
<h3>Vybrání pořadí konzultantů</h3>
<form action="" method="post">
   <table>
   <?php for ($i=0;$i<$pocetkonzultantu;$i++){ 
   echo "<tr>
            <td>".$jmenokonzultanta[$i]."</td>
            <input type='hidden' name='jmeno' value='$jmenokonzultanta[$i]' />
            <td>".$soucasneporadikonzultanta[$i]."</td>
            <input type='hidden' name='pozice' value='$soucasneporadikonzultanta[$i]' />
            <td><input type='text' name='noveporadi' size='2' maxlength='3' value='$soucasneporadikonzultanta[$i]' /></td>
         </tr>"; 
      } ?>
   </table>  
<input type='submit' name='tlacitko' value='Uložit změny'> 
</form>
A tímto to ukládám:
<?php  
$db4=JFactory::getDBO();         
for($j=0;$j<$pocetkonzultantu;$j++){ 
   $jmeno=$_POST['jmeno'];       
   $starapozice=$_POST['pozice']; 
   $novapozice=$_POST['noveporadi'];      
   if($starapozice==$novapozice){}
   else{   
      echo $jmeno." z ".$starapozice." --> ".$novapozice."<br />";  
       
      $query4=("UPDATE #__categories SET konzultanti='$novapozice' WHERE extension='com_jevents' AND title='$jmeno'");
      $db4->setQuery($query4);  
      $db4->query();   
   }
}
?> 
Díky za radu
Sir Tom
Profil
WellBloud:
Také zdravím,
předpokládám, že echo $jmeno." z ".$starapozice." --> ".$novapozice."<br />"; vypíše vše správně. Problém bych hledal ve WHERE opravdu tam má být AND? Opravdu tam má být title='$jmeno'.

BTW - proč používáš podmínku ($staraPozice==$novaPozice)? Není lepší ($staraPozice!=$novaPozice)?
DJ Miky
Profil
Všechna pole mají stejný název (name="jmeno" apod.), proto se vezme pouze jedna hodnota. Změň všechny name tak, aby to bylo např. name="jmeno[$i]" a poté v PHP $jmeno=$_POST['jmeno'][$i];.
WellBloud
Profil
Sir Tom:
echo $jmeno." z ".$starapozice." --> ".$novapozice."<br />"; vypíše vše správně
právě, že to vypíše 15x změnu té poslední hodnoty (protože $pocetkonzultantu=15)
Problém bych hledal ve WHERE opravdu tam má být AND? Opravdu tam má být title='$jmeno'.
AND tam být musí, aby se nová hodnota napsala na správný řádek (ke správnému jménu)

tu podmínku změním, dík


DJ Miky:
no jasně! to je ono :) díky moc, už to funguje krásně

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: