Archiv verlassen und diese Seite im Standarddesign anzeigen : Nur erster Buchsabe abfragen
phillipcool
17.10.2005, 14:31:45
Hallo,
ich möchte in PHP eine Datenbank abfrage machen. Es sollen alle Namen ausgegeben werden die z.B. mit A anfangen. Ich hab eine Seite gemacht, wo alle Buchsaben sind. Nun hab ich einen Code gemacht:
$sql = "SELECT * FROM tabelle WHERE Providername LIKE '".$_GET['buchstabe']."%' and kategorie= '$Kategorie' and Anzeigen = '1'";
Aber leider geht das nicht. Wenn ich nun den Buchstabe S anbfrage, wird trotzdem kein name mit s ausgegeben!!
Hilfe
Stevie B.
17.10.2005, 14:36:11
Wenn die anderen Buchstaben alle gehen, geht auch "s". Vielleicht ist kein Provider mit "s" in der Datenbank?! Oder "s" wird nicht richtig übergeben.
phillipcool
17.10.2005, 14:37:58
Hallo,
leider geht kein Buchstabe, egal welcher. Aber der Code ist doch richtig, oder?
Stevie B.
17.10.2005, 14:40:38
Der Code ist erstmal soweit richtig. Überprüfe erstmal den Inhalt der Variablen $_GET['buchstabe']
Werden die Buchstaben auch korrekt übergeben?
phillipcool
17.10.2005, 14:42:04
Hallo,
bei mir steht: index.php?goto=provider-liste&buchstabe=A
Stevie B.
17.10.2005, 14:44:52
Ok, wo kommt denn $kategorie her? Wird ja nicht übergeben.
Wie geht es denn dann weiter bzw. wie sieht Dein weiterer Code aus?
phillipcool
17.10.2005, 14:48:53
Hallo,
ich hab das weggelassen als ich das gschrieben habe(also gerade eben). Ich gebe mal den ganzen code:
provider-liste.php
<?
####hier ist noch die datenbank verbindung!
if ($Kategorie){
$sql = "SELECT * FROM tabelle WHERE Providername LIKE '".$_GET['buchstabe']."%' and kategorie= '$Kategorie' and Anzeigen = '1'";
$abfrage = mysql_query($sql);
$zeilen = mysql_num_rows($abfrage);
echo "<p class=\"Stil2\"><a href=\"index.php?goto=provider-liste\">Übersicht</a> >> ".$Kategorie.":<br><br>";
echo "<a href=\"index.php?goto=provider-liste2&machen=providere-liste&kategorie=".$Kategorie."\">Eintragen</a><br><br>";
while($daten = mysql_fetch_assoc($abfrage)) {
echo "<table class=\"rand222\" width=\"100%\">
<tr>
<td width=\"100%\" bgcolor=\"#E5E5E5\">
<p align=\"center\"><p class=\"Stil2\"><b>".$daten['Providername']."</b></p></td>
</tr>
<tr>
<td width=\"100%\">
<table width=\"100%\">
<tr>
<td width=\"33%\" bgcolor=\"#C0C0C0\" align=\"center\"><a href=\"index.php?goto=provider-liste2&machen=mehr&id=".$daten['ID']."\">mehr</a></td>
<td width=\"33%\" bgcolor=\"#E5E5E5\" align=\"center\"><a href=\"index.php?anbieter=".$daten['URL']."\" target=\"_blank\">zum
anbieter</a></td>
<td width=\"34%\" bgcolor=\"#C0C0C0\" align=\"center\"><a href=\"index.php?goto=provider-liste2&machen=mehr&id=".$daten['ID']."#Bewertung\">bewertung</a></td>
</tr>
</table>
</td>
</tr>
</table><br>";
}
}else{
$sql="SELECT * FROM `Providerkategorie`";
$Verbinden = mysql_query($sql) OR DIE(mysql_error());
$zeilen = mysql_num_rows($Verbinden);
while($daten2 = mysql_fetch_assoc($Verbinden)) {
echo "<table width=\"100%\" border=\"1\" style=\"border-collapse: collapse\" bordercolor=\"#D8D8D8\" cellspacing cellpadding>
<tr>
<td width=\"100%\" bgcolor=\"EEEEEE\" ><font color=\"#CC0000\"><b><a href=\"index.php?goto=provider-liste_buchstabe&Kategorie=".$daten2['Name']."\">".$daten2['Name']."</b></td>
</tr>
<tr>
<td width=\100%\"><p class=\"Stil2\">".$daten2['Beschreibung']."</td>
</tr>
</table><br>";
}
}
?>
Dann kommt die Datei:
provider-liste_buchstabe.php
<?
####dantenbank verbindung
if ($Kategorie){
echo "<table cellSpacing=\"0\" cellPadding=\"0\" width=\"100%\" border=\"0\" >
<tbody>
<tr>
<td width=\"20%\" align=\"center\" height=\"25\"><a href=\"index.php?goto=provider-liste&Kategorie=".$_GET['Kategorie']."&buchstabe=A\"><font face=\"Arial\" size=\"2\">A</font></a></td>
<td width=\"20%\" align=\"center\" height=\"25\"><a href=\"index.php?goto=provider-liste&Kategorie=".$_GET['Kategorie']."&buchstabe=B\"><font face=\"Arial\" size=\"2\">B</font></a></td>
<td width=\"20%\" align=\"center\" height=\"25\"><a href=\"index.php?goto=provider-liste&Kategorie=".$_GET['Kategorie']."&buchstabe=C\"><font face=\"Arial\" size=\"2\">C</font></a></td>
<td width=\"20%\" align=\"center\" height=\"25\"><a href=\"iindex.php?goto=provider-liste&Kategorie=".$_GET['Kategorie']."&buchstabe=D\"><font face=\"Arial\" size=\"2\">D</font></a></td>
<td width=\"20%\" align=\"center\" height=\"25\"><a href=\"index.php?goto=provider-liste&Kategorie=".$_GET['Kategorie']."&buchstabe=E\"><font face=\"Arial\" size=\"2\">E</font></a></td>
</tr>
<tr>
<td width=\"20%\" align=\"center\" height=\"25\"><a href=\"index.php?goto=provider-liste&Kategorie=".$_GET['Kategorie']."&buchstabe=F\"><font face=\"Arial\" size=\"2\">F</font></a></td>
<td width=\"20%\" align=\"center\" height=\"25\"><a href=\"index.php?goto=provider-liste&Kategorie=".$_GET['Kategorie']."&buchstabe=G\"><font face=\"Arial\" size=\"2\">G</font></a></td>
<td width=\"20%\" align=\"center\" height=\"25\"><a href=\"index.php?goto=provider-liste&Kategorie=".$_GET['Kategorie']."&buchstabe=H\"><font face=\"Arial\" size=\"2\">H</font></a></td>
<td width=\"20%\" align=\"center\" height=\"25\"><a href=\"index.php?goto=provider-liste&Kategorie=".$_GET['Kategorie']."&buchstabe=I\"><font face=\"Arial\" size=\"2\">I</font></a></td>
<td width=\"20%\" align=\"center\" height=\"25\"><a href=\"index.php?goto=provider-liste&Kategorie=".$_GET['Kategorie']."&buchstabe=J\"><font face=\"Arial\" size=\"2\">J</font></a></td>
</tr>
<tr>
<td width=\"20%\" align=\"center\" height=\"25\"><a href=\"index.php?goto=provider-liste&Kategorie=".$_GET['Kategorie']."&buchstabe=K\"><font face=\"Arial\" size=\"2\">K</font></a></td>
<td width=\"20%\" align=\"center\" height=\"25\"><a href=\"index.php?goto=provider-liste&Kategorie=".$_GET['Kategorie']."&buchstabe=L\"><font face=\"Arial\" size=\"2\">L</font></a></td>
<td width=\"20%\" align=\"center\" height=\"25\"><a href=\"index.php?goto=provider-liste&Kategorie=".$_GET['Kategorie']."&buchstabe=M\"><font face=\"Arial\" size=\"2\">M</font></a></td>
<td width=\"20%\" align=\"center\" height=\"25\"><a href=\"index.php?goto=provider-liste&Kategorie=".$_GET['Kategorie']."&buchstabe=N\"><font face=\"Arial\" size=\"2\">N</font></a></td>
<td width=\"20%\" align=\"center\" height=\"25\"><a href=\"index.php?goto=provider-liste&Kategorie=".$_GET['Kategorie']."&buchstabe=O\"><font face=\"Arial\" size=\"2\">O</font></a></td>
</tr>
<tr>
<td width=\"20%\" align=\"center\" height=\"25\"><a href=\"index.php?goto=provider-liste&Kategorie=".$_GET['Kategorie']."&buchstabe=P\"><font face=\"Arial\" size=\"2\">P</font></a></td>
<td width=\"20%\" align=\"center\" height=\"25\"><a href=\"index.php?goto=provider-liste&Kategorie=".$_GET['Kategorie']."&buchstabe=Q\"><font face=\"Arial\" size=\"2\">Q</font></a></td>
<td width=\"20%\" align=\"center\" height=\"25\"><a href=\"index.php?goto=provider-liste&Kategorie=".$_GET['Kategorie']."&buchstabe=R\"><font face=\"Arial\" size=\"2\">R</font></a></td>
<td width=\"20%\" align=\"center\" height=\"25\"><a href=\"index.php?goto=provider-liste&Kategorie=".$_GET['Kategorie']."&buchstabe=S\"><font face=\"Arial\" size=\"2\">S</font></a></td>
<td width=\"20%\" align=\"center\" height=\"25\"><a href=\"index.php?goto=provider-liste&Kategorie=".$_GET['Kategorie']."&buchstabe=T\"><font face=\"Arial\" size=\"2\">T</font></a></td>
</tr>
<tr>
<td width=\"20%\" align=\"center\" height=\"25\"><a href=\"index.php?goto=provider-liste&Kategorie=".$_GET['Kategorie']."&buchstabe=U\"><font face=\"Arial\" size=\"2\">U</font></a></td>
<td width=\"20%\" align=\"center\" height=\"25\"><a href=\"index.php?goto=provider-liste&Kategorie=".$_GET['Kategorie']."&buchstabe=V\"><font face=\"Arial\" size=\"2\">V</font></a></td>
<td width=\"20%\" align=\"center\" height=\"25\"><a href=\"index.php?goto=provider-liste&Kategorie=".$_GET['Kategorie']."&buchstabe=W\"><font face=\"Arial\" size=\"2\">W</font></a></td>
<td width=\"20%\" align=\"center\" height=\"25\"><a href=\"index.php?goto=provider-liste&Kategorie=".$_GET['Kategorie']."&buchstabe=x\"><font face=\"Arial\" size=\"2\">X</font></a></td>
<td width=\"20%\" align=\"center\" height=\"25\"><a href=\"index.php?goto=provider-liste&Kategorie=".$_GET['Kategorie']."&buchstabe=Y\"><font face=\"Arial\" size=\"2\">Y</font></a></td>
</tr>
<tr>
<td width=\"20%\" align=\"center\" height=\"25\"><a href=\"index.php?goto=provider-liste&Kategorie=".$_GET['Kategorie']."&buchstabe=Z\"><font face=\"Arial\" size=\"2\">Z</font></a></td>
<td width=\"20%\" align=\"center\" height=\"25\"></td>
<td width=\"20%\" align=\"center\" height=\"25\"></td>
<td width=\"20%\" align=\"center\" height=\"25\"></td>
<td width=\"20%\" align=\"center\" height=\"25\"></td>
</tr>
</tbody>
</table>";
}else{
$sql="SELECT * FROM `Providerkategorie`";
$Verbinden = mysql_query($sql) OR DIE(mysql_error());
$zeilen = mysql_num_rows($Verbinden);
while($daten2 = mysql_fetch_assoc($Verbinden)) {
echo "<table width=\"100%\" border=\"1\" style=\"border-collapse: collapse\" bordercolor=\"#D8D8D8\" cellspacing cellpadding>
<tr>
<td width=\"100%\" bgcolor=\"EEEEEE\" ><font color=\"#CC0000\"><b><a href=\"index.php?goto=provider-liste_buchstabe&Kategorie=".$daten2['Name']."\">".$daten2['Name']."</b></td>
</tr>
<tr>
<td width=\100%\"><p class=\"Stil2\">".$daten2['Beschreibung']."</td>
</tr>
</table><br>";
}
}
?>
Die beiden datein sind halt im einsatzt
xabbuh
17.10.2005, 14:52:43
Hast du dir die Abfrage mal anzeigen lassen? Sieht diese richtig aus? Was sagt mysql_error()? Welchen Wert hat $zeilen?
Außerdem würde ich in der WHERE-Klausel der Abfrage lieber die MySQL-Funktion SUBSTRING() (http://dev.mysql.com/doc/refman/5.0/en/string-functions.html) statt LIKE verwenden. Das sollte schneller gehen.
phillipcool
17.10.2005, 14:56:48
Hallo,
mysql_error zeigt mir garnichts an. gibt keinen fehler aus!
Stevie B.
17.10.2005, 14:57:32
Also, wenn ich richtig gesehen habe, übergibst Du die Kategorie mit dem Buchstaben. href=\"index.php?goto=provider-liste&Kategorie=".$_GET['Kategorie']."&buchstabe=A\" Also müsste es schon mal if ($_GET['Kategorie']) heißen.
Dann nimm mal mysql_fetch_array anstatt mysql_fetch_assoc und lass die einfachen Anführungszeichen in den eckigen Klammern weg. $daten[Feldname];
phillipcool
17.10.2005, 15:02:27
Hallo,
super jetzt geht es!!
xabbuh
17.10.2005, 15:35:47
Dann nimm mal mysql_fetch_array anstatt mysql_fetch_assoc[...]
Warum soll er mysql_fetch_array() benutzen, wenn er sowieso nur auf die assoziativen Schlüssel zugreift?
[...] und lass die einfachen Anführungszeichen in den eckigen Klammern weg. $daten[Feldname];
Wozu sollte das gut sein? So handelt man sich nur unter Umständen unnötige Probleme ein.
Stevie B.
17.10.2005, 15:50:09
Bei den Anführungszeichen hast Du Recht, obwohl mir nicht ganz klar ist, was das für Probleme hervorrufen könnte.
Warum soll er mysql_fetch_array() benutzen, wenn er sowieso nur auf die assoziativen Schlüssel zugreift? Anzeigen='1' ist numerisch oder irre ich mich?
R. Woitaschik
17.10.2005, 15:54:49
Hi Stevie B.,
wenn Du die Anführungszeichen wegläßt, dann interpretiert PHP den Wert als Konstante. Wenn die Konstante nicht definiert ist, dann wird der Wert als Zeichenkette betrachtet. Wenn du jetzt error_reporting(E_ALL) an den Anfang deines Programms setzt, dann siehst Du den Unterschied (jede Menge Warnungen). Es ist einfach kein guter Programmierstil.
Gruß
Richard
Stevie B.
17.10.2005, 16:03:53
Ok, alles klar. Thx
xabbuh
17.10.2005, 16:20:58
Anzeigen='1' ist numerisch oder irre ich mich?
Ja, aber nur der Wert ist numerisch. Der Schlüssel ist weiterhin Anzeigen.
vBulletin® v3.8.3, Copyright ©2000-2024, Jelsoft Enterprises Ltd.