2016-10-05 10 views
0

2番目のクエリが機能せず、2番目のクエリの情報を別のテーブルからエコーしようとしましたが、次のメッセージが表示されます。
Undefined property: stdClass::$titulo(および残りの "resultado2" )
は、私が最初のクエリのようにしばらくを実行しようとしました(しばらく($ nfila = $ resultado2-> fetch_object()))が、別のエラーメッセージ表示されない:あなたがしている
Trying to get property of non-object

PHP。未定義のプロパティ:double queryのstdClass

<?php 
    $usuario = $_SESSION['usuario_valido']; 
    $consulta = "SELECT * FROM `lista-usuarios` WHERE categoria='favoritos' AND nombreusuario='$usuario' ORDER BY pelicula ASC"; 
    $resultado = $conexion->query($consulta); 

    if ($resultado) 
     { 
     $cont3 = 1; //Para el id de la peli 
     $i = 0; //Para un class unico 
     while ($nfila = $resultado->fetch_object()) 
      { 
      $pelicula = "peli" . $cont3; //Para hacer un id unico de cada pelicula 
      $i++; 
      echo "<form role='form' id='$pelicula'><table class='table table-striped'>"; 
      echo " 
          <tr> 
           <td>" . $cont3 . "</td> 
           <td class='celda2'>" . $nfila->pelicula . "</td> 
           <td class='celda2'>" . $nfila->anio . "</td> 
           <td class='celda2'><button type='button' class='infoCompleta btn btn-default' data-toggle='modal'data-target='.modal" . $i . "'><span class='glyphicon glyphicon-hand-right'></span> Info Completa</button></td><td class='celda2'><button type='button' class='eliminarFav1 btn btn-danger'><span class='glyphicon glyphicon-remove-sign'>              </span> Favoritos</button></td> 
          </tr>"; 
      $consulta2 = "SELECT * FROM `peliculas` WHERE titulo='$nfila->pelicula'"; 
      $resultado2 = $conexion->query($consulta2); 
      if ($resultado2) 
       { 
       echo " 
          <div class='modal fade bs-example-modal-lg modal" . $i . "' tabindex='-1' role='dialog' aria-labelledby='myLargeModalLabel'> 
          <div class='modal-dialog modal-lg'> 
          <div class='modal-content'> 
          <div class='modal-header'> 
          <button tyle='button' class='close' data-dismiss='modal' aria-hidden='true'>&times;</button> 
          <h4 class='modal-tigle'>" . $nfila->titulo . "</h4> 
          </div> 
          <div class='modal-body'> 
          <center><a target='_blank' href='imagenes/" . $nfila->imagen . "'> 
          <img class='img-top-peliculas' src='imagenes/" . $nfila->imagen . "' class='img-rounded '></a> 
          </center><br /> 
          <p><strong>Titulo Original: </strong>" . $nfila->tituloOriginal . "</p> 
          <p><strong>Año: </strong>" . $nfila->anio . "</p> 
          <p><strong>Duracion: </strong>" . $nfila->duracion . " min.</p> 
          <p><strong>País: </strong>" . $nfila->pais . "</p> 
          <p><strong>Director: </strong>" . $nfila->director . "</p> 
          <p><strong>Reparto: </strong>" . $nfila->reparto . "</p> 
          <p><strong>Género: </strong>" . $nfila->genero . "</p> 
          <p><strong>Sinopsis: </strong>" . $nfila->sinopsis . "</p> 
          </div> 
          <div class='modal-footer'> 
          <button type='button' class='btn btn-default' data-dismiss='modal'>Cerrar</button> 
          </div> 
          </div> 
          </div> 
          </div>"; 
       } 

      echo "<input name='usuario' type='hidden' value='$usuario'>"; 
      echo "<input name='titulo' type='hidden' value='$nfila->pelicula'>"; 
      echo "<input name='anio' type='hidden' value='$nfila->anio'>"; 
      echo "<input name='categoria' type='hidden' value='categoria' class='cat'>"; 
      echo "</table></form>"; 
      $cont3++; 
      } 

     echo "<span class='datos'></span>"; 
     } 
     else 
     { 
     echo "Hubo un problema al cargar las peliculas"; 
     } 

答えて

1

を結果を$resultado2 = $conexion->query($consulta2);から取得しません。以前のの最後の$nfilaをまだ使用しています。

if ($resultado2) { 
     $nfila2 = $resultado2->fetch_object(); 

その後、他の部分うちどこechoその内側の条件付きで$nfila2を使用します。私はあなたのような何かをしたいと仮定するつもりです。

echo " 
     ... stuff .... 

     <h4 class='modal-tigle'>" . $nfila2->titulo . "</h4> 

     ... more stuff...."; 

また、同じ接続でネストされたクエリはお勧めしません。私は、元のセットにすべてをフェッチ行いたい:そう、ちょうど

+0

はどうもありがとうございましたあなたは$nfila['pelicula']$nfila->pelicula refernecesを変換してください

$results = $resultado->fetch_all(); foreach($results as $nfila) { //Do stufff 

しかし、fetch_allはオブジェクトのみ、mysqliのでは配列ではなく返すこと私は別の質問をしたいと思います。誰かが私に言った: " ループはn個のクエリが実行されるので、これはアプリケーションのパフォーマンスに影響を与えます。これを行うには良い方法ですか?それとも私はそうしなければならないのですか? – SilverSurfer

+0

2番目のテーブルのキーとして '$ nfila-> pelicula'を使用しているので、これは1つの結合クエリで行います。また、同じ接続で2つのアクティブなクエリを実行することができますので、少なくとも最初のクエリ結果に対してfetch_all()を実行し、提供する配列を繰り返します。 – Ray

+0

[OK]を、しかし、あなたは私のように問題があると思いますか? – SilverSurfer

関連する問題