SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Handbuch der Java-Programmierung

Handbuch der Java-Programmierung zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)
Hilfe Community Kalender Heutige Beiträge Suchen

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 13.09.2012, 12:19:22
maxi maxi ist offline
Anfänger
 
Registriert seit: Aug 2012
Alter: 44
Beiträge: 11
Suchabfragenproblem

Hi Membs!

Dachte bis vor Kurzem dass meine Suchabfrage alle Suchmöglichkeiten abdeckt aber dem scheint aber leider nicht so.
Hab in meiner DB eine Tabelle mit 2 Spalten "name" und "vorname" mit z.T ähnlichen Einträgen. Die Suchabfrage bezieht sich auf beide Spalten d.h Teiltreffer aus beiden Spalten sollen in einer Tabelle angezeigt werden. Das Problem ist nicht die Suchabfrage in Bezug auf das Feld in das der User seinen Suchbegriff eingibt sondern die Beziehung der Spalten zueinander denn es wird nur dann ein Treffer ausgegeben wenn in beiden Spalten der Suchbegriff zu finden ist. Ich weiß leider nicht wo der Fehler liegt. Hab bereits die einzelnen Variablen umbenannt und hab damit zumindest denn Teilerfolg erzielt dass bei einem Teffer in der Spalte "name" diese nicht mehr mit der Spalte "vorname" verglichen wird aber leider funktioniert´s nicht andersrum. Ich hoff´es is einigermaßen verständlich...

z.b. Tabelleninhalt:Spalte name: holes Spalte vorname: Louise
Spalte name: widow Spalte vorname: Holger

Usereingabe: hol

Ergebnis: beide Einträge werden angezeigt.

Allerdings bei Usereingabe: Holger oder z.B. Holg

Ergebnis: Kein Eintrag wird angezeigt da in Spalte "name" keine Übereinstimmung mit
der Usereingabe. Ausgabe (beider Spalten) sollte aber logischerweise widow Holger sein


Hier der Code der Abfrage:

Code:
<html>
<head>
<title>
db-eingabe.php
</title>
<body bgcolor="#EFEFEF">
<?php
mysql_connect("","root");
mysql_select_db("firma");


$sqlab = "select name, vorname, titel2, titel3, titel4, verfuegbarkeit, personalnummer, bewertung from personen";
$sqlab .= " where name like '%".$_POST["autor"]."%' order by name asc";
$res = mysql_query($sqlab);
$num = mysql_num_rows($res);

echo "<table border='1' width='100%'>";
echo "<tr><td>Name</td><td>Vorname</td>";
echo "<td>Titel2</td><td>Titel3</td><td>Titel4</td><td>Verfügbarkeit</td><td>Bewertung</td></tr>";

while ($dsatz = mysql_fetch_assoc($res))
{
echo "<tr><td>".'<a href="Details.php?id='.$dsatz["personalnummer"].'" style="text-decoration:none">'.$dsatz['name'].' </a>'."</td>";
echo "<td>".'<a href="Details.php?id='.$dsatz["personalnummer"].'" style="text-decoration:none">'.$dsatz['vorname'].' </a>'."</td>";
echo "<td>".'<a href="Details.php?id='.$dsatz['personalnummer'].'" style="text-decoration:none">'.$dsatz['titel2'].' </a>'."</td>";
echo "<td>".'<a href="Details.php?id='.$dsatz['personalnummer'].'" style="text-decoration:none">'.$dsatz['titel3'].' </a>'."</td>";
echo "<td>".'<a href="Details.php?id='.$dsatz['personalnummer'].'" style="text-decoration:none">'.$dsatz['titel4'].' </a>'."</td>";

if ($dsatz["verfuegbarkeit"] == "ja")
{
echo "<td><center><font color='#00aa00'>" . $dsatz["verfuegbarkeit"] . "</font></center></td>";
}
else
{
echo "<td><center><font color='#ff0000'>" . $dsatz["verfuegbarkeit"] . "</font></center></td>";
}
$pic = '<img src="star.jpg" height="16" width="16">';
if ($dsatz["bewertung"] > "4")
{
echo  "<td>$pic$pic$pic$pic$pic<td>";
}
else if ($dsatz["bewertung"] >"3")
{
echo  "<td>$pic$pic$pic$pic</td>";
}
else if ($dsatz["bewertung"] >"2")
{
echo  "<td>$pic$pic$pic</td>";
}
else if ($dsatz["bewertung"] >"1")
{
echo  "<td>$pic$pic</td>";
}
else if ($dsatz["bewertung"] >"0")
{
echo  "<td>$pic</td>";
}
else if ($dsatz["bewertung"] = " ")
{
echo  "<td>Keine Bewertung</td>";
}
}


$bitte = "select vorname, name, titel2, titel3, titel4, verfuegbarkeit, personalnummer, bewertung from personen";
$bitte .= " where vorname like '%".$_POST["autor"]."%'";
$test = mysql_query($bitte);
$zeile = mysql_num_rows($test);

while ($dsatz = mysql_fetch_assoc($test))
{
echo "<tr><td>".'<a href="Details.php?id='.$dsatz["personalnummer"].'" style="text-decoration:none">'.$dsatz['name'].' </a>'."</td>";
echo "<td>".'<a href="Details.php?id='.$dsatz["personalnummer"].'" style="text-decoration:none">'.$dsatz['vorname'].' </a>'."</td>";
echo "<td>".'<a href="Details.php?id='.$dsatz['personalnummer'].'" style="text-decoration:none">'.$dsatz['titel2'].' </a>'."</td>";
echo "<td>".'<a href="Details.php?id='.$dsatz['personalnummer'].'" style="text-decoration:none">'.$dsatz['titel3'].' </a>'."</td>";
echo "<td>".'<a href="Details.php?id='.$dsatz['personalnummer'].'" style="text-decoration:none">'.$dsatz['titel4'].' </a>'."</td>";

if ($dsatz["verfuegbarkeit"] == "ja")
{
echo "<td><center><font color='#00aa00'>" . $dsatz["verfuegbarkeit"] . "</font></center></td>";
}
else
{
echo "<td><center><font color='#ff0000'>" . $dsatz["verfuegbarkeit"] . "</font></center></td>";
}
$pic = '<img src="star.jpg" height="16" width="16">';
if ($dsatz["bewertung"] > "4")
{
echo  "<td>$pic$pic$pic$pic$pic<td>";
}
else if ($dsatz["bewertung"] >"3")
{
echo  "<td>$pic$pic$pic$pic</td>";
}
else if ($dsatz["bewertung"] >"2")
{
echo  "<td>$pic$pic$pic</td>";
}
else if ($dsatz["bewertung"] >"1")
{
echo  "<td>$pic$pic</td>";
}
else if ($dsatz["bewertung"] >"0")
{
echo  "<td>$pic</td>";
}
else if ($dsatz["bewertung"] = " ")
{
echo  "<td>Keine Bewertung</td>";
}
}
echo "</table>";
if ($num == 0) 
{
header ('Location: Keine_Sucheintraege.html');
};

?>
</body>
</html>
Vielleicht weiß jemand warum die Spalten nach der Eingabe selbst noch verglichen werden. Ich will ja nicht das er mir nur die Treffer die in beiden Spalten vorkommen auswirft sondern pro Spalte jeweils.

lg + Dank im Voraus

maxi
Mit Zitat antworten
  #2  
Alt 13.09.2012, 15:16:56
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.707
AW: Suchabfragenproblem

Wieso benutzt/brauchst Du zwei Abfragen?

Eine Abfrage mit
PHP-Code:
where name like '%".$_POST['autor']."%' or vorname like '%".$_POST['autor']."%' 
*** ungetestet! ***

sollte zielführend sein.
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #3  
Alt 14.09.2012, 06:01:08
maxi maxi ist offline
Anfänger
 
Registriert seit: Aug 2012
Alter: 44
Beiträge: 11
AW: Suchabfragenproblem

Hi vt1816!

Thx für die Mühe allerdings funktioniert das net, bekomm dann nichts ausgegben.

Code:
$sqlab = "select name, vorname, titel2, titel3, titel4, verfuegbarkeit, personalnummer, bewertung from personen";
$sqlab .= "where name like '%".$_POST['autor']."%' or where vorname like '%".$_POST['autor']."%'";
$res = mysql_query($sqlab);
$num = mysql_num_rows($res);
Wenn ich mich recht erinner hab ich das so schon mal probiert nur eben ohne Erfolg (da war ich mir aber nicht sicher ob´s an der Schreibweise gelegen hat), deswegen der Umweg über die 2 Abfragen.


lg

maxi
Mit Zitat antworten
  #4  
Alt 14.09.2012, 07:07:47
knight1 knight1 ist offline
Junior Member
 
Registriert seit: May 2003
Ort: Trier
Alter: 47
Beiträge: 310
knight1 eine Nachricht über MSN schicken knight1 eine Nachricht über Skype™ schicken
AW: Suchabfragenproblem

Hi,
so wie ich das sehe ist die kombinierte Version schon nahe dran.
Lass das zweite where mal weg und setze die Feldnamen in Backticks.

Kai aka Knight1
__________________
Please visit: http://www.kaikordel.de
Mit Zitat antworten
  #5  
Alt 14.09.2012, 10:35:01
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.707
AW: Suchabfragenproblem

Zitat:
Zitat von maxi Beitrag anzeigen
Hi vt1816!

Thx für die Mühe allerdings funktioniert das net, bekomm dann nichts ausgegben.

Code:
$sqlab = "select name, vorname, titel2, titel3, titel4, verfuegbarkeit, personalnummer, bewertung from personen";
$sqlab .= "where name like '%".$_POST['autor']."%' or where vorname like '%".$_POST['autor']."%'";
$res = mysql_query($sqlab);
$num = mysql_num_rows($res);
...
Habs mal für Dich angepasst:
PHP-Code:

$sqlab 
"select name, vorname, titel2, titel3, titel4, verfuegbarkeit, personalnummer, bewertung from personen ";
$sqlab .= "where `name` like '%".$_POST['autor']."%' or `vorname` like '%".$_POST['autor']."%'";
echo 
$sqlab;
$res mysql_query($sqlab);
$num mysql_num_rows($res); 
Was bekommst Du angezeigt? Achte auf das Leerzeichen hinter dem Tabelennamen!
Schalte die Fehleranzeige ein bzw. höher!
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #6  
Alt 14.09.2012, 21:10:42
maxi maxi ist offline
Anfänger
 
Registriert seit: Aug 2012
Alter: 44
Beiträge: 11
AW: Suchabfragenproblem

Thx an euch beide!!!

So ich hab´s jetzt so gemacht und das funktioniert.

Code:
$sqlab = "select name, vorname, titel2, titel3, titel4, verfuegbarkeit, personalnummer, bewertung from personen ";
$sqlab .= "where name like '%".$_POST['autor']."%' or vorname like '%".$_POST['autor']."%'";
$res = mysql_query($sqlab);
$num = mysql_num_rows($res);
also das zweite where laut Knight1 weggenommen. Wenn ich die Feldnamen aber in Backsticks reingeb gibt er mir nichts aus, ohne aber funktioniert´s wie gewünscht.

Wozu das echo $sqlab; vt1816?
Das gibt mir ja dann die komplette erste Zeile mit Feldnamen aus
Code:
"select name, vorname, titel2, titel3, titel4, verfuegbarkeit, personalnummer, bewertung from personen ";
Brauch ich ja demnach nicht ;-)

Kurze Interessensfrage, wozu sind die Backsticks eigentlich gut? Alteingesessene Codingform an die man sich halten sollte?
Hab die bis jetzt noch nie wo gesehen.

Thx nochmals

lg

maxi
Mit Zitat antworten
  #7  
Alt 15.09.2012, 07:37:30
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.707
AW: Suchabfragenproblem

Zitat:
Zitat von maxi Beitrag anzeigen
Thx an euch beide!!!

So ich hab´s jetzt so gemacht und das funktioniert.
Gern geschehen ...



Zitat:
Zitat von maxi Beitrag anzeigen
[...]

Wozu das echo $sqlab; vt1816?
Das gibt mir ja dann die komplette erste Zeile mit Feldnamen aus
Code:
"select name, vorname, titel2, titel3, titel4, verfuegbarkeit, personalnummer, bewertung from personen ";
Brauch ich ja demnach nicht ;-)

Kurze Interessensfrage, wozu sind die Backsticks eigentlich gut? Alteingesessene Codingform an die man sich halten sollte?
Hab die bis jetzt noch nie wo gesehen.
Deine Äußerungen zeigen mal wieder deutlich, es ist leichten in einem Forum zu fragen als mal das/im Handbuch zu lesen. KOPFSCHÜTTEL!
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #8  
Alt 15.09.2012, 17:09:17
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: Suchabfragenproblem

Zitat:
Zitat von vt1816 Beitrag anzeigen
Deine Äußerungen zeigen mal wieder deutlich, es ist leichten in einem Forum zu fragen als mal das/im Handbuch zu lesen. KOPFSCHÜTTEL!
Psssttt... Würde jeder Fragesteller die Handbücher lesen, wäre ua. auch dieses Forum überflüssig. <ggg>
Mit Zitat antworten
  #9  
Alt 15.09.2012, 18:41:52
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.707
AW: Suchabfragenproblem

Zitat:
Zitat von meikel Beitrag anzeigen
Psssttt... Würde jeder Fragesteller die Handbücher lesen, wäre ua. auch dieses Forum überflüssig. <ggg>
DU solltest wissen wie es gemeint war ;-)
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #10  
Alt 15.09.2012, 21:11:31
Ckaos Ckaos ist offline
Member
 
Registriert seit: Nov 2007
Beiträge: 843
AW: Suchabfragenproblem

Hi,

google mal nach SQL Injection!

mfg

CKaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
Mit Zitat antworten
Antwort

Stichworte
spaltenvergleich, suchabfrage


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:22:40 Uhr.


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


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt