tsunami
Goto Top

Ajax Suche ohne "Hilfs-Php-Datei"

Hallo,
ich bin gerade dabei etwas mit Ajax rum zu spielen.
Es geht um eine simple Textsuche + Mysql.
Also: Liste mit Namen, wenn der USer "Mu" eingibt, sollen alle Namen mit MU beginnend angezeigt werden.
Der Ansatz:
<html>
<head>
	<title>Ajax Suche</title>
	<script type="text/javascript">  
		function searchFor(suchbegriff){
			var xmlHttp = null;
		if (typeof XMLHttpRequest != 'undefined') {  
				xmlHttp = new XMLHttpRequest();
			}
			if (!xmlHttp) {
			try {
					xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");  
				} catch(e) {
					try {
						xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");  
					} catch(e) {
						xmlHttp  = null;
					}
				}
			}
			if (xmlHttp) {
				var url = "Neu1.php";  
				var params = "suchbegriff="+suchbegriff;  
				xmlHttp.open("POST", url, true);  
				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) {
						document.getElementById("ergebnis").innerHTML = xmlHttp.responseText;  
					}
				};				
				xmlHttp.send(params);
			}			
		}
	</script>
</head>
<body>
xxx	<input type="text" onKeyUp="(this.value.length >= 0) ? searchFor(this.value) : '';">   
	<div id="ergebnis"></div>      
    
</body>
</html>
mit der Hilfs-PHP-Datei
<?php  include("includes/bufo-demo.php");  
      $suchbegriff=$_POST["suchbegriff"];  
// $suchbegriff="Ahm"; 
      $sql_suche=sprintf("select handelspartner.name, handelspartner.firmenname, handelspartner.vorname from handelspartner where name like '%s%%' or firmenname like '%s%%'",mysqli_real_escape_string($bufo_conn,$suchbegriff),mysqli_real_escape_string($bufo_conn,$suchbegriff));  
      echo $sql_suche;
      $mssuche=mysqli_query($bufo_conn,$sql_suche);
      while($ausgabe_suche=mysqli_fetch_assoc($mssuche))
      {
      if($ausgabe_suche['firmenname']=='')  
      echo "<br/>Vorname: ".$ausgabe_suche['vorname']." Nachname: ".$ausgabe_suche['name']."<br/>";  
      else
      echo "<br/>Fimenname: ".$ausgabe_suche['firmenname']." Vorname: ".$ausgabe_suche['vorname']." Nachname: ".$ausgabe_suche['name']."<br/>";  
      }
?>
funktioniert soweit grundsätzlich. Allerdings habe ich noch einige Sahnehäubchen, welche ich umsetzen möchte:
  • Wie bekomme ich es ohen die Hilfs-PHP hin? Als Ziel die eigene Datei funktioniert zwar, allerdings zeigt er mir das Formular dann doppelt an. EIn
    if(isset($_POST['suchbegriff']))  
    um das Formular half nicht.
  • Ich möchte beim Laden, dass allle Elemente angezeigt werden. Und dann soll gefiltert werden, sobald eine EIngabe erfolgt.
