2016-06-20 7 views
1

Ich habe ähnliches Problem wie in dieser Frage erwähnt: MySQL server not returning correct output, aber das Problem wurde nicht in dieser bestimmten Frage gelöst, auch wenn das Problem ein bisschen geändert wurde.
Re: MySQL Server nicht korrekte Ausgabe

<?php 
require 'dbconnect.php'; //connection to db is success 

$search = "SELECT Table_list FROM booktable WHERE status='booked'"; 
$table_query = mysqli_query($dbconnect,$search); 
$row_check = mysqli_num_rows($table_query); 

if($row_check>=1){ 
    $tables = array(); 
    while($row=mysqli_fetch_assoc($table_query)){ 
     $output = $row['Table_list'].'<br>'; 
     echo $tables[] = $output; //returns o/p: Table1, Table2, Table3 
     } 
    if(array_key_exists('Table1',$tables)){ //trying to check if 'Table1' is in the array 
     echo 'Table not available'; //if 'Table1' exists should echo this line 
    }else{ 
     echo'Table available'; 
    } 
} 
?> 

Tabelle in meiner db erstellt ist hier: Table

Von while loop 3 Ausgänge erzeugt werden und über array Methode & Table1 hat mit den Ausgängen verglichen werden. Wenn Table1 in der array gefunden wird, sollte es echo Table not available aber Echo ist Table available.
Warum funktioniert die array nicht?

+1

Bitte drucken Sie das Array $ Tabellen und teilen ... –

+0

Tabelle ist 'Tabelle verknüpft 'tag. Ich kann keine Bilder drucken, eine Wiedergabe von 10 ist erforderlich. – user6485550

+0

'$ tables []' erstellt einen Index für Sie, versuchen Sie '$ tables [$ table_id] = $ output' dann' array_key_exists' in diesem Kontext sollte für Sie arbeiten, natürlich anpassen $ table_id als erforderlich – zanderwar

Antwort

2

array_key_exists() gibt TRUE zurück, wenn der angegebene Schlüssel im Array gesetzt ist. Schlüssel kann ein beliebiger Wert für einen Array-Index sein. Ich glaube nicht, dass Sie in der Array-Schlüssel vorhanden sind, überprüft, so dass die array_key_exists hier nicht verwenden, verwendet werden können in_array() statt array_key_exists

$array = array("table1","table2","tabl3"); 
if(in_array('table2',$array)){ 
    echo "Table not available"; 
} else { 
echo "Table available";  
} 
+0

Ihre Methode ist 'statische Methode', aber ich möchte' dynamische Methode' erstellen, um den 'Status' der Tabelle zu überprüfen. In meiner obigen Liste sollten '$ tables' 3 Ausgaben speichern, die durch' while loop' erzeugt werden und die Zeichenfolge 'Table' sollte zwischen den 3 Ausgaben verglichen werden. Wie kann ich das dynamisch machen? – user6485550

+0

Ich überprüfe nicht Ihren ganzen Code, Sie können sehen, dass, wenn das Array nicht leer ist, es ausgegeben wird, wie Sie wünschen. –

+0

Sie müssen einige Änderungen nur in der array_key_exist() Teil vornehmen Ich denke, es funktioniert perfekt sonst –