j4nk3y: Merkwürdiges Verhalten bei mySQL Anfrage

Beitrag lesen

Wenn $anz_neu den Inhalt 2 hat, und $i mit 1 initialisiert wurden, dann ist im ersten Durchlauf 2 != 1 und im zweiten 2 == 2.

Verwende bitte die Schreibweise als PHP-Operatoren und nicht mathematisch, sonst kann man so schlecht unterscheiden, ob du eine Zuweisung oder einen Vergleich meinst.

OK moment ich beginne grad dem Fehler auf der Spur zu sein.

array(6) { [0]=> array(2) { [0]=> string(1) "6" ["pid"]=> string(1) "6" } [1]=> array(2) { [0]=> string(1) "7" ["pid"]=> string(1) "7" } [2]=> array(2) { [0]=> string(1) "8" ["pid"]=> string(1) "8" } [3]=> array(2) { [0]=> string(1) "9" ["pid"]=> string(1) "9" } [4]=> array(2) { [0]=> string(2) "10" ["pid"]=> string(2) "10" } [5]=> array(2) { [0]=> string(2) "11" ["pid"]=> string(2) "11" } }

array(9) { [0]=> array(2) { [0]=> string(1) "6" ["pid"]=> string(1) "6" } [1]=> array(2) { [0]=> string(1) "7" ["pid"]=> string(1) "7" } [2]=> array(2) { [0]=> string(1) "8" ["pid"]=> string(1) "8" } [3]=> array(2) { [0]=> string(1) "9" ["pid"]=> string(1) "9" } [4]=> array(2) { [0]=> string(2) "10" ["pid"]=> string(2) "10" } [5]=> array(2) { [0]=> string(2) "11" ["pid"]=> string(2) "11" } [6]=> array(2) { [0]=> string(2) "12" ["pid"]=> string(2) "12" } [7]=> array(2) { [0]=> string(2) "13" ["pid"]=> string(2) "13" } [8]=> array(2) { [0]=> string(2) "14" ["pid"]=> string(2) "14" } }

Das ist die Ausgabe mit:

$anz_neu = 3;
$b=2;
For($i=$b ; $i <= $anz_neu ; $i++)
{
	$query2 = "SELECT pid FROM planets Where sid = $i";
	$ergebnis2 = mysql_query($query2);
	$num = mysql_num_rows($ergebnis2);
	
	
	while($arr = mysql_fetch_array($ergebnis2))
		{
			$array[] = $arr;
		}
	var_dump($array);
	echo '</br></br>';

array(6) Stimmt. In der Datenbank Beginnt pid bei 6 und endet bei 11 für sid = 2, Der zweite durchlauf der Schleife ist aber falsch, warum beginnt der dort auch bei 6 und endet bei 14? Warum nicht von 11 bis 14 so wie es in der Datenbank steht.

For($a = 0; $a < $num ; $a++)

$a fängt immer wieder bei 0 an.

Muss ja bei 0 anfangen um auch den ersten Eintrag des Arrays anzusprechen.

Ja, aber auch für alle Werte von $i? Bei $i == 1 ebenso wie bei $i == 2, wenn $anz_neu gleich 2 ist und $i mit 1 startet?

Ja so ist es gedacht.

Gruß Jo