Der Ansatz wäre sowas wie:
if(noKeyPressed) onload function... else (onKeyUp function....
Also bei Laden erstmal die Funktion ausführen und den sql-Query ohne where ausführen, sobald eine Eingabe erfolgt, denselben Query mit where name like 'suchebegriff%'. Leider habe ich von js wenig und von Ajax gar keine Ahnung.
Irgendeine Idee?
mfG
tsunami

Content-Key: 599335

Url: https://administrator.de/contentid/599335

Ausgedruckt am: 29.03.2024 um 12:03 Uhr

Mitglied: godlie
godlie 26.08.2020 um 12:58:14 Uhr
Goto Top
Hallo,

um dir die 2te Datei zu ersparen musst du nur deine Hauptdatei als php datei Speichern und den Teil der 2ten Datei hinzufügen, ich würde daraus eine einfache function machen die ich dann mit den Parametern calle, also so im groben:

?php
if($_POST['suchbegriff']){  
        // Suche mit suchbegriff <-- deine 2te Datei
} else {
       // Suche ohne suchbegriff <-- deine 2te Datei
?>
HTML Zeugs mit SuchForm

<?php
}
?>

Was natürlich wiedereinmal nicht beachted wird ist die Gefahr einer SQL Injection <-- hierzu gibt es genügend threads
Mitglied: tsunami
tsunami 26.08.2020 um 15:24:14 Uhr
Goto Top
Hi,
vielen Dank für die schnelle Antwort. Ich war nicht untätig und der Part "Alle anzeigen" bei Aufruf ohne Filder klappt.
DU meinst den Teil der externen php einfügen und dann als url die eiene Datei einsetzen? Das habe ich versucht, hatte aber dann das Formular doppelt drin. Das mit dem SQL injection lösst mir doch das mysql_real_escape_string, oder nicht? Zudem ist es nicht öffentlich und das Verzeichnis ist mit htaccess geschützt.
mfG
tsunami
Mitglied: godlie
godlie 26.08.2020 aktualisiert um 15:32:01 Uhr
Goto Top
Hallo,

ich hab dir den Aufbau bereits oben Skizziert, in deinem Ajax Call machst du dann einfach einen Aufruf auf dich selbst.

suche.php
<?php
if(isset($_POST['suchbegriff'])){  
echo suche($_POST['suchbegriff']);  
} else {
suche();
?>
HTML Code mit Form Ajax Call auf suche.php
<?php
}

function suche(begriff){
//inhalt deiner externen Datei
return ergebniss;
}

Oh das mysqli_real_escape ist mir entfleucht, aber schöner und zukunftssicherer wäre es auf PDO umzusteigen.
Mitglied: tsunami
tsunami 31.08.2020 aktualisiert um 10:12:55 Uhr
Goto Top
Guten Morgen,
ich habe nun mal wieder die Suche auf dem Plan.
Ich habe mal den Aufbau übernommen. Nun bekomme ich einen Error:

Fatal error: Uncaught Error: Call to undefined function searchFor() in C:\xampp\htdocs\
Also echo searchFor();
Daraufhin habe ich den Javascript-Kram nach oben gepackt. Im Quelltext wird er korrekt geparsed.
Warum zum Henker kennt er dann die Funktion nicht?

Ok, das habe ich gelöst. Aber nun habe ich das alte Problem, dass er zum einen den html Block doppelt anzeigt und zum anderen scheint die SUche eine Schlagzum haben. Denn wenn ich "Me" eingebe zeigt er mir ua Praxis Caries an und Kevin Droste Hülshoff.
Dabei ist die sql-Abfrage ein
 where name  like "Me%" oder firmenname like "Me%"  
mfG
tsunami
zwischenablage01
Mitglied: godlie
godlie 31.08.2020 um 11:27:49 Uhr
Goto Top
Hallo,

poste doch mal deinen ganzen Source Code hier rein, wo sich die Function Definition befindet ist php egal.
Mitglied: tsunami
tsunami 31.08.2020 aktualisiert um 15:58:50 Uhr
Goto Top
<?php 
         include_once("includes/bufo-demo.php");  
         include_once("includes/formula.php");  
//    $suchbegriff=0;        
   $debkred=1;
   $dir="asc";  
   $sort="sortiername";  
   echo "peng".$_POST['suchbegriff'];  
   if(isset($_POST['suchbegriff']))  {  
               $sql_handelspartner_zumzaehlen=sprintf("select handelspartner.*,firmentyp.name as firmentypname,orte.name as query query query  
 ---
   }
   else
   {
       $sql_handelspartner_zumzaehlen=sprintf("select handelspartner.*,firmentyp.name as firmentypname,orte.name as query query query   }  

?> 

                  	<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>  
       <br /><h2 class='ueberschrift'><u>Handelspartner</u></h2>  
    <input type="text" class='suchedesign' placeholder="Nachname oder Firmenname suchen" onKeyUp="(this.value.length >= 0) ? searchFor(this.value) : '';">   
	<div id="ergebnis"></div>      

   <?php  

echo $sql_handelspartner_zumzaehlen;
 $ms_handelspartner=mysqli_query($bufo_conn,$sql_handelspartner_zumzaehlen);
   $eintraege = mysqli_num_rows($ms_handelspartner);
    
  $eintraege=mysqli_num_rows($ms_handelspartner) ;
//   seitenweise_handelspartner($sort,$adir,$debkred,$aktuell,$eintraege);
//    echo $sql_handelspartner;

?>
<br>
<?php
  while($ausgabe_handelspartner=mysqli_fetch_assoc($ms_handelspartner))

  {

      if($ausgabe_handelspartner['firmenname']!="") echo "<br>".$ausgabe_handelspartner['firmentypname']."&nbsp;".$ausgabe_handelspartner['firmenname']." - ".$ausgabe_handelspartner['anredename']."&nbsp;".$ausgabe_handelspartner['titelname'].$ausgabe_handelspartner['vorname']." ".$ausgabe_handelspartner['name'];  

      else 

      echo "<br>".$ausgabe_handelspartner['anredename']."&nbsp;".$ausgabe_handelspartner['titelname'].$ausgabe_handelspartner['vorname']." ".$ausgabe_handelspartner['name'];  

      }
        
      ?>
Das Query ist einfach mit name like "suche%" und ohne like "suche%". Das geht soweit, daher habe ich es gekürzt. Was ich gesehen habe, ist, dass das "formular" 2x abgeschickt wird. Einmal mit dem Suchbegriff, einmal leer, ohne das weitere Tasten gedrückt wurden.

Also rufe ich doch das Formular auf, alles oK. Gebe zB M ein . Im ersten Block habe doch $_post['suchbegriff']="M"
Drunter habe ich $_post['suchbegriff'] umnbekannt...
Mitglied: godlie
godlie 31.08.2020 um 18:31:23 Uhr
Goto Top
Hallo,

das ist klar, du gibst dir ja unten das Ergebniss aus deinem Query aus, weiters sehe ich keine abschliesende Klammer für das else...

Was mir auch auffällt, du prüfst ja nur ob $_POST['suchbegriff'] gesetzt ist, du prüfst nicht, ob diese auch etwas beinhaltet.

Alles in allem ist der code nicht vollständig, ich versteh auch nicht warum die du deine qry im If und im Else Zweig veränderst.
Mitglied: tsunami
tsunami 01.09.2020 um 10:38:52 Uhr
Goto Top
Hi,
die Idee ist halt einmal where name like "suchtext%" und einmal ohne where.
Die andere Version wäre where name like "%" . Aber dass das funktioniert, war mir nicht klar. Ok.
Die Query-Ausgabe ist nur zu testzwecken. Das würde nach der neuen Erkenntnis wegfallen.

Die Klammer scheint beim c&p verloren gegangen zu sein. Die ist natürlich da. Sonst würde php meckern.

Was ich mit doppelter Ausgabe meine, ist dass die Überschrift und das Suchfeld doppelt ausgegeben werden.
Das der Code nicht komplett ist, ist mir klar, sonst wäre ich nicht hier.
Müsste da irgendwo nicht noch sowas wie ein exit rein?
Es scheint ja so, als wenn der die Seite lädt, ich gebe einen Buchstaben ein, die Funktion wird 1x ausgeführt (getestet mit alert).
Die Daten werden an sich selber gesendet und die html-Inhalte (input und h2) nochmals dargestellt.
Und das möchte ich unterbinden.
mfG
tsunami
Mitglied: godlie
godlie 01.09.2020 um 11:25:45 Uhr
Goto Top
Hallo,
so ich das jetzt mal ein bisserl aufgeräumt und ein html konstrukt rund herum gemacht, bei mir wird der Input nur einmal dargestellt und bei Eingabe des Suchbegriffs wird mir das Ergebniss angezeigt.

Was natürlich wichitg ist, dass deine php Datei genau so heist, wie du Sie in der searchFor unter var url genannt hast.

<!doctype html>
<html lang="de">  
<head>
	<meta charset="utf-8">  
        <title>Title</title>
	<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>
<form name="form" method="post">  
<?php 
   $debkred=1;
   $dir="asc";  
   $sort="sortiername";  
   echo "peng".$_POST['suchbegriff'];  
   if(isset($_POST['suchbegriff']) && $_POST['suchbegriff'] !== '')  {  
       // Suche mit Begriff
   }
   else
   {
      // Leer Suche
?>                 
    <br /><h2 class='ueberschrift'><u>Handelspartner</u></h2>  
    <input type="text" class='suchedesign' placeholder="Nachname oder Firmenname suchen" onKeyUp="(this.value.length >= 0) ? searchFor(this.value) : '';">   
	<div id="ergebnis"></div>      

   <?php  
// Anzeige des QueryResults
?>
<br>
<?php
   }
?>
</body>
</html>
Mitglied: tsunami
tsunami 01.09.2020 um 13:51:45 Uhr
Goto Top
Hm, und das ohne hilfsdatei? Also alles in der Suche.Php? Ich setze es nachher um.
Mfg Tsunami
Mitglied: godlie
godlie 01.09.2020 um 13:55:19 Uhr
Goto Top
Hallo,

ja deswegen ist ja heir das if/else Konstrukt drinnen, damit die Datei weis was sie machen soll face-smile
Mitglied: tsunami
tsunami 01.09.2020 um 16:38:51 Uhr
Goto Top
Hi,
leider immer noch ein Satz mit X!
Den JS-Code nochmal 1:1 übernommen.
php mit like "%" funktioniert überings, so dass das if-else tatsächlich nicht gebraucht würde. Habe es auch im phpmyadmin getested.

Ich bekomme wieder den <h1>-Block und das Suchfeld doppelt angezeigt. Um aus zu schlßen, dass es irgendwas mit Cache etc. ist, habe ich es im FF und Chrome getestet. Der FF löscht alle Daten beim beenden, es ist also wirklich noch ein Problem drinnne..

Wenn ich mir den html-Quellcode ausgeben lasse:
<!doctype html>
<html lang="de"><head><meta charset="utf-8">  
        <title>Title</title>
       <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> 
       <form name="form" method="post">      
 
               <br /><h2 class='ueberschrift'><u>Handelspartner</u></h2>  
    <input type="text" class='suchedesign' placeholder="Nachname oder Firmenname suchen" onKeyUp="(this.value.length >= 0) ? searchFor(this.value) : '';">   
	<div id="ergebnis"></div>   
   <br>Praxis&nbsp;Caries - Herr&nbsp;Dr. Klaus Mentrup<br>Herr&nbsp;Dr. Kevin Droste-H&uuml;lshoff<br>Firma&nbsp;Elektro Blitz - Frau&nbsp;Claudia Malek<br>Firma&nbsp;KFZ Engel - Frau&nbsp;Dr. Claudia L&ouml;ns<br>Firma&nbsp;L&ouml;we - Frau&nbsp;Dr. Petra Merkel<br>Kanzlei&nbsp;Meier  - Herr&nbsp;Dr. Mathias Vogel<br>Praxis&nbsp;Mustermann - Herr&nbsp; <br>Sachverst&auml;ndigenb&uuml;ro&nbsp;Oliver Eikel - Herr&nbsp;Dr. Oliver Eikel<br>Firma&nbsp;Schmidt - Herr&nbsp; <br>Firma&nbsp;Winkel - Herr&nbsp; <br>&nbsp;Wortmann AG - Herr&nbsp;Sigbert Wortmann</body></html>    

zeigt er mir den fehlerhaften Part an, also das Ganze mit leerem Suchbegriff. Im Screenshot dagegen zeigt er oben den korrekten Part an. Hier das Textfeld mit "Wo" als Beispiel und der Ergebnisliste (Wolf und Wortmann. dann eine Leerzeile und dann alle Einträge

Der php-Code:
<!doctype html>
<html lang="de"><head><meta charset="utf-8">  
        <title>Title</title>
       <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> 
       <form name="form" method="post">      
 
               <br /><h2 class='ueberschrift'><u>Handelspartner</u></h2>  
    <input type="text" class='suchedesign' placeholder="Nachname oder Firmenname suchen" onKeyUp="(this.value.length >= 0) ? searchFor(this.value) : '';">   
	<div id="ergebnis"></div>   
   <?php    include_once("includes/bufo-demo.php");  
         include_once("includes/formula.php");  
//    $suchbegriff=0;        
   $debkred=1;
   $dir="asc";  
   $sort="sortiername";  
//    echo "peng".$_POST['suchbegriff']; 
     if(isset($_POST['suchbegriff']) &&$_POST['suchbegriff'] !='')  
     {
      $sql_handelspartner_zumzaehlen=sprintf("select handelspartner.*,firmentyp.name as firmentypname,orte.name as ortname,anreden.anredename,CONCAT(handelspartner.firmenname,handelspartner.name,handelspartner.vorname) AS sortiername, titel.titelname as titelname from firmentyp, handelspartner,orte,anreden,titel,laender where handelspartner.privatfirma=firmentyp.id and handelspartner.ort =orte.id and if(handelspartner.name='',1,handelspartner.anreden_id=anreden.id) and if(handelspartner.name='',1,handelspartner.titel_id=titel.id) and handelspartner.land=laender.id and if(%s=999,1,handelspartner.debitorkreditor=%s) and aktiv=1 and handelspartner.name like '%s%%' or firmenname like '%s%%' group by sortiername order by ".$sort." ".$dir,  
            mysqli_real_escape_string($bufo_conn,$debkred),
   mysqli_real_escape_string($bufo_conn,$debkred),
    mysqli_real_escape_string($bufo_conn,$_POST['suchbegriff']),  
        mysqli_real_escape_string($bufo_conn,$_POST['suchbegriff']));    
               $ms_handelspartner=mysqli_query($bufo_conn,$sql_handelspartner_zumzaehlen);
  while($ausgabe_handelspartner=mysqli_fetch_assoc($ms_handelspartner))

  {

      if($ausgabe_handelspartner['firmenname']!="") echo "<br>".$ausgabe_handelspartner['firmentypname']."&nbsp;".$ausgabe_handelspartner['firmenname']." - ".$ausgabe_handelspartner['anredename']."&nbsp;".$ausgabe_handelspartner['titelname'].$ausgabe_handelspartner['vorname']." ".$ausgabe_handelspartner['name'];  

      else 
        echo "<br>".$ausgabe_handelspartner['anredename']."&nbsp;".$ausgabe_handelspartner['titelname'].$ausgabe_handelspartner['vorname']." ".$ausgabe_handelspartner['name'];  
         }
      }
      else
      {
      $sql_handelspartner_zumzaehlen=sprintf("select handelspartner.*,firmentyp.name as firmentypname,orte.name as ortname,anreden.anredename,CONCAT(handelspartner.firmenname,handelspartner.name,handelspartner.vorname) AS sortiername, titel.titelname as titelname from firmentyp, handelspartner,orte,anreden,titel,laender where handelspartner.privatfirma=firmentyp.id and handelspartner.ort =orte.id and if(handelspartner.name='',1,handelspartner.anreden_id=anreden.id) and if(handelspartner.name='',1,handelspartner.titel_id=titel.id) and handelspartner.land=laender.id and if(%s=999,1,handelspartner.debitorkreditor=%s) and aktiv=1 group by sortiername order by ".$sort." ".$dir,  
            mysqli_real_escape_string($bufo_conn,$debkred),
   mysqli_real_escape_string($bufo_conn,$debkred));  
            $ms_handelspartner=mysqli_query($bufo_conn,$sql_handelspartner_zumzaehlen);
  while($ausgabe_handelspartner=mysqli_fetch_assoc($ms_handelspartner))

  {

      if($ausgabe_handelspartner['firmenname']!="") echo "<br>".$ausgabe_handelspartner['firmentypname']."&nbsp;".$ausgabe_handelspartner['firmenname']." - ".$ausgabe_handelspartner['anredename']."&nbsp;".$ausgabe_handelspartner['titelname'].$ausgabe_handelspartner['vorname']." ".$ausgabe_handelspartner['name'];  

      else 
        echo "<br>".$ausgabe_handelspartner['anredename']."&nbsp;".$ausgabe_handelspartner['titelname'].$ausgabe_handelspartner['vorname']." ".$ausgabe_handelspartner['name'];  

      }
    } 
           
      ?></body></html>    
zwischenablage01
Mitglied: godlie
godlie 01.09.2020 um 17:17:44 Uhr
Goto Top
Hallo,

also denn Sinn u. Zweck des If / Else Konstrukts hast du nicht verstanden.

Wenn dein Suchbegriff da ist, dann gib nur dein Suchergebniss zurück.
Wenn dein Suchbegriff nicht da ist, dann gib die Form aus.

grüße
Mitglied: tsunami
tsunami 01.09.2020 um 17:28:56 Uhr
Goto Top
Hi,
nicht ganz:
Wenn Suchbegriff leer, zeige Form und alle Einträge.
Wenn Suchbegriff != leer zeige Form und gefilterte Ergebnisse.

Bsp:
1 Seitenaufruf
2 Anzeige Form und alle Einträge aus zB Handelspartner
3 Eingabe 1. Buchstabe Suchbegriff (t) zeige Form + alle Suchergebnisse mit "t" am Anfang.
4 Eingabe "s" Zeige form plus alle Einträge mit "ts" am Anfang
usw
Also sowas wie ein Filter, für lange Listen. Ist es nun klarer geworden?
mfG
tsunami
Mitglied: godlie
Lösung godlie 01.09.2020 um 17:48:33 Uhr
Goto Top
Hallo,

ja ist klarer geworden, anhand von diesen Anforderungen lässt sich das nicht in einer Datei abbilden ohne ein sinnbefreites Konstrukt.

Ergo: eine Datei die deine Form Rendert und eine 2te welche dann die Ergebnisse zurückliefert und nur diese Zurückliefert
Mitglied: tsunami
tsunami 01.09.2020 um 17:51:14 Uhr
Goto Top
Danke für Deine Hilfe.
Dachte ich bin im falschen Wald. Geht also nicht.
face-smile Dann kann ich noch lange suchen!
mfG
tsunami