2015-05-29 8 views
5

Ich versuche, drei Spalten aus der MySql-Datenbank zu holen. Ich kann den Inhalt holen, aber das ist nicht das, was ich brauche. Ich brauche nur den Inhalt als Zeichenfolgenarray, damit ich sie verwenden kann, um Listenansicht in meinem Java-Code zu füllen.So holen Sie nur den Inhalt der Datenbank mit PHP-Skript

Die aktuelle Antwort von meinem Skript ist:

{ ["UID"]=> string(1) "1" ["UserName"]=> string(7) "[email protected]" ["Subject"]=> string(15) "My Android Post"}object(stdClass)#4 (3) { ["UID"]=> string(1) "2" ["UserName"]=> string(7) "[email protected]" ["Subject"]=> string(15) "My Android Post"} 

ich etwas, was Sie brauchen, wie, wie unten in einem String-Array oder einer Liste angezeigt:

1 [email protected] My Android Post 
2 [email protected] My Android Post 

Wie kann ich nur den Wert bekommen gespeichert in der Spalte in PHP. Ich bin neu in PHP-Skripten, also bitte helfen Sie mir bei der Lösung dieses Problems.

Mein aktueller PHP-Skript ist wie folgt:

<?php 
$servername = "localhost"; 
$username = "root"; 
$password = ""; 
$dbname = "iFocusBlogs"; 



$obtainedUserName = 1;   

// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

$sql="SELECT UID, UserName, Subject FROM AndroidTable WHERE Status ='" .$obtainedUserName. "'"; 
$result=mysqli_query($conn,$sql); 

while($obj = $result->fetch_object()){ 
var_dump($obj); 

} 

$conn->close(); 
?> 

Bitte lassen Sie mich wissen, welche Änderung brauche ich im Skript machen nur den Inhalt der Spalten zu erhalten. Alle Vorschläge sind willkommen. Danke im Voraus.

Antwort

2

Sie auch mysqli_fetch_row()

/* fetch associative array */ 
    while ($row = mysqli_fetch_row($result)) { 
     printf ("%s (%s)\n", $row[0], $row[1]).PHP_EOL; 
    } 

Versuchen Sie, diese Aktualisiert

$query="SELECT UID, UserName, Subject FROM AndroidTable WHERE Status ='" .$obtainedUserName. "'"; 

if ($result = $conn->query($query)) { 

    /* fetch associative array */ 
    while ($row = $result->fetch_assoc()) { 
     printf ("%s (%s)\n", $row["UID"], $row["UserName"],$row["Subject"]); 
    } 
} 
+0

Lot näher Ich habe die folgende Antwort: 1 (abc @ 123) 2 (abc @ 123), bekomme ich den Wert der Spalten wiederholt werden, und seine Anzeigewerte von nur einer Zeile. Kann das gelöst werden? – Keshav1234

+0

Sehr viel Zeit bekomme ich diese Antwort: 1 (abc @ 123) (Mein Android-Beitrag) 2 (abc @ 123) (Mein Android-Beitrag), \ n funktioniert nicht, kann ich warum wissen? – Keshav1234

+0

zum Abrufen von Daten der thired Zeile verwenden 'printf ("% s (% s) \ n ", $ Zeile [0], $ Zeile [1], $ Zeile [2]);' – Saty

2

Verwenden Sie fetch_array anstelle von fetch_object. Sie benötigen möglicherweise einige zusätzliche Änderungen, um das Array genau zu erhalten, wie Sie wollen, aber zumindest ist es viel näher.

Wenn Sie MYSQL_NUM als zweiten Parameter angeben, erhalten Sie ein Array ohne Schlüssel und nur numerische Indizes. Diese Anordnung ist sauber genug, um weiter zu verarbeiten.

Sie ausgeben kann das Array eine for-Schleife ...

foreach($array as $item) { 
    echo $item . '<br>'; 
} 

oder verwenden implode() ...

echo implode($array); 

oder json_encode() verwenden ...

echo json_encode($array); 

Es Alles hängt davon ab, wie genau Sie Ihr Array anzeigen möchten. Die Funktionen print_r und var_dump sind nützlich, um den Inhalt von Arrays und anderen Variablen zu überprüfen, aber es ist unwahrscheinlich, dass sie diesen Inhalt in einem Format ausgeben, das von externen Programmen verwendet werden kann.

+0

Trol I die folgende Reaktion bekam nach I verwendet fetch_array: Der Wert der Antwort-Array (6) {[0 ] => string (1) "1" ["UID"] => string (1) "1" [1] => string (7) "abc @ 123" ["Benutzername"] => string (7) " abc @ 123 "[2] => string (15)" Mein Android Beitrag "[" Betreff "] => string (15)" Mein Android Beitrag "} array (6) {[0] => string (1)" 2 "[" UID "] => Zeichenkette (1)" 2 "[1] => Zeichenkette (7)" abc @ 123 "[" UserName "] => Zeichenkette (7) "abc @ 123" [2] => string (15) "Mein Android Beitrag" ["Betreff"] => string (15) "Mein Android Beitrag"} Kann ich den String (1) Teile und [ " " ] Teile? – Keshav1234

+0

Der '[string (1)]' - Teil wird erhalten, wenn Sie 'var_dump' verwenden. Sie können 'print_r' verwenden, um einen saubereren Ausdruck zu erhalten, oder Sie können einfach das Array durchlaufen und es beliebig ausgeben. Ich habe ein paar zusätzliche Informationen zu der Antwort hinzugefügt .. Wie auch immer, Sie müssen wahrscheinlich * einige * selbst codieren, es sei denn, Sie können eine Funktion finden, die es genau so ausgibt, wie Sie es brauchen. – GolezTrol

2

Sie können auf Objekt '->' Symbol

$tCont=""; 
while($obj = $result->fetch_object()){ 
//var_dump($obj); 
$tCont.='<tr><td>'.$obj->UID.'</td><td>'.$obj->UserName.'</td><td>'.$obj->Subject.'</td></tr>'; 

} 
echo $tCont; 
+0

erhielt folgende Antwort: Der Wert der Antwort ist abc @ 123 Meine Android Beitrag Its me den Wert der zweiten Reihe und nicht beide erste Reihe und eine zweite Reihe gibt. Gibt es eine Möglichkeit, tr und td Tags zu entfernen? – Keshav1234

+0

können Sie tr td entfernen, wenn Sie nicht wollen –

+0

ok. Will versuchen und lassen Sie es wissen – Keshav1234

1

Änderung Ihrer select-Anweisung verwenden können, verketten wahrscheinlich die Spalten :

$sql="SELECT CONCAT (UID,' ' , UserName,' ', Subject) AS myresult FROM AndroidTable WHERE Status =" . $obtainedUserName ; 

$result = $conn->query($sql); 

Verwendung FETCH_ASSOC und drucken jede Zeile:

while($row = $result->fetch_assoc()){ 

echo $row['myresult']; 

} 
+0

@ Keshav1234 ist es für Sie arbeiten? –

+0

habe diesen Fehler: mysqli_fetch_assoc() erwartet, dass Parameter 1 mysqli_result ist, null in – Keshav1234

+0

@ Keshav1234 Ich habe den Code editiert, versuche es jetzt –

Verwandte Themen