webForumDet fria alternativet

If-jämförelse

9 svar · 241 visningar · startad av Jörgen HP

Jörgen HPMedlem sedan feb. 20012 412 inlägg
#1

Jag loopar ut massa orter och vill ha vald ort vald. :)

Men den vill inte välja vald ort, någon som ser något fel?

// *** Gör en select och hämta orter ***
   $sql = "SELECT OrtId, Ort FROM Orter ORDER BY Ort ASC";

   $Result = mysql_query( $sql )
      or die( mysql_error() );

   if ( mysql_num_rows( $Result ) > 0 ) {
 
   print ("<br><b>Bostadsort:</b>\n\n<br><select name=\"ort\" size=\"1\">\n\n");     
     
   while ($data = mysql_fetch_array($Result)) {

      $ortId = $data['OrtId'];
      $newOrt = $data['Ort'];

        if ($ort == $newOrt) {

           print ("<option value=\"ortId\" selected>$newOrt</option>\n");    

        } 

        else {

           print ("<option value=\"ortId\">$newOrt</option>\n");    

        }   

   } // Avslutar while loopen

   print ("</select>\n\n");     

   } // Avslutar EOF-kollen
UrMeMedlem sedan apr. 2001762 inlägg
#2

Jag förstår inte vad "ort" är.. den är ju inte satt till nånting?

ThACRoWMedlem sedan dec. 2001314 inlägg
#3

Har du skrivit in FORM-taggen?
Om du har det så beror det nog på att register_globals är satt på false, i det fallet får du anropa $ort så här: $_GET['ort'] eller $_POST['ort'], beroende på vilken METHOD du valde i FORM-taggen.

Jörgen HPMedlem sedan feb. 20012 412 inlägg
#4

Jag kanske var lite otydlig. :r

Alltså jag håller på med en inställningssida till en medlemsprofil.

Alla orter ligger i en speciell tabell (Orter), och valt ortId ligger i usertabellen. När man kommer till sina inställningar ska den tidigare valda orten vara vald. Men det verkar som om if-jämförelsen aldrig blir TRUE.

ViktorMedlem sedan aug. 20021 752 inlägg
#5

Du är säker på att $ort innehåller ett id?
En annan sak, ska inte

print ("<option value=\"ortId\" selected>$newOrt</option>\n");

vara

print ("<option value=\"$ortId\" selected>$newOrt</option>\n");

? Kan det vara så att $Ort är "ortId"? Kan alltid hoppas att det är det som är fel :)

/Viktor

Jörgen HPMedlem sedan feb. 20012 412 inlägg
#6

Där var ett fel, :r men den väljer inte selected endå. (Valuet har ju inte med if-satsen att göra.) Jepps, $ort har ett värde, jag skriver ut det precis innan. :(

ViktorMedlem sedan aug. 20021 752 inlägg
#7

Kan det här vara något då?
Din kod

   while ($data = mysql_fetch_array($Result)) {

      $ortId = $data['OrtId'];
      $newOrt = $data['Ort'];

        if ($ort == $newOrt) {

min kod :)

   while ($data = mysql_fetch_array($Result)) {

      $ortId = $data['OrtId'];
      $newOrt = $data['Ort'];

        if ($ort == $ortId) {

byta $newOrt mot $ortId i if satsen.

/Viktor

Jörgen HPMedlem sedan feb. 20012 412 inlägg
#8

Nu fungerar det. :)

if (trim($newOrt) == trim($ort)) {

Tack alla!

Jörgen HPMedlem sedan feb. 20012 412 inlägg
#9

Ytterligare en fråga:

Om vi tar koden ovan som exempel. Hur gör man smartast för att loopa ut orterna två gånger i en selectlista. Det är ju dumt att göra en hämtning till från databasen.

Eftersom jag gjort det till en array borde jag kunna loopa igenom den hur många gånger jag vill sedan?

Jörgen HPMedlem sedan feb. 20012 412 inlägg
#10

Ingen som vet om man kan, och isåfall hur man lägger en databashämtning i en fristående array, typ som med metoden getrows() i ASP/VB?

131 ms totalt · 3 externa anrop · v20260731065814-full.30151723
125 ms — hämta forumlista (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)