Avatar billede Slettet bruger
25. januar 2010 - 00:58 Der er 5 kommentarer og
1 løsning

MySQL og PHP, SELECT ........ AND

hvis jeg skriver AND xxxx = '".$ind."' svarer den 'Uønsket kald til database SEL', -ren logik.
hvis jeg skriver AND grp01 = '".$ind."' fungerer alt perfekt.
hvis jeg skriver AND ude_arbsed01 = '".$ind."' svarer den 'Warning: Invalid argument supplied for foreach() in C:\AppServ\www\01\arbsed.php on line 56'

Den fatter jeg ikke en døjt af??? Hvad gør jeg galt her???
(jeg er banen igen til aften)-Godnat.

line 56:foreach ($tat as $nogle => $vardi){



tabellen:
grp01,     varchar(2), 'Nulværdi' Ja, 'Standardværdi' NULL
ude_arbsed01,          -samme-

koden:
$max_dag = '17-02-2010';
$ind= 1;

$resultat=mysql_query("SELECT * FROM plmatrikel WHERE termin01_on = '".on."' AND grp01 = '".$ind."' ORDER BY omrode ASC, arb_sted ASC ") or die('Uønsket kald til database SEL');
   
    $antal_tat = mysql_num_rows($resultat);                                           
?>

<?php
    while ($matrikel = mysql_fetch_array($resultat)){
 
    $tat = unserialize(base64_decode($matrikel[termin_array01]));
         
        echo "<form method='post' action='modtag.php'>";
        foreach ($tat as $nogle => $vardi){
          if(strtotime($max_dag) < strtotime($vardi)) break;
          ?>
         
          <input type="text" name="matrikel_id[]" value="<?= $matrikel[matrikel_id];?>" size="1" maxlength="2" readonly />
          <input type="text" name="plmatrikel[]" value="<?= $matrikel[arb_sted];?>" size="15" maxlength="20" readonly />
          <input type="text" name="omrode" value="<?= $matrikel[omrode];?>" size="9" maxlength="10" readonly />
          <input type="text" name="termin_vardi[]" value="<?= $vardi;?>" size="10" maxlength="11" readonly />
          <input type="text" name="uge_dagnr" value="<?php $t_tal = strtotime($vardi); echo $uge_dagnr = date("W", $t_tal);?>" size="1" maxlength="2" readonly />
          <br />
          <?php
        }//foreach
      echo "<br />";
  }//while
echo "<input type='submit' name='fyret' value='fyret'/>";
      echo "</form>";
Avatar billede michael_stim Ekspert
25. januar 2010 - 09:18 #1
Er det ikke bare fordi at dit array er tomt? Check først om der er noget i dit array, før du kører din foreach.
Avatar billede Slettet bruger
25. januar 2010 - 10:32 #2
Ja, det det var også min første tanke.

Jeg fyldte så op med ettaller i både grp01 og ude_arbsed01, det ændrede ikke på noget. Array'et bliver vel ikke bare tomt fordi jeg AND'er på et andet felt.
Jeg kunne jo prøve med :
if($tat = unserialize(base64_decode($matrikel[termin_array01])));
Jeg må 'slås' videre med det når jeg kommer hjem i aften.
Avatar billede michael_stim Ekspert
25. januar 2010 - 11:02 #3
Det kan det sagtens.

felt1  felt2
a      b
c      d
e      f
x      y

SELECT * FROM tabel WHERE felt1='a' AND felt2='y'; = 0 resultat
SELECT * FROM tabel WHERE felt1='x' AND felt2='y'; = 1 resultat
Avatar billede Slettet bruger
25. januar 2010 - 11:56 #4
hmmm...
#3:du har vist fat i noget af det rigtige.
det må jeg lige se på i aften, det ender nok med at jeg får røde øren!
foreløbig tak
Avatar billede Slettet bruger
25. januar 2010 - 17:33 #5
michael_stim
Hvis du kiggede i vest ville du se et rødligt skær. Nej, det var ikke solnedgangen, det var mine øren.
Kiggede i mine tabellerne for at se mine testdata igennem, ups, et tomt array. Du har helt ret angående tom array.
Alt virker som det bør og skal, -og hermed er der dømt ingen programmering eller test efter midnat (står op kl. 0600 hver dag).
Vil du have point så gi' svar.
Tak for 'øjenåbneren'.
Avatar billede Slettet bruger
31. januar 2010 - 17:00 #6
ego
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
Computerworld tilbyder specialiserede kurser i database-management

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