rijen die in rijen zit opslaan

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Sander C

Sander C

28/11/2008 19:26:00
Quote Anchor link
Na een weekje kom ik er nog steeds niet uit hoe ik de rijen in rijen kan opslaan.

Ik had een formuliertje gemaakt die elk rijen automatisch wordt aangemaakt na de keuze. Bv ik wil 10 rijen en krijg ook 10 rijen. Die 10 rijen wordt gezien als rows[$i] in input type box. Als ik iets aanpas in die rij, wordt ook alle rijen goed opgeslagen.

Maar ik wil in 1 van die rijen ook nog eens rijen. Bv rij 2 en 5 komen er ook eens 10 rijen bij. Ik gebruik $subrows[$i] in <input type="text">. Ik heb een foreach gemaakt voor die rijen in die rijen. Maar van elk laatste rij in die rijen wordt wel opgeslagen, maar de andere 9 van elk rij niet.

Weet iemand hoe ik dat kan oplossen?
 
PHP hulp

PHP hulp

24/12/2024 18:37:00
 
Terence Hersbach

Terence Hersbach

28/11/2008 20:40:00
Quote Anchor link
heb je misschien een stukje code? dat brengt denk ik een hoop duidelijkheid in dit verhaal (wat wel te snappen is, maar toch)
 
Sander C

Sander C

28/11/2008 21:00:00
Quote Anchor link
Oke..het is eigenlijk een heel erg lange code..ik zet er wel een deel ervan in.

Die 1e foreach is een rij en 2e foreach een rij in rij. Dit geldt ook voor de 2e tekst.

En ik wil van niemand verder horen over normaliseren. Ik gebruik al diverse tabellen en de hele script werkt goed..alleen die rij in de rij niet. Op zich is het geen ramp, want ik kan die rij wel verwijderen en nieuwe rij erin toevoegen..maar wil toch liever alles kunnen opslaan als ik iets wijzig.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
   foreach ($rowinvuls as $rowinvul):
     $string = $rowinvul->invultext;
     $zoekwoord = 'include';
      echo "<tr $bghier><td><b>Rij <input type='text' name='changerow[$i]' value='".$rowinvul->rows_id."' style='width:15px;'><input type='hidden' name='oldrow[$i]' value='".$rowinvul->rows_id."'><input type='hidden' name='siteid[$i]' value='".$row->id."'></b></td><td>";
      if (eregi($zoekwoord, $string)) {
      $string=$rowinvul->invultext;
      $input = array("include ('","includes/","')");
      $output = array('','','');
      $laatzien=str_replace($input,$output,$string);
       if ($laatzien=="text.php"){
            $sql2="SELECT * FROM $invultexttab WHERE text_rows_id=$i AND text_site_id=".$row->id." AND text_sport_id=sport_id ORDER BY text_id ASC";
            $database->setQuery($sql2);
            $rowtexts = $database->loadObjectList();
             echo '<table border="0" cellspacing="2" cellpadding="2" width="100%"><tr><td colspan="3">'.welkepagina($laatzien,$i).'</td></tr>';
             echo '<tr style="background-color: #c0c0c0;"><td><b>Sport</b></td><td><b>Aantal</b></td><td><b>Optie</b></td><td><b>Actie</b></td></tr>';
              foreach ($rowtexts as $rowtext):
//             for ($j=0;$j<$aantalrijen1;$j++){
               echo '<tr><td><select name="sportid['.$i.']"><option value="">Selecteer...</option><option value="1">Tennis</option></select></td><td><input type="text" name="aantallimit['.$i.']" value="'.$rowtext->aantallimit.'"><input type="hidden" name="textid['.$i.']" value="'.$rowtext->text_id.'"><input type="hidden" name="orginalrowid['.$i.']" value="'.$rowtext->text_rows_id.'"></td><td><input type="checkbox" name="textborder['.$i.']" value="1"';
               if ($rowtext->text_border==1){
                echo 'checked';
                }
               echo '>&nbsp;Border aan?&nbsp;|&nbsp;<input type="checkbox" name="texttitle['.$i.']" value="1"';
               if ($rowtext->text_title==1){
                echo 'checked';
                }
               echo '>&nbsp;Titel aan?</td><td><a href="index.php?cmd=del&textid='.$rowtext->text_id.'&siteid='.$row->id.'"><img src="images/remove-16x16.png" alt="Verwijder" title="Verwijder" border="0"></a></td></tr>';
//               }
              endforeach;
             echo '</table>';
       }
endforeach;


Met deze code wordt dan de pagina opgeslagen.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
  foreach ($_POST['changerow'] as $j => $cid) {
  $siteid=$_POST['siteid'][$j];
  $pagina=$_POST['laatzien'][$j];
  $invultext=$_POST['invultext'][$j];
  $oldrowid=$_POST['oldrow'][$j];
  $sql="SELECT * FROM $invultab WHERE rows_id=$cid AND site_id=$siteid";
  $result = mysql_query($sql);
//  echo $sql."<br>";
   while($query_data = mysql_fetch_array($result)) {
   $vergelijkrows = $query_data["rows_id"];
   $vergelijkpagina = $query_data["invultext"];
   }
   if ($vergelijkrows==$cid){
     $sql1="UPDATE $invultab SET invultext='$invultext' WHERE rows_id='$cid' AND site_id='$siteid'";
     $query = mysql_query($sql1);
  }else{
  echo 'insert';
  }
   foreach ($_POST['sportid'] as $m => $sportid){
//     foreach ($_POST['sportid'][$m] as $n => $sportid){
      $oldrowid=$_POST['orginalrowid'][$m];
      $siteid=$_POST['siteid'][$m];
      $aantallimit=$_POST['aantallimit'][$m];
      $textborder=$_POST['textborder'][$m];
      $texttitel=$_POST['texttitle'][$m];
      $sql = "UPDATE $invultexttab SET aantallimit='$aantallimit', text_sport_id='$sportid', text_border='$textborder', text_title='$texttitel' WHERE text_rows_id='$oldrowid' AND text_site_id='$siteid'";
   $query = mysql_query($sql);
   }
}
Gewijzigd op 01/01/1970 01:00:00 door Sander C
 
Sander C

Sander C

01/12/2008 22:09:00
Quote Anchor link
Het is nu 3 dagen verder en nog geen enkel reactie..:S
 
Frank -

Frank -

01/12/2008 22:13:00
Quote Anchor link
Quote:
En ik wil van niemand verder horen over normaliseren.

Goh, en dan vind je het vreemd dat er niemand reageert? De code is vrijwel onleesbaar, de queries zijn zo lek als een mandje (wel eens van SQL-injection gehoord?) en je geeft zelf al aan dat het datamodel niet al te best is.

Succes!
 
Sander C

Sander C

01/12/2008 22:20:00
Quote Anchor link
Nou frank..

Iedereen heeft eigen manier van scripten. De ene maakt zo erg leesbaar en andere niet.

Ik kan lezen, ik weet waar het te vinden is.

Al werd mij duizenden keren gezegd over normaliseren..daar wordt ik niks wijzer van. Het gaat niet om normalizeren maar om een oplossing.

Ach..ik vraag wel aan iemand anders die wel begrip toont en een oplossing zoekt ipv roepen.

En wat sql injections betreft..daar maak ik me geen zorgen om. Het is in administratie en is geheel afgeschermd voor buitenwereld.
Gewijzigd op 01/01/1970 01:00:00 door Sander C
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.