2014-02-21 5 views
1

У меня есть этот кусок PHP кода:цикл вместе с, если оператор переопределения PHP

for($i=0;$i<$rowsize;$i++) { 

      if($i == $object_id) { 

       if ($stmt = $mysqli->prepare('SELECT x, y, src FROM house_room1 INNER JOIN objects ON house_room1.object_id=objects.object_id WHERE ref_id = ?')) { 

       /* Bind parametres */ 
       $stmt->bind_param('i', $ref_id); 

       /* Insert the parameter values */ 
       $ref_id = $i; 

       /* Execute the query */ 
       $stmt->execute(); 

       /* Bind resultatet */ 
       $stmt->bind_result($x, $y, $src); 

       /* Close statement */ 
       $stmt->close(); 

       } else { 
       /* Something went wrong */ 
       echo 'Something went terrible wrong'  . $mysqli->error; 
       } 
       echo '<img src="'.$src; echo '"class="item" style="position:relative; left:'.$x; echo 'px; top:'.$y; echo 'px;">'; 

      } 
     } 

Этот код начинается с для цикла, что петли через таблицу базы данных, которые в настоящее время cotains две строки. Пока он делает это, он говорит, что если переменная $i равна идентификатору объекта внутри базы данных, выполните этот запрос, который находит в базе данных src, x и y. После этого он вставляет эти значения в изображение, чтобы сделать отображение изображения на странице. Тем не менее, хотя есть две строки, которые она должна пройти, и, следовательно, два изображения, которые должны отображаться, как будто это переопределение первого изображения, поскольку отображается только последнее изображение. Я думаю, что это связано с моей логикой PHP, но я не могу понять, как отображать оба изображения без каких-либо переопределений. Заранее спасибо.

+0

Сначала вы не зацикливали отображение внутренних изображений. во-вторых, каково значение ваших '$ x' и' $ y'. они будут отображаться на том же месте, что и ваш css. –

+0

, а значения $ x и $ y - это два разных значения в базе данных, а object_id отличается от 1 и 2. Поэтому мне нужно также прокручивать изображения, чтобы отобразить их все? хм и как? – user3287771

+0

попробуйте один раз, чтобы удалить свой стиль на изображении. –

ответ

1
<?php 
$stmt = $mysqli->stmt_init(); 
$stmt->prepare('SELECT x, y, src FROM house_room1 INNER JOIN objects ON house_room1.object_id=objects.object_id WHERE objects.object_id = ?'); 
$stmt->bind_param('i', $object_id); 
if ($stmt->execute()) { 
    $stmt->bind_result($x, $y, $src); 
    while($stmt->fetch()) { 
     echo '<img src="' . $src . '" class="item" style="position:relative; left:' . $x . ' px; top:' . $y . 'px;">'; 
    } 
} else { 
    echo 'Something went terrible wrong' . $mysqli->error; 
} 
$stmt->close(); 
?> 
+0

Uhm Я пытался заменить ваш код моим, но изображения не отображаются сейчас? mhmm – user3287771

+0

Я обновил свой ответ. Возможно, это было потому, что оно закрывалось до того, как были получены данные. Надеюсь, теперь он должен работать :) – weiver

+0

Он по-прежнему не показывает никаких изображений:/ – user3287771

Смежные вопросы