2016-11-17 2 views
1

を実行中にSQL値は、PHPを存在する場合、私は、変数「i」の何値が「1」であると私の価値私のデータベース内にある場合がありますPHPのループをやろうとしています変数が存在すると、スクリプトを実行し、my変数の値が自分のデータベースに存在しないときに、変数などに1を加えます。私のコードがあります:ループは、変数に1を追加し、スクリプト

のconfig.php:

<?php 
/* Database connection */ 

$sDbHost = 'localhost'; 
$sDbName = 'techtronik.pl'; 
$sDbUser = 'root'; 
$sDbPwd = ''; 
$dbcon = mysqli_connect ($sDbHost, $sDbUser, $sDbPwd, $sDbName); 
?> 

anotherfile.php:

<?php 

include('config.php'); 

$sqlget = "SELECT * FROM pcstacjonarne"; 
$sqldata = mysqli_query($dbcon, $sqlget)or die("Nie udalo sie polaczyc z baza danych"); 
$row = mysqli_fetch_array($sqldata, MYSQLI_ASSOC); 
$i = 4; 
$result = $dbcon->query("SELECT * FROM pcstacjonarne WHERE idpcstacjonarne = '$i'"); 

while ($result->num_rows == 1) {    
    echo 'Number of post is '.($i++); 
} 
?> 

しかし、このコードは、私は3時間のためにこれを修正しようとしています動作しませんが、私は本当に今どこに問題がないのですか?もし誰かが私を助けたら、それはすばらしいことになるでしょう。

+0

あなたのwhileループは本当にこのコンテキストで任意の意味がありません。多分あなたはここで何らかの再帰関数を必要とします。 '$ result-> num_rows'が1であるならば、それは常に、しばらくループは任意のコンテキストで任意の意味をなさないこと1. – Maximus2012

+0

ままになりますので、ほとんどの場合、それは無限ループになります。クエリから1つの結果しか得られない場合は、無限ループがあります( '$ result-> num_rows'の値は決して変更されません)。結果が1つ以上ある場合、whileループは決して繰り返されません。 –

+0

あなたはなぜ、あなただけのデータベースから直接値を得ることはありません実際の列か何か – Kisaragi

答えて

0

この問題は、むしろwhileよりも、do whileでより簡単に解決されています

<?php 

include('config.php'); 
$sqlget = "SELECT * FROM pcstacjonarne"; 
$sqldata = mysqli_query($dbcon, $sqlget)or die("Nie udalo sie polaczyc z baza danych"); 
$row = mysqli_fetch_array($sqldata, MYSQLI_ASSOC); 

$i = 4; 

do { 
    $result = $dbcon->query("SELECT * FROM pcstacjonarne WHERE idpcstacjonarne = '$i'"); 
    if ($result->num_rows === 1) { 
     echo 'Number of post is '.($i++); 
    } 

} while ($result->num_rows === 1); 
?> 
+0

ありがとうございました、それは素晴らしい仕事男! :) – jestkoks

1

問題は、あなたが適切にあなたのループを作っていないことです。 num_rowsを使用していますが、正確にはそうではありません。 num_rows === 1はおそらく決して起こらないので、あなたのループは決して起こっていません(たぶん1回だけ)。あなたのやりたいことを正確に教えてください。私たちはあなたに多くのことをお手伝いします。

関連する問題