[php] kilka problemów

0

Mam kod:

<select name="times[]">
  <option selected>1</option>
  <option>2</option>
  <option>3</option>
</select>
<select name="times[]">
  <option>1</option>
  <option selected>2</option>
  <option>3</option>
</select>
<select name="times[]">
  <option>1</option>
  <option>2</option>
  <option selected>3</option>
</select>

Niestety pokazane wartości to 1,1,1 a nie 1,2,3.

Jak sobie z tym poradzić ?

0

selected="selected" tak to zrób :) Pozdrawiam

0

problem był z pozycjami value="xxx", to co znajduje się w xxx było pobierane z bazy danych mysql i trzeba potraktować te dane funkcją trim.

Napotkałem na drugi problem niby powinny być wszystko ok, jednak tak nie jest:

		try {
			$pdo = new PDO('mysql:host='.$this->_config->db_host.';dbname='.$this->_config->db_name, $this->_config->db_username, $this->_config->db_password);
			
			$stmt = $pdo->prepare("SELECT * FROM `cities`");
			$stmt->execute();
			foreach($stmt->fetchAll() as $row) {
				$cities[$row['id']] = $row['name'];
			}
			$stmt->closeCursor();
			
			$stmt = $pdo->prepare("SELECT * FROM `lines`");
			$stmt->execute();
			foreach($stmt->fetchAll() as $row) {
				$lines[$row['id']] = $row['name'];
			}
			$stmt->closeCursor();
			
			//
			
			$i=0;
			$stmt = $pdo->prepare("SELECT * FROM `stops`");
			$stmt->execute();
			foreach($stmt->fetchAll() as $row) {
				$stops[$row['id']] = $row['name'];
				$stops2[$i++] = array( 'id' => $row['id'], 'name' => $row['name'], 'city' => $cities[$row['city_id']]);
			}
			$stmt->closeCursor();
			
			$i=0;
			$stmt = $pdo->prepare("SELECT * FROM `directions`");
			$stmt->execute();
			foreach($stmt->fetchAll() as $row) {
				//pole stops_id wyglada mniej wiecej tak: 1.2.3.4.5
				$stops_id = explode('.', $row['stops_id']);
				$stop = array();
				foreach($stops_id as $val) {
					$stop[$val] = array($lines[$row['line_id']] => '1');
				}
			}
			$stmt->closeCursor();
		} catch(PDOException $e) {
			echo $e->getMessage();
		}

i teraz jak daje

59: foreach($stops2 as $value) {
...
61: 	$s = $stop[$value['id']];
...
63: 	foreach($s as $val) {
64: 	}
65: }

i na stronie pojawia się komunikat:

Warning: Invalid argument supplied for foreach() in ....php on line 63

i zupełnie nie wiem czemu to zwraca błąd. Jeśli chcę wypisać dane w pętli foreach na ekran, to dane są wypisywane, ale błąd jest zwracany. Mogę nie pokazywać tego błędu poprzez error_reporting(0), ale to nie o to chodzi.

EDIT

zauważyłem, że jeśli zamiast

$s = $stop[$value['id']];
...
63: 	foreach($s as $val) {
64: 	}

napiszę

63: 	foreach($stop[4] as $val) {
64: 	}

to błąd już się nie pojawia, nie pojawia się jeśli w indeksie wpisze liczbę a nie zmienne. Nawet jak zmienne zrzutuje na inta to i tak błąd się pojawia.

1 użytkowników online, w tym zalogowanych: 0, gości: 1