Klaus: Es werden keine Daten ausgelesen

Guten Abend,

ich habe ein Problem und ich komme einfach nicht weiter, mein PHP Script sieht derzeit so aus:

  
$user_ser = mysql_real_escape_string($_POST["search_wo"]);  
$user_inserate_suche = "Select * from inserate_biete  WHERE ib_ort  = '$user_ser'";  
$result_inserate_suche = mysql_query($user_inserate_suche) OR die("Error: $user_inserate_suche <br>".mysql_error());;  
$sql_u_i = mysql_num_rows($result_user_inserate_suche);  

meine Schleife dann so:

  
<?php  
while($out_ui = mysql_fetch_array($result_user_inserate_suche)):  
?>  

Hier dann die Ausgabe!

  
<?php  
endwhile;  
?>  

leider sehe ich keine Daten, wenn ich mein SQL ausgeben lasse sprich so:

  
echo $user_inserate_suche;  

bekomme ich folgende Ausgabe:

  
SELECT * FROM `inserate_biete` WHERE `ib_ort` = 'Bonn'  

wenn ich dieses in meinen PHPMyAdmin unter SQL eintrage dann kommt genau ein Ergebnis wie es auch sein soll, auf meiner WebSeite leider nichts.

Bevor einer sagt das ist ein Doppelposting, richtig, ich habe hier http://phpforum.de/forum/showthread.php?t=276441 auch schon gefragt, aber auch hier kommen wir leider nicht weiter. Die Datenbank stimmt, denn ich rufe auch andere Daten noch ab wie z.B. den User usw.. ich arbeite allein an dieser Seite, so kann kein anderer mit etwas ändern.

  1. Hi,

    Guten Abend,

    ich habe ein Problem und ich komme einfach nicht weiter, mein PHP Script sieht derzeit so aus:

    $user_ser = mysql_real_escape_string($_POST["search_wo"]);
    $user_inserate_suche = "Select * from inserate_biete  WHERE ib_ort  = '$user_ser'";
    $result_inserate_suche = mysql_query($user_inserate_suche) OR die("Error: $user_inserate_suche <br>".mysql_error());;
    $sql_u_i = mysql_num_rows($result_user_inserate_suche);

      
    Was steht jetzt in $sql\_u\_i?  
      
    
    > meine Schleife dann so:  
    > ~~~php
      
    
    > <?php  
    > while($out_ui = mysql_fetch_array($result_user_inserate_suche)):  
    > ?>  
    > 
    
    

    Wird in die Schleife reingesprungen? Sprich: wenn Du hier ein echo machst a la
    echo "in der Schleife";

    kommt dann eine Ausgabe?

    Hier dann die Ausgabe!

    Ach, den entscheidenden Teil des Codes läßt Du weg. Sollen wir jetzt raten, wie Dein Ausgabe-Code ist und was Du dabei falsch gemacht hast?

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
    1. Hallo,

      Was steht jetzt in $sql_u_i?

      wenn ich echo $sql_u_i; ausgeben lasse, steht da nichts drin, sprich ich sehe nichts auf der Seite.

      Wird in die Schleife reingesprungen? Sprich: wenn Du hier ein echo machst a la
      echo "in der Schleife";

      nein eben nicht, ich habe ein Datensatz in der Datenbank stehen, diesen sehe ich auch wenn ich den SQL im PHPmyAdmin ausführe, auf der WebSeite sehe ich leider nichts. In der schleife habe ich ein X aber das wird nicht angezeigt.

      Ach, den entscheidenden Teil des Codes läßt Du weg. Sollen wir jetzt raten, wie Dein Ausgabe-Code ist und was Du dabei falsch gemacht hast?

      der sieht wie folgt aus:

      <?php
      while($out_ui = mysql_fetch_array($result_user_inserate_suche)):
      ?>
      X
      <?php
      endwhile;
      ?>

      wenn er in die Schleife gehen würde, dann müsste ich ja das X sehen, das ist aber leider nicht der Fall.

  2. Hallo,

    ich habe ein Problem und ich komme einfach nicht weiter, mein PHP Script sieht derzeit so aus:

    $user_ser = mysql_real_escape_string($_POST["search_wo"]);

    $user_inserate_suche = "Select * from inserate_biete  WHERE ib_ort  = '$user_ser'";
    $result_inserate_suche = mysql_query($user_inserate_suche) OR die("Error: $user_inserate_suche <br>".mysql_error());;
    $sql_u_i = mysql_num_rows($result_user_inserate_suche);

      
    und die nötigen "Vorarbeiten", also Verbindung zu mySQL öffnen, DB auswählen und so?  
      
    
    > meine Schleife dann so:  
    >   
    > ~~~php
    
    <?php  
    
    > while($out_ui = mysql_fetch_array($result_user_inserate_suche)):  
    > ?>
    
    

    leider sehe ich keine Daten, ...

    Sondern? Gut, die() ist zwar nicht unbedingt eine Fehlerbehandlung, aber so ist zumindest schon mal sichergestellt, dass $result_user_inserate_suche ein gültiges mySQL-Ressourcenhandle ist, und nicht einfach FALSE. Welchen Wert hat $sql_u_i nach dem oberen Teil?

    Wie sieht denn die Ausgabe der Daten aus, die du hier verschweigst? Steckt da vielleicht der Hase im Pfeffer?

    wenn ich mein SQL ausgeben lasse sprich so:

    echo $user_inserate_suche;

    bekomme ich folgende Ausgabe:

    SELECT * FROM inserate_bieteWHEREib_ort = 'Bonn'

    Ja, das sieht vernünftig aus.

    wenn ich dieses in meinen PHPMyAdmin unter SQL eintrage dann kommt genau ein Ergebnis wie es auch sein soll, auf meiner WebSeite leider nichts.

    Dann ist vielleicht tatsächlich die Ausgabe an sich das Problem. Wie oft wird denn die while-Schleife durchlaufen? Passt das wenigstens mit der Zahl der Datensätze zusammen, die du abgefragt hast?

    So long,
     Martin

    --
    Der Mensch denkt, Gott lenkt.
    Der Mensch dachte, Gott lachte.
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    1. Hallo,

      und die nötigen "Vorarbeiten", also Verbindung zu mySQL öffnen, DB auswählen und so?

      die wird in der index.php eingebunden, an dem kann es nicht liegen, denn andere Abfragen gehen.

      Welchen Wert hat $sql_u_i nach dem oberen Teil?

      in $sql_u_i steht leider nichts drin, zumindest sehe ich nichts, wenn ich echo $sql_u_i schreibe.

      Wie sieht denn die Ausgabe der Daten aus, die du hier verschweigst? Steckt da vielleicht der Hase im Pfeffer?

      die sieht so aus:

        
      <?php  
      while($out_ui = mysql_fetch_array($result_inserate_suche)):  
      ?>  
      xxx  
      <?php  
      endwhile;  
      ?>  
      
      

      Dann ist vielleicht tatsächlich die Ausgabe an sich das Problem. Wie oft wird denn die while-Schleife durchlaufen? Passt das wenigstens mit der Zahl der Datensätze zusammen, die du abgefragt hast?

      es wird laut PHPMyAdmin einen Datensatz gefunden und das passt auch.

  3. Tach!

    $result_inserate_suche = mysql_query($user_inserate_suche) OR die("Error: $user_inserate_suche <br>".mysql_error());;
    while($out_ui = mysql_fetch_array($result_user_inserate_suche)):

    Wenn das wirklich dein Code ist und nicht nur ein Übertragungsfehler, würdest du von PHP selbst auf die nicht vorhandene Variable $result_user_inserate_suche der zweiten Zeile hingewiesen werden, wenn das error_reporting auf E_ALL und display_errors auf on stünde.

    dedlfix.

    1. Hallo,

      Wenn das wirklich dein Code ist und nicht nur ein Übertragungsfehler, würdest du von PHP selbst auf die nicht vorhandene Variable $result_user_inserate_suche der zweiten Zeile hingewiesen werden, wenn das error_reporting auf E_ALL und display_errors auf on stünde.

      Mein Code sieht nun so aus:

        
      error_reporting(E_ALL); ini_set("display_errors", 1);  
      $user_ser = mysql_real_escape_string($_POST["search_wo"]);  
      $user_inserate_suche = "Select * from inserate_biete  WHERE ib_ort  = '$user_ser'";  
      $result_inserate_suche = mysql_query($user_inserate_suche) OR die("Error: $user_inserate_suche <br>".mysql_error());;  
      $sql_u_i = mysql_num_rows($result_inserate_suche);  
      echo $user_inserate_suche;  
      echo $sql_u_i;  
      
      

      Fehler wird keine ausgegeben!

      Meine Schleife sieht so aus:

        
      <?php  
      while($out_ui = mysql_fetch_array($result_inserate_suche)):  
      ?>  
      xxx  
      <?php  
      endwhile;  
      ?>  
      
      
      1. Tach!

        Fehler wird keine ausgegeben!

        Dann kommt nun das Debugging an die Reihe. Prüfe mit var_dump() was konkret in den Variablen steht, besonders auch die Ergebnisse der mysql-Funktionen. Vergleiche auch mit dem PHP-Handbuch, was im Fehlerfall und was im Gut-Fall drinstehen muss.

        dedlfix.

        1. Hallo,

          Dann kommt nun das Debugging an die Reihe. Prüfe mit var_dump() was konkret in den Variablen steht, besonders auch die Ergebnisse der mysql-Funktionen. Vergleiche auch mit dem PHP-Handbuch, was im Fehlerfall und was im Gut-Fall drinstehen muss.

          Wenn ich var_dump($result_inserate_suche); ausgebe, dann erhalte ich folgende Medlung:

          resource(11) of type (mysql result)

          1. Tach!

            Wenn ich var_dump($result_inserate_suche); ausgebe, dann erhalte ich folgende Medlung:
            resource(11) of type (mysql result)

            Soweit so gut. Das ist ein Gut-Fall-Ergebnis. Dann weiter, was liefert die Zählung und was das Fetchen?

            dedlfix.

            1. Hallo,

              Soweit so gut. Das ist ein Gut-Fall-Ergebnis. Dann weiter, was liefert die Zählung und was das Fetchen?

              wenn ich var_dump($result_inserate_suche) ausgeben, dann kommt
              resource(11) of type (mysql result)

              wenn ich var_dump($sql_u_i); ausgebe, kommt
              int(0)

      2. $user_ser = mysql_real_escape_string($_POST["search_wo"]);
        $user_inserate_suche = "Select * from inserate_biete  WHERE ib_ort  = '$user_ser'";

        
        >   
        > Fehler wird keine ausgegeben!  
          
        Dann gib doch mal $user\_inserate\_suche aus.  
          
        ~~~php
          
        print "<pre>#$user_inserate#</pre>"  
        
        

        Und schau Dir das vor allem im Quelltext an. Die Interpretation als HTML könnte Überraschungen (ver-)bergen.

        Jörg Reinholz

  4. Hallo,

    wenn ich foglendes weg lasse, dann funktioniert es:

    WHERE ib_ort  = '$user_ser'

    aber ohne diesem WHERE bringt mein Code nichts.

    Gruß

    Klaus

    1. Tach!

      wenn ich foglendes weg lasse, dann funktioniert es:
      WHERE ib_ort  = '$user_ser'

      Dann ist schlicht und einfach die Bedingung nicht erfüllt. Wenn der hingegen PMA was findet dann stimmen die Abfragen nicht überein.

      dedlfix.

      1. Hallo,

        Dann ist schlicht und einfach die Bedingung nicht erfüllt. Wenn der hingegen PMA was findet dann stimmen die Abfragen nicht überein.

        Das bekomme ich, wenn ich xx mir ausgeben lasse:
        Select * from inserate_biete WHERE ib_ort = 'Bonn'

        wenn ich das jetzt nehme, in meinen PHPMyAdmin gehe und das bei SQL einfüge, bekomme ich

        SELECT *  
        FROM `inserate_biete`  
        WHERE `ib_ort` = 'Bonn'  
        LIMIT 0 , 30
        

        Zeige Datensätze 0 - 0 ( 1 insgesamt, Die Abfrage dauerte 0.0015 Sekunden)

        und der besagte Datensatz wird mir unter angezeigt.

        1. Tach!

          Dann ist schlicht und einfach die Bedingung nicht erfüllt. Wenn der hingegen PMA was findet dann stimmen die Abfragen nicht überein.
          [Abfrage sieht gleich aus, Ergebnis bleibt unterschiedlich]

          Hmm, dann so scheint mir, fragst du unterschiedliche Datenquellen (sprich: Datenbanken oder Server) ab.

          dedlfix.

          1. Hallo,

            Hmm, dann so scheint mir, fragst du unterschiedliche Datenquellen (sprich: Datenbanken oder Server) ab.

            hmm ich bin jetzt ein Schritt weiter, wenn Umlaute vor kommen wie z.B. Köln dann ist es vorbei, dann sehe ich nichts mehr.

            1. Tach!

              Hmm, dann so scheint mir, fragst du unterschiedliche Datenquellen (sprich: Datenbanken oder Server) ab.
              hmm ich bin jetzt ein Schritt weiter, wenn Umlaute vor kommen wie z.B. Köln dann ist es vorbei, dann sehe ich nichts mehr.

              Dann sind also doch die Abfragen unterschiedlich - jedenfalls aus Sicht MySQLs. Siehe https://forum.selfhtml.org/?t=214364&m=1466394.

              dedlfix.

              1. Hallo,

                Dann sind also doch die Abfragen unterschiedlich - jedenfalls aus Sicht MySQLs. Siehe https://forum.selfhtml.org/?t=214364&m=1466394.

                danke, ich habe es jetzt so gemacht:

                $status = @mysql_connect($mysql_host, $mysql_user, $mysql_password);
                mysql_set_charset('utf8', $status); // diese Zeile für PHP ab Version 5.2.3

                und Köln wird auch erkannt.

            2. Hi,

              hmm ich bin jetzt ein Schritt weiter, wenn Umlaute vor kommen wie z.B. Köln dann ist es vorbei, dann sehe ich nichts mehr.

              dann hast du mit an Sicherheit grenzender Wahrscheinlichkeit ein Problem mit der Zeichencodierung.

              Ciao,
               Martin

              --
              Lieber eine Stumme im Bett, als eine Taube auf dem Dach.
              Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
      1. Hallo,

        /?t=214364&m=1466382

        hab ich gemacht:

          
        error_reporting(E_ALL); ini_set("display_errors", 1);  
        $user_ser = mysql_real_escape_string($_POST["search_wo"]);  
        $user_inserate_suche = "Select * from inserate_biete  WHERE ib_ort  = '$user_ser'";  
        $result_inserate_suche = mysql_query($user_inserate_suche) OR die("Error: $user_inserate_suche <br>".mysql_error());;  
        $sql_u_i = mysql_num_rows($result_inserate_suche);  
        print "<pre>$user_inserate_suche</pre>";  
        
        

        ich sehe aber nichts, nichts auf der Seite und nichts im Code

  5. Hallo,

    ich habe jetzt ein Test mit Bo gemacht und siehe da, es geht! Es geht:

      
    array(34) { [0]=> string(1) "1" ["ib_id"]=> string(1) "1" [1]=> string(8) "85457845" ["loc_ID_ex"]=> string(8) "85457845" [2]=> string(1) "2" ["ib_type"]=> string(1) "2" [3]=> string(13) "4feb48c7e5b76" ["ib_user_ID"]=> string(13) "4feb48c7e5b76" [4]=> string(26) "Das ist eine Test-Location" ["ib_titel"]=> string(26) "Das ist eine Test-Location" [5]=> string(1194) "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.  
    
    

    wenn ich jetzt aber Bonn oder Köln oder auch Leverkusen eingebe, dann geht nichts. Wie kann das sein? Gibts beim Übertragen probleme mit Umlauten?

    1. Hi,

      ich habe jetzt ein Test mit Bo gemacht und siehe da, es geht! Es geht:

      array(34) { [0]=> string(1) "1" ["ib_id"]=> string(1) "1" [1]=> string(8) "85457845" ["loc_ID_ex"]=> string(8) "85457845" [2]=> string(1) "2" ["ib_type"]=> string(1) "2" [3]=> string(13) "4feb48c7e5b76" ["ib_user_ID"]=> string(13) "4feb48c7e5b76" [4]=> string(26) "Das ist eine Test-Location" ["ib_titel"]=> string(26) "Das ist eine Test-Location" [5]=> string(1194) "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.

        
      
      > WHERE `ib\_ort` = 'Bonn'  
        
      in dem Array (wie ist das erzeugt worden?) gibt's kein ib\_ort. Gibt es die Spalte überhaupt in der Datenbank?  
        
      cu,  
      Andreas
      
      -- 
      [Warum nennt sich Andreas hier MudGuard?](http://MudGuard.de/)  
      [O o ostern ...](http://ostereier.andreas-waechter.de/)  
        
      Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.  
      
      
      1. Hallo,

        in dem Array (wie ist das erzeugt worden?) gibt's kein ib_ort. Gibt es die Spalte überhaupt in der Datenbank?

        ich wollte hier nicht allein rein kopieren, denn es sind 32 Spalten mit Texten usw. in der Tabelle gibts aber eine Spalte mit "ib_ort"

        Wenn ich aus Bonn Köln mache

          
        UPDATE `db232_schlafen`.`inserate_biete` SET `ib_ort` = 'Köln' WHERE `inserate_biete`.`ib_id` =1;  
        
        

        dann gehts wieder nicht, kommt keine Ausgabe.

    2. Tach!

      wenn ich jetzt aber Bonn oder Köln oder auch Leverkusen eingebe, dann geht nichts. Wie kann das sein? Gibts beim Übertragen probleme mit Umlauten?

      Bonn und Leverkusen hat keine Umlaute. Aber ja, wenn du MySQL nicht sagst, welche Zeichenkodierung du auf der Verbindung sprechen möchtest, dann kann es eine Differenz zu dessen Default-Einstellung geben. Beachte: http://wiki.selfhtml.org/wiki/Themen:Zeichencodierung/MySQL

      dedlfix.