Avatar billede jammerlab Nybegynder
12. februar 2005 - 14:46 Der er 21 kommentarer og
1 løsning

Har lidt problemer med at se hvordan med array

Okay jeg har følgende kode:

echo "
  <form action='$PHP_SELF?current_month=$current_month&year=$year' method=post>
  <table width=600 cellpadding=2 cellspacing=2>
  ";

  $query = mysql_query("SELECT * FROM kalender WHERE month = '$current_month' && year = '$year'");
  while($row = mysql_fetch_array($query)) {

  echo "
  <tr>
  <td>
  <input type=hidden value=$row[date] name=\"dageee[]\">
  <span class=text1>(Den $row[date]/$current_month-$year) Tekst:</span></td>
  <td><input type=text name=\"lalatest[]\" value=$row[tekst]></td>
  <td>
  <span class=text1> Overskrift: </span></td>
  <td><input type=text name=\"overskrift[]\" value=$row[overskrift]></td>
  </tr>

  ";

  }

  echo "
  </table>
  <br>
  <input type=hidden value=true name=update_dag>
  <input type='submit' style='width: 0; height: 0'><input type='submit' class=form value='Opdater Kalender' onfocus='this.blur()'>
  </form>
";

Jeg aner ikke om jeg er på rette vej men det der sker er at den laver en masse <input> alt efter hvor mange dage der er i min database... jeg skal så kunne tilføge noget text til disse dage og så trykke "Opdater Kalender"... men det er herfra den ligsom glipper... jeg ved ikke hvordan jeg skal sende data'en korrekt videre op til min:

if($update_dag) {

if(is_array($_REQUEST['dageee'])) {

foreach($_REQUEST['dageee'] as $value) {

mysql_query("UPDATE kalender set tekst='$value2',overskrift='$overskrift' WHERE month = '$current_month' && year = '$year' && date = '$value'")or die (mysql_error());

}
}
}

Hvis i kan se mit problem...
Avatar billede jakoba Nybegynder
12. februar 2005 - 14:54 #1
iii dine dage felter skriver du
    value=$row[date]
og det er et sted hvor det nok er ret vigtigt at så sat anførselstegn omkring attributværdien
    value='$row[date]'
Avatar billede jammerlab Nybegynder
12. februar 2005 - 14:57 #2
Ja okay, men det for den stadig ikke til at sende alt det den skal korrekt afsted ;)
Avatar billede jakoba Nybegynder
12. februar 2005 - 15:08 #3
men overskrifter og tekster er jo også arrays, få de 3 arrays skal gennemløbes sammen.

for ( $i=0; $i<count($_REQUEST['dageee']); $i++ ) {
      //nu er $i fælles index for alle 3 arrays
    $_REQUEST['lalatest'][$i] as $value
mysql_query("UPDATE kalender
                SET tekst='". $_REQUEST['lalatest'][$i] ."',overskrift='". $_REQUEST['overskrift'][$i] .'
            WHERE month = '$current_month' && year = '$year' && date = '". $_REQUEST['dageee'][$i] "'"
              )or die (mysql_error());
}

ps det nytter ikke meget at sætte or die på en UPDATE. Den returnerer antallet af ændrede rækker og hvis det er nul dør dit script selvom der ikke er nogen fejl

bedre med
    $temp_variabel = mysql_querey( "UPDATE ..." );
    if ( $temp_variabel === false ) {
          // nb: 3 lighedstegn så kun boolean false, ikke blot 'ingen rækker'
        die( mysql_error() );
    }
Avatar billede expnet Seniormester
12. februar 2005 - 15:10 #4
hvis du har et felt for hver dato som skal have noget tekst så skal du vel bare lave en array for dato og teskt så du ved at dato som høre samme og derefter opdater du det i databasen
Avatar billede jakoba Nybegynder
12. februar 2005 - 15:10 #5
ups, jeg mangler en " bagerst(næsten) i  SET linien
                SET tekst='". $_REQUEST['lalatest'][$i] ."',overskrift='". $_REQUEST['overskrift'][$i] ."'
Avatar billede jammerlab Nybegynder
12. februar 2005 - 15:43 #6
if($update_dag) {

for ( $i=0; $i<count($_REQUEST['dageee']); $i++ ) {
      //nu er $i fælles index for alle 3 arrays
    $_REQUEST['lalatest'][$i] as $value
mysql_query("UPDATE kalender SET tekst='". $_REQUEST['lalatest'][$i] ."',overskrift='". $_REQUEST['overskrift'][$i] .'" WHERE month = '$current_month' && year = '$year' && date = '". $_REQUEST['dageee'][$i] "'")or die (mysql_error());

}
}

giver mig følgende fejl:

Parse error: parse error, unexpected T_AS in C:\Program Files\Apache Group\Apache2\htdocs\kalender\admin.php on line 14

linje 14:  $_REQUEST['lalatest'][$i] as $value
Avatar billede jammerlab Nybegynder
17. februar 2005 - 11:46 #7
any one?
Avatar billede jammerlab Nybegynder
18. februar 2005 - 20:18 #8
Come on :) Skal bruge det til en vigtig opgave og jeg kan ikke løse det...
Avatar billede alister_crowley Nybegynder
18. februar 2005 - 20:24 #9
as $value bruges i en foreachj www.php.net/foreach
Avatar billede jammerlab Nybegynder
18. februar 2005 - 20:53 #10
Jep I know...

