Ankündigung

Einklappen
Keine Ankündigung bisher.

Suchen und Json struktur erstellen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Suchen und Json struktur erstellen

    Hallo ich habe eine suchfunktion geschrieben die mögliche trefer live ausgiebt...

    Code:
    <html>
    <head>
    	<script type="text/javascript">
    		function searchFor(suchbegriff){
    			var xmlHttp = null;
    			// Mozilla, Opera, Safari sowie Internet Explorer 7
    			if (typeof XMLHttpRequest != 'undefined') {
    				xmlHttp = new XMLHttpRequest();
    			}
    			if (!xmlHttp) {
    				// Internet Explorer 6 und älter
    				try {
    					xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
    				} catch(e) {
    					try {
    						xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");
    					} catch(e) {
    						xmlHttp  = null;
    					}
    				}
    			}
    			// Wenn das Objekt erfolgreich erzeugt wurde			
    			if (xmlHttp) {
    				var url = "suche.php";
    				var params = "suchbegriff="+suchbegriff;
    				
    				xmlHttp.open("POST", url, true);
    				
    				//Headerinformationen für den POST Request
    				xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    				xmlHttp.setRequestHeader("Content-length", params.length);
    				xmlHttp.setRequestHeader("Connection", "close");					
    			
    				xmlHttp.onreadystatechange = function () {
    					if (xmlHttp.readyState == 4) {
    						// Zurückgeliefertes Ergebnis wird in den DIV "ergebnis" geschrieben
    						document.getElementById("ergebnis").innerHTML = xmlHttp.responseText;
    						
    					}
    				};				
    				xmlHttp.send(params);
    			}			
    		}
    	</script>
    </head>
    <body>
    	<input type="text" onkeyup="searchFor(this.value);"/>
    	<br>
    	<br><div id="ergebnis"></div>
    </body>
    </html>
    dieser Code ist im Index.php Dokument.

    folgender Code ist im Suchen dokument
    PHP-Code:
    $server "localhost";
        
    $benutzername "root";
        
    $passwort "";   
        
        
    $datenbank "shopping";

        
    // Server Verbindung herstellen
        
    mysql_connect($server,$benutzername,$passwort) or 
        die (
    "Keine Verbindung moeglich");
        
        
    // Datenbank Verbidung
        
    mysql_select_db($datenbank) or
        die (
    "Die Datenbank existiert nicht");

        
    $tabelle "angebote3";
        
        if (
    $_POST["suchbegriff"]){
            
    // Mysql Abfrage wird gespeichert mit den Notwendigen Parameter
            
    $sql "SELECT * FROM ".$tabelle." WHERE productName LIKE ('%".mysql_real_escape_string(utf8_decode($_POST["suchbegriff"]))."%')";
            
            
    // Mysql Abfrage wird durchgeführt
            
    $result mysql_query($sql);
            
            
    // Suchbegriff wird ausgegeben
            
    echo "Sie Suchten nach: ".$_POST["suchbegriff"]."<br/><br/>";
            
            
    // Ergebnis wird ausgegeben mit Zeilenumbruch
            
    while($row mysql_fetch_object($result)){
                echo 
    utf8_encode($row->productName);
             
                echo 
    "<br/>";       


            }
    ?> 
    Nun möchte ich, dass passend zu den suchausgaben eine Json struktur erstellt wir...
    ich dachte das könnte so gehen doch leider ging es nicht
    PHP-Code:

                $query 
    "SELECT * FROM angebote3 WHERE productName LIKE".$result." ORDER BY id ASC";
                
    $mysqlQuery mysql_query($query);

                
    $result1 = array();
                while(
    $row mysql_fetch_assoc($mysqlQuery)) {
                    
    $rowResult = array();
                    
    //Wenn der Angobtespreis gleich dem Normalpreis ist, keine Anzeige
                    
    if($row['whitePrice'] == $row['redPrice']) {
                        
    $rowResult['redPrice'] = $row['redPrice'] ."&euro;";
                        
    $rowResult['whitePrice'] = '';
                        
    $rowResult['percent'] = '';
                    } else {
                        
    $rowResult['redPrice'] = $row['redPrice'] ."&euro;";
                        
    $rowResult['whitePrice'] = $row['whitePrice'] ."&euro;";
                        
    $rowResult['percent'] = '-' .round(100-(($row['redPrice']/$row['whitePrice'])*100)) .'%';
                    }
                    
    //Rest anfügen
                    
    $rowResult['productName'] = $row['productName'];
                    
    $rowResult['productImage'] = $row['productImage'];
                    
    $rowResult['shop'] = $row['shop'];

                    
    $result1[] = $rowResult;
                }
                echo 
    $result;
                
    print_r(json_encode($result1));
                    } 
    könnt ihr mir bitte helfen?


  • #2
    Hi,

    warum nicht gleich mit JQuery: http://api.jquery.com/jquery.ajax/ (schau Dir unten die examples an) und http://learn.jquery.com/ajax/jquery-ajax-methods/

    PHP-Code:
        // Server Verbindung herstellen
        
    mysql_connect($server,$benutzername,$passwort) or 
        die (
    "Keine Verbindung moeglich");
        
        
    // Datenbank Verbidung
        
    mysql_select_db($datenbank) or
        die (
    "Die Datenbank existiert nicht"); 
    mysql_* ist veraltet. Bitte PDO oder mysqli nutzen.

    ich dachte das könnte so gehen doch leider ging es nicht
    Fehlermeldung? Gedebuggt? usw.

    mfg Wolf29
    while (!asleep()) sheep++;

    Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

    Kommentar


    • #3
      Zitat von lepoache Beitrag anzeigen

      Nun möchte ich, dass passend zu den suchausgaben eine Json struktur erstellt wir...

      könnt ihr mir bitte helfen?

      PostgreSQL kann Resultate direkt in JSON ausgeben, ist es das, was Du suchst?
      PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

      Kommentar


      • #4
        Zitat von akretschmer Beitrag anzeigen
        PostgreSQL kann Resultate direkt in JSON ausgeben, ist es das, was Du suchst?
        Gab es da nichtmal in msql sowas ähnliches?

        PHP-Code:
        SELECT 
             CONCAT
        ("[",
                  
        GROUP_CONCAT(
                       
        CONCAT("{username:'",username,"'"),
                       
        CONCAT(",email:'",email),"'}")
                  )
             ,
        "]"
        AS 
        json FROM users
        No Sacrifice , no Glory--

        Kommentar


        • #5
          [QUOTE=Sakron;808023]Gab es da nichtmal in msql sowas ähnliches?


          Nein, das geht so:

          Code:
          test=*# select * from adressen ;
           id | adresse
          ----+---------
            1 | adr1
            2 | adr2
            3 | adr3
            4 | adr4
          (4 rows)
          
          test=*# select row_to_json(row(id, adresse)) from adressen ;
               row_to_json
          ----------------------
           {"f1":1,"f2":"adr1"}
           {"f1":2,"f2":"adr2"}
           {"f1":3,"f2":"adr3"}
           {"f1":4,"f2":"adr4"}
          (4 rows)
          
          -- oder
          
          test=*# select row_to_json(row(id, adresse), true) from adressen ;
            row_to_json
          ---------------
           {"f1":1,     +
            "f2":"adr1"}
           {"f1":2,     +
            "f2":"adr2"}
           {"f1":3,     +
            "f2":"adr3"}
           {"f1":4,     +
            "f2":"adr4"}
          (4 rows)
          PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

          Kommentar


          • #6
            Was das angeht ist mysql echt rückständig (ja ich weiss, das ist aich längst nicht alles). Aber ich glaube nicht, dass eine Datenbank schon irgendwas was für eine Ausgabe vorformatieren sollte, was erst noch durch präprozessor wie php durch muss...
            Das json-handling ist aber super für interne Informationsweitergabe zwischen gespeicherten Prozeduren...
            Gab es da nicht sogar ein Projekt, dass v8js in PostgreSQL ermöglicht?
            Standards - Best Practices - AwesomePHP - Guideline für WebApps

            Kommentar


            • #7
              Zitat von lepoache Beitrag anzeigen
              ich dachte das könnte so gehen doch leider ging es nicht
              http://php-de.github.io/jumpto/leitfaden/

              Ich würde mal im 2ten PHP Script bei LIKE".$result." anfangen.

              Kommentar


              • #8
                Zitat von rkr Beitrag anzeigen
                Gab es da nicht sogar ein Projekt, dass v8js in PostgreSQL ermöglicht?
                http://www.pgxn.org/search?q=plv8&in=docs
                PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

                Kommentar

                Lädt...
                X