Sortierung
- oxpus
- Administrator
- Beiträge: 28735
- Registriert: Mo 27.Jan, 2003 22:13
- Wohnort: Bad Wildungen
- Kontaktdaten:
Du solltest schon die Feldinhalte der jeweiligen Auswahl als Schlüssel angeben. Damit wäre es einfacher, nach bestimmten Namen, Maschinentypen, etc. zu suchen.
Und daraus kommen ja dann erst die IDs für die Vergleichsliste.
Und daraus kommen ja dann erst die IDs für die Vergleichsliste.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Danke oxpus, das meinte ich ... also eher so:
@Bootenks: es ist das erste Mal, dass ich "selber" programmiere. Ich kann das nicht! 
EDIT: ich möchte das Ergebnis der Auswahl jetzt an start2.php weiterschicken. Ich habe in visa.php ja dieses eingebaut:
kann ich was ähnliches wieder verwenden?
http://www.gremminger.se/service/compare/start1.php
http://www.gremminger.se/service/compare/start2.php
Code: Alles auswählen
<form action="visa.php" method="post">
Tillverkare
<select name="top5" size="3" multiple>
<?php
$result = mysql_query("SELECT DISTINCT tillverkare FROM maskinlista ORDER BY tillverkare ASC");
while ($r = mysql_fetch_array($result))
{
echo('<option value=' . $r['tillverkare'] . '>');
echo($r['tillverkare']);
echo('</option>');
}
?>
</select>
Maskintyp
<select name="top5" size="3" multiple>
<?php
$result = mysql_query("SELECT DISTINCT maskintyp FROM maskinlista ORDER BY maskintyp ASC");
while ($r = mysql_fetch_array($result))
{
echo('<option value=' . $r['maskintyp'] . '>');
echo($r['maskintyp']);
echo('</option>');
}
?>
</select>
</form>
EDIT: ich möchte das Ergebnis der Auswahl jetzt an start2.php weiterschicken. Ich habe in visa.php ja dieses eingebaut:
Code: Alles auswählen
$vergleich = (isset($HTTP_POST_VARS['vergleich'])) ? $HTTP_POST_VARS['vergleich'] : array();
$sql_where_ids = '';
if(sizeof($vergleich))
{
for ($i=0; $i<sizeof($vergleich); $i++)
{
$sql_where_ids .= ($sql_where_ids != '') ? ', ' . $vergleich[$i] : $vergleich[$i];
}
}
if ($sql_where_ids)
{
$sql_where_ids = ' WHERE id IN (' . $sql_where_ids . ') ';
}http://www.gremminger.se/service/compare/start1.php
http://www.gremminger.se/service/compare/start2.php
Zuletzt geändert von Holger am Di 05.Dez, 2006 10:51, insgesamt 1-mal geändert.
*LOL* Das passiert mir auch immer.(aso da hab mich vertippselt... DISTINCT)
Schön das ich da nicht der einzige bin.
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________
Kein Support per PM, ICQ oder eMail!!![/center]
______________________________________
Kein Support per PM, ICQ oder eMail!!![/center]
- oxpus
- Administrator
- Beiträge: 28735
- Registriert: Mo 27.Jan, 2003 22:13
- Wohnort: Bad Wildungen
- Kontaktdaten:
@Holger
Die Auswahllisten (select) haben jetzt den gleichen Namen
Das ist schlecht, da dieser Name als Parameter an das Script gesendet wird.
Daher beide Listen unterschiedlich benennen.
Und in script2.php kannst Du dann diesen Wert übernehmen:
(Als Beipsiel).
Und $top5 wäre dann als Bedingung in die Abfrage einzusetzen, so daß dieses hier in etwas rauskäme:
LIKE als Vergleich und das Prozent hinter dem Wert sind hier besser, damit bei nicht ausgewähltem Feld (Wert ist leer und es steht dann nur % da!) eben alle Daten gezogen werden. Was dann ja auch so sein sollte...
Die Auswahllisten (select) haben jetzt den gleichen Namen
Code: Alles auswählen
name="top5"Daher beide Listen unterschiedlich benennen.
Und in script2.php kannst Du dann diesen Wert übernehmen:
Code: Alles auswählen
$top5 = (isset($HTTP_POST_VARS['top5'])) ? $HTTP_POST_VARS['top5'] : '';Und $top5 wäre dann als Bedingung in die Abfrage einzusetzen, so daß dieses hier in etwas rauskäme:
Code: Alles auswählen
$result = mysql_query("SELECT DISTINCT maskintyp FROM maskinlista WHERE feldname LIKE ('" . $top5 . "%') ORDER BY maskintyp ASC");Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Hi! Das klappt sehr gut! Danke!
NUR: ich kann keine Mehrfachauswahl treffen ...
http://www.gremminger.se/service/compare/start1.php
EDIT: eine Idee was ich tun muss um Mehrfachauswahl zu ermöglichen?
Ausserdem:
Ich habe die Felder Gewicht (vikt und vikt2) in INT umgewandelt.
Gibt man nun in
http://www.gremminger.se/service/compare/start1.php
"15000" ein bekommt man schön zwei Maschinen angezeigt, die man dann auch vergleichen kann.
NUR: ich kann nicht mehr NUR Åkerman auswählen und alles andere unberührt lassen, dann wird nichts angezeigt.
Ich habe damit versucht:
und
Ich vermute mal in dem Letzteren steckt ein Fehler?!?!?! Die ANDs sollen ja nur berücksichtigt werden, wenn in dem Feld Vikt etwas eingegeben wurde, wie bei den zwei anderen Feldern auch ...
NUR: ich kann keine Mehrfachauswahl treffen ...
http://www.gremminger.se/service/compare/start1.php
EDIT: eine Idee was ich tun muss um Mehrfachauswahl zu ermöglichen?
Ausserdem:
Ich habe die Felder Gewicht (vikt und vikt2) in INT umgewandelt.
Gibt man nun in
http://www.gremminger.se/service/compare/start1.php
"15000" ein bekommt man schön zwei Maschinen angezeigt, die man dann auch vergleichen kann.
NUR: ich kann nicht mehr NUR Åkerman auswählen und alles andere unberührt lassen, dann wird nichts angezeigt.
Ich habe damit versucht:
Code: Alles auswählen
$Tillverkare = (isset($HTTP_POST_VARS['Tillverkare'])) ? $HTTP_POST_VARS['Tillverkare'] : '';
$Maskintyp = (isset($HTTP_POST_VARS['Maskintyp'])) ? $HTTP_POST_VARS['Maskintyp'] : '';
$Vikt = (isset($HTTP_POST_VARS['Vikt'])) ? $HTTP_POST_VARS['Vikt'] : '';Code: Alles auswählen
$result = mysql_query("SELECT DISTINCT * FROM maskinlista WHERE tillverkare LIKE ('" . $Tillverkare . "%') AND maskintyp LIKE ('" . $Maskintyp . "%') AND vikt < ('" . $Vikt . "%') AND vikt2 > ('" . $Vikt . "%') ORDER BY tillverkare ASC");
Zuletzt geändert von Holger am Mi 06.Dez, 2006 14:51, insgesamt 1-mal geändert.
- oxpus
- Administrator
- Beiträge: 28735
- Registriert: Mo 27.Jan, 2003 22:13
- Wohnort: Bad Wildungen
- Kontaktdaten:
1. Mehrfachauswahl wäre hier schlecht, denn die Auswahl landet ja komplett in der SQL-Abfrage.
Oder man müsste auch hier wieder alle Werte einzeln auslesen und in einen Bedingungsstring packen.
Man man man, wird ja richtig zur Arbeit hier...
2. Klammere die letzten beiden nochmal ein, damit diese erst ausgewertet werden und dann der Rest der Bedingungen. Und dazu musst Du das Prozentzeichen da rausnehmen, da $vict ja eine Zahl und ein String ist!
Oder man müsste auch hier wieder alle Werte einzeln auslesen und in einen Bedingungsstring packen.
Man man man, wird ja richtig zur Arbeit hier...
2. Klammere die letzten beiden nochmal ein, damit diese erst ausgewertet werden und dann der Rest der Bedingungen. Und dazu musst Du das Prozentzeichen da rausnehmen, da $vict ja eine Zahl und ein String ist!
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Meinst Du so?
Ist das richtig geklammert so?
Code: Alles auswählen
$result = mysql_query("SELECT DISTINCT * FROM maskinlista WHERE tillverkare LIKE ('" . $Tillverkare . "%') AND maskintyp LIKE ('" . $Maskintyp . "%') AND (vikt < ('" . $Vikt . "') AND vikt2 > ('" . $Vikt . "')) ORDER BY tillverkare ASC");
Zuletzt geändert von Holger am Do 07.Dez, 2006 13:11, insgesamt 1-mal geändert.
- oxpus
- Administrator
- Beiträge: 28735
- Registriert: Mo 27.Jan, 2003 22:13
- Wohnort: Bad Wildungen
- Kontaktdaten:
Versuchs mal so:
Code: Alles auswählen
$Vikt = (!$Vikt) ? '' : ' AND vikt < ('" . $Vikt . "') AND vikt2 > ('" . $Vikt . "') ';
$result = mysql_query("SELECT DISTINCT * FROM maskinlista WHERE tillverkare LIKE ('" . $Tillverkare . "%') AND maskintyp LIKE ('" . $Maskintyp . "%') " . $Vikt . " ORDER BY tillverkare ASC");Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
- oxpus
- Administrator
- Beiträge: 28735
- Registriert: Mo 27.Jan, 2003 22:13
- Wohnort: Bad Wildungen
- Kontaktdaten:
Code: Alles auswählen
$Vikt_sql = (!$Vikt) ? '' : "AND vikt < $Vikt AND vikt2 > $Vikt";
$result = mysql_query("SELECT DISTINCT * FROM maskinlista WHERE tillverkare LIKE ('$Tillverkare%') AND maskintyp LIKE ('$Maskintyp%') $Vikt_sql ORDER BY tillverkare ASC");Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Es geht weiter
Ich habe nun ein paar verschiedene Typen: Bagger und Radlader.
Manche Zeilen sollen nur für Radlader angezeigt werden, manche nur für Bagger.
Ich habe das so gelöst:
Das ist natürlich weit entfernt von gut!
Wenn ich nämlich zwei Maschinen vergleiche, wird der Titel der Zeile zweimal angezeigt! Wenn ich drei vergleiche, wird der Titel dreimal angezeigt usw ...
Wie kann ich das beheben?
/Holger
Ich habe nun ein paar verschiedene Typen: Bagger und Radlader.
Manche Zeilen sollen nur für Radlader angezeigt werden, manche nur für Bagger.
Ich habe das so gelöst:
Code: Alles auswählen
<?php
$vergleich = (isset($HTTP_POST_VARS['vergleich'])) ? $HTTP_POST_VARS['vergleich'] : array();
$sql_where_ids = '';
if(sizeof($vergleich))
{
for ($i=0; $i<sizeof($vergleich); $i++)
{
$sql_where_ids .= ($sql_where_ids != '') ? ', ' . $vergleich[$i] : $vergleich[$i];
}
}
if ($sql_where_ids)
{
$sql_where_ids = ' WHERE id IN (' . $sql_where_ids . ') ';
}
$result = mysql_query("SELECT * FROM maskinlista $sql_where_ids ORDER BY id ASC");
while ($r = mysql_fetch_array($result))
{
if ($r['maskintyp'] != 'Hjullastare')
{
echo('<tr><td class="tdborder">Räckvidd</td>');
}
}
?>
<?php
$vergleich = (isset($HTTP_POST_VARS['vergleich'])) ? $HTTP_POST_VARS['vergleich'] : array();
$sql_where_ids = '';
if(sizeof($vergleich))
{
for ($i=0; $i<sizeof($vergleich); $i++)
{
$sql_where_ids .= ($sql_where_ids != '') ? ', ' . $vergleich[$i] : $vergleich[$i];
}
}
if ($sql_where_ids)
{
$sql_where_ids = ' WHERE id IN (' . $sql_where_ids . ') ';
}
$result = mysql_query("SELECT * FROM maskinlista $sql_where_ids ORDER BY id ASC");
while ($r = mysql_fetch_array($result))
{
if ($r['maskintyp'] != 'Hjullastare')
{
echo('<td class="tdborder">');
echo($r['raeckvidd']);
echo('m</td>');
}
else
{
echo('');
}
}
?>
</tr>
<?php
$vergleich = (isset($HTTP_POST_VARS['vergleich'])) ? $HTTP_POST_VARS['vergleich'] : array();
$sql_where_ids = '';
if(sizeof($vergleich))
{
for ($i=0; $i<sizeof($vergleich); $i++)
{
$sql_where_ids .= ($sql_where_ids != '') ? ', ' . $vergleich[$i] : $vergleich[$i];
}
}
if ($sql_where_ids)
{
$sql_where_ids = ' WHERE id IN (' . $sql_where_ids . ') ';
}
$result = mysql_query("SELECT * FROM maskinlista $sql_where_ids ORDER BY id ASC");
while ($r = mysql_fetch_array($result))
{
if ($r['maskintyp'] == 'Hjullastare')
{
echo('<tr><td class="tdborder">Tipplast rak/svängd</td>');
}
}
?>
<?php
$vergleich = (isset($HTTP_POST_VARS['vergleich'])) ? $HTTP_POST_VARS['vergleich'] : array();
$sql_where_ids = '';
if(sizeof($vergleich))
{
for ($i=0; $i<sizeof($vergleich); $i++)
{
$sql_where_ids .= ($sql_where_ids != '') ? ', ' . $vergleich[$i] : $vergleich[$i];
}
}
if ($sql_where_ids)
{
$sql_where_ids = ' WHERE id IN (' . $sql_where_ids . ') ';
}
$result = mysql_query("SELECT * FROM maskinlista $sql_where_ids ORDER BY id ASC");
while ($r = mysql_fetch_array($result))
{
if ($r['maskintyp'] == 'Hjullastare')
{
echo('<td class="tdborder">');
echo($r['tipplastrak']);
echo(' - ');
echo($r['tipplastsvaengd']);
echo('kg</td>');
}
else
{
echo('');
}
}
?>
</tr>Wenn ich nämlich zwei Maschinen vergleiche, wird der Titel der Zeile zweimal angezeigt! Wenn ich drei vergleiche, wird der Titel dreimal angezeigt usw ...
Wie kann ich das beheben?
/Holger
- oxpus
- Administrator
- Beiträge: 28735
- Registriert: Mo 27.Jan, 2003 22:13
- Wohnort: Bad Wildungen
- Kontaktdaten:
Mal eine Basis-Frage:
Warum fragst Du laufend die Angaben mehrfach mit eigenen Abfragen ab?
Ist mehr als unnötig und erschwert dazu auch die Korrektur.
Ich hatte das ja bereits mal erstellt.
Das solltest Du auch erst einmal umsetzen, damit es hier besser vorangeht...
Warum fragst Du laufend die Angaben mehrfach mit eigenen Abfragen ab?
Ist mehr als unnötig und erschwert dazu auch die Korrektur.
Ich hatte das ja bereits mal erstellt.
Das solltest Du auch erst einmal umsetzen, damit es hier besser vorangeht...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Huch?
Das habe ich mich auch schon öfters gefragt.
Es kann ja nicht sein, dass ich immer wieder abfragen muss. Ich hatte mal ein Version, da wurde nur der erste Satz dann angezeigt. Da bin ich wieder zu dieser Version zurück gegangen.
Ich schaue mir das nochmal an.
/H
Das habe ich mich auch schon öfters gefragt.
Es kann ja nicht sein, dass ich immer wieder abfragen muss. Ich hatte mal ein Version, da wurde nur der erste Satz dann angezeigt. Da bin ich wieder zu dieser Version zurück gegangen.
Ich schaue mir das nochmal an.
/H
Real men don’t back up, they learn data recovery. ;-)
http://www.mysqldumper.de
http://www.mysqldumper.se
http://www.mysqldumper.de
http://www.mysqldumper.se