if($update_dag) {

for ( $i=0; $i<count($_REQUEST['dageee']); $i++ ) {
      //nu er $i fælles index for alle 3 arrays
    foreach($_REQUEST['lalatest'][$i] as $value) {
mysql_query("UPDATE kalender SET tekst='". $_REQUEST['lalatest'][$i] ."',overskrift='". $_REQUEST['overskrift'][$i] .'" WHERE month = '$current_month' && year = '$year' && date = '". $_REQUEST['dageee'][$i] "'")or die (mysql_error());
}
}
}

men så laver den fejl på linje 15

Parse error: parse error, unexpected T_VARIABLE in C:\Program Files\Apache Group\Apache2\htdocs\kalender\admin.php on line 15

Linje 15:

mysql_query("UPDATE kalender SET tekst='". $_REQUEST['lalatest'][$i] ."',overskrift='". $_REQUEST['overskrift'][$i] .'" WHERE month = '$current_month' && year = '$year' && date = '". $_REQUEST['dageee'][$i] "'")or die (mysql_error());

men kan ikke lige finde fejlen.
Avatar billede jammerlab Nybegynder
19. februar 2005 - 12:43 #11
okay nu er jeg nået så langt:

if($update_dag) {

for ( $i=0; $i<count($_REQUEST['dageee']); $i++ ) {
      //nu er $i fælles index for alle 3 arrays
    foreach($_REQUEST['lalatest'][$i] as $value) {
mysql_query("UPDATE kalender SET tekst='$_REQUEST[lalatest][$i]',overskrift='$_REQUEST[overskrift][$i]' WHERE month='$current_month' && year='$year' && date ='$_REQUEST[dageee][$i]'")or die (mysql_error());
}
}
}

men den laver fejl i foreach'en...

Warning: Invalid argument supplied for foreach() in C:\Program Files\Apache Group\Apache2\htdocs\kalender\admin.php on line 14
Avatar billede jammerlab Nybegynder
19. februar 2005 - 12:44 #12
det er den [$i] der volder problemer ser det ud til
Avatar billede sukos Juniormester
19. februar 2005 - 13:19 #13
Hvis du navngi'r dine tekstfelter, efter date:

  <td><input type=text name=\"lalatest_". $row["date"] ."\" value=". $row["tekst"] ."></td>
  <td>
  <span class=text1> Overskrift: </span></td>
  <td><input type=text name=\"overskrift_". $row["date"] ."\" value=\"". $row["overskrift"] ."\"></td>

kan du,

foreach($_POST["dageee"] as $ref) {
mysql_query("UPDATE kalender SET tekst='". $_POST["lalatest_". $ref] ."',overskrift='". $_POST["overskrift_". $ref] ."' WHERE date = '". $ref ."'") or die (mysql_error());
}


Du har ikke et id felt i tabellen, som er autoincrement?
Avatar billede jammerlab Nybegynder
19. februar 2005 - 13:41 #14
jow jeg har et id som autoincrement
Avatar billede sukos Juniormester
19. februar 2005 - 13:48 #15
Ok, så lav dit hidden felt med id
<input type='hidden' value='". $row["id"] ."' name='rowid[]'>

Og navngi dine felter med det id

name=\"lalatest_". $row["id"] ."\"

foreach($_POST["rowid"] as $ref) {
echo"("UPDATE tabel set tekst = '". $_POST["lalatest_". $ref] WHERE id = '". $ref ."'")<br>";
}
Avatar billede jammerlab Nybegynder
19. februar 2005 - 13:59 #16
if($update_dag) {

foreach($_POST["rowid"] as $ref) {
echo"("UPDATE tabel set tekst = '". $_POST["lalatest_". $ref] WHERE id = '". $ref ."'")<br>";
}
}

Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in C:\Program Files\Apache Group\Apache2\htdocs\kalender\admin_lej.php on line 13
Avatar billede sukos Juniormester
19. februar 2005 - 14:01 #17
Hov, ja, der skal en \ foran " i det som skal ende med en query!

echo"(\"UPDATE tabel set tekst = '". $_POST["lalatest_". $ref] WHERE id = '". $ref ."'\")<br>";
Avatar billede jammerlab Nybegynder
19. februar 2005 - 14:03 #18
hehe for stadig en fejl :)

echo"(\"UPDATE tabel set tekst = '". $_POST["lalatest_". $ref] WHERE id = '". $ref ."'\")<br>";
Avatar billede jammerlab Nybegynder
19. februar 2005 - 14:04 #19
echo"(\"UPDATE tabel set tekst = '". $_POST["lalatest_". $ref] ."' WHERE id = '". $ref ."'\")<br>";

sådan vel :)
Avatar billede sukos Juniormester
19. februar 2005 - 14:07 #20
Jada! :O]
Avatar billede jammerlab Nybegynder
19. februar 2005 - 14:09 #21
mysql_query("UPDATE kalender SET tekst='". $_POST["tekst_". $ref] ."',overskrift = '". $_POST["overskrift_". $ref] ."' WHERE id = '". $ref ."'")or die (mysql_error());

sådan så fungere den både med overskrift og med tekst! PERFEKT! :) Mange tak for hjælpen sukos, smid et svar :)
Avatar billede sukos Juniormester
19. februar 2005 - 14:16 #22
Ok.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester