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
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren |
13.09.2012, 12:19:22
|
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
|
13.09.2012, 15:16:56
|
|
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!
|
14.09.2012, 06:01:08
|
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
|
14.09.2012, 07:07:47
|
Junior Member
|
|
Registriert seit: May 2003
Ort: Trier
Alter: 47
Beiträge: 310
|
|
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
|
14.09.2012, 10:35:01
|
|
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: Suchabfragenproblem
Zitat:
Zitat von maxi
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!
|
14.09.2012, 21:10:42
|
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
|
15.09.2012, 07:37:30
|
|
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: Suchabfragenproblem
Zitat:
Zitat von maxi
Thx an euch beide!!!
So ich hab´s jetzt so gemacht und das funktioniert.
|
Gern geschehen ...
Zitat:
Zitat von maxi
[...]
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!
|
15.09.2012, 17:09:17
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
AW: Suchabfragenproblem
Zitat:
Zitat von vt1816
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>
|
15.09.2012, 18:41:52
|
|
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: Suchabfragenproblem
Zitat:
Zitat von meikel
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!
|
15.09.2012, 21:11:31
|
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!
|
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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 11:06:41 Uhr.
|