PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   MySQLi/PDO/(MySQL) (http://www.selfphp.de/forum/forumdisplay.php?f=22)
-   -   Abfrage Fehler (http://www.selfphp.de/forum/showthread.php?t=25974)

cabanni 13.01.2017 11:39:17

Abfrage Fehler
 
Hallo ich finde den Fehler nicht.

Ich versuche von einem Smartphone Daten aus einer Mysql Datenbank auszulesen. Dazu hatte ich 2 Datensätze über phpmyadmin befüllt. Diese Datensätze werden bei der select Anfrage auch zurück geliefert. Mittlerweile kann ich Datensätze über das Smartphone in der Datenbank eintragen. Diese durch das Smartphone eingetragenen Datensätze sorgen allerdings dafür das ich keine Daten mehr zurück geliiefert bekomme. Ich finde nicht den Fehler noch den Unterschied die Datensätze sind von ihrer Struktur identeisch.

Das Problem ist also manuell eingetragene Datensätze werden korrekt zurück geliefert, sogar im Smartphone angezeigt. Durch das Smartphone eingetragene Datensätze in der Datenbank sorgen für ein Null-Ergebnis bei der Abfrrage.

PHP-Code:

mysqlshow fields from pintext;
+-----------------------+-------------+------+-----+-------------------+----------------+
Field                 Type        Null Key | Default           | Extra          |
+-----------------------+-------------+------+-----+-------------------+----------------+
idpintext             int(11)     | NO   PRI NULL              auto_increment |
ueberschrift          varchar(50) | YES  |     | NULL              |                |
text                  longtext    NO   |     | NULL              |                |
erstellt              timestamp   YES  |     | CURRENT_TIMESTAMP |                |
email                 varchar(60) | YES  |     | NULL              |                |
telefon               varchar(45) | YES  |     | NULL              |                |
user_iduser           int(11)     | NO   MUL NULL              |                |
kategorie_idkategorie int(11)     | NO   MUL NULL              |                |
ort_idort             int(11)     | NO   MUL NULL              |                | 

PHP-Code:

mysqlshow fields from user;
+-----------------+--------------+------+-----+---------+----------------+
Field           Type         Null Key | Default | Extra          |
+-----------------+--------------+------+-----+---------+----------------+
iduser          int(11)      | NO   PRI NULL    auto_increment |
name            varchar(100) | NO   |     | NULL    |                |
gmail           varchar(60)  | YES  |     | NULL    |                |
points_idpoints int(11)      | NO   MUL NULL    |                |
+-----------------+--------------+------+-----+---------+----------------+ 

PHP-Code:

[mysqlshow fields from points;
+----------+-----------+------+-----+-------------------+----------------+
Field    Type      Null Key | Default           | Extra          |
+----------+-----------+------+-----+-------------------+----------------+
idpoints int(11)   | NO   PRI NULL              auto_increment |
punkte   int(6)    | YES  |     | 50                |                |
date     timestamp YES  |     | CURRENT_TIMESTAMP |                |
+----------+-----------+------+-----+-------------------+----------------+
3 rows in set (0.00 sec

Folgendes Php Script nimmt die Postvariablen in Empfang und stellt die Datenbank abfrage:

PHP-Code:

$kategorie $_POST ['kategorie'];
$ort $_POST ['ort'];
$sprintfQuery "select pintext.ueberschrift, pintext.text, pintext.erstellt, user.name, user.gmail, points.punkte
 from pintext, user, points where pintext.ort_idort=(
 select ort.idort from ort where name='%s')
 and user.iduser=pintext.user_iduser and pintext.kategorie_idkategorie = (select idkategorie from
 kategorie where name='%s') and user.points_idpoints =points.idpoints;"
;
$query sprintf $sprintfQuery$ort$kategorie );

$result mysqli_query $db$query );
$response = array ();
if (
$result->num_rows 1) {
    
$response = array (
            
'fehler' => mysqli_error $db 
    );
} else {
    
    while ( 
$row mysqli_fetch_array $result ) ) {
        
array_push $response, array (
                
'ueberschrift' => $row [0],
                
'text' => $row [1],
                
'date' => $row [2],
                
'userName' => $row [3],
                
'userMail' => $row [4],
                
'userPunkte' => $row [5
        ) );
    }
}
mysqli_close $db );

echo 
json_encode ( array (
        
'json_response' => $response 
) ); 


Befülle ich die beiden Post variablen "kategorie" und "ort" manuell und stelle die Abrage ohne sprintf Funktion in PHPMYADMIN bekomme ich ein korrektes Ergebnis zurück geliefert.

PHP-Code:

select pintext.ueberschriftpintext.textpintext.erstelltuser.nameuser.gmailpoints.punkte from pintextuserpoints where pintext.ort_idort=( select ort.idort from ort where name='Brackel') and user.iduser=pintext.user_iduser and pintext.kategorie_idkategorie = (select idkategorie from kategorie where name='Zu Verkaufen') and user.points_idpoints =points.idpoints 

liefert über die Konsole folgendes Ergebnis völlig korrekt zurück, das dritte Ergebnis (Daten über das Smartphone eingegeben) hat den kleinsten Text bitte nicht übersehen.:

PHP-Code:

+--------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+--------------------+--------------------+--------+
ueberschrift text                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              erstellt            name               gmail              punkte |
+--------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+--------------------+--------------------+--------+
ueberschrift Lorem ipsum dolor sit ametconsetetur sadipscing elitrsed diam nonumy eirmod 

 aliquyam erat
sed diam voluptuaAt vero eos et accusam et justo duo dolores et ea rebum
 
Stet clita kasd gubergrenno sea takimata sanctus est Lorem ipsum dolor sit amet. | 2017-01-02 11:52:16 cabanni            rabebi@gmail.com   |    500 |
ueberschrift Lorem ipsum dolor sit ametconsetetur sadipscing elitrsed diam nonumy eirmod 
 tempor invidunt ut labore et dolore magna aliquyam erat
sed diam voluptua
 
 
aliquyam eratsed diam voluptuaAt vero eos et accusam et justo duo dolores et ea rebum
 
Stet clita kasd gubergrenno sea takimata sanctus est Lorem ipsum dolor sit amet. | 2017-01-02 11:52:34 cabanni            rabebi@gmail.com   |    500 |
| &
#65533;berschrift  | Test test eeste edesdsasddl�kjal�kasfdjippiqwerjkBeschreibung                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | 2017-01-13 04:39:36 | Cabanni SuperSkunk | rabebibi@gmail.com |     50 |
+--------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+--------------------+--------------------+--------+
3 rows in set (0.00 sec

Wenn ich über das Smartphone nun aber die Anfrage an das Php file sende liefert mir mysql kein Ergebnis zurück in dem Fall hänge ich dann hier zwar wird kein mysql Fehler angezeigt aber die Rückgabe in der debugging ausgabe ist das leere $response Array 01-13 10:45:59.236 10093-10093/xyz.lokalpatriot.cabanni.lokalpatriot_brackel D/Json*String: {"json_response":{"fehler":""}}:

PHP-Code:

if ($result->num_rows 1) {
    
$response = array (
            
'fehler' => mysqli_error $db 
    ); 

Wenn ich den vom Smartphone eingetragnen Datensatz in der Mysql-Datenbank lösche, bekomme ich auch wieder eine ganz normale korrekte Ausgabe.. Aber wieso????

Ich steige nicht dahinter..

Jetzt wo ich den thread erstellt habe fällt mir die Farbe bei dem Smartphone-Datensatz auf, offenbar ein UTF-8 Fehler?

cabanni 13.01.2017 12:05:19

AW: Abfrage Fehler
 
Ja Problem gelöst mit einem simplen :

PHP-Code:

mysqli_query($db"SET NAMES 'utf8'"); 

in der Abfrage.

Boah ey ...


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:55:47 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.