mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 19.04.2024 23:28 Benutzername: Passwort: Auto-Login

Thema: [PHP] Suchabfrage-Problem vom 07.10.2005


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> [PHP] Suchabfrage-Problem
Autor Nachricht
Evil_RS
Threadersteller

Dabei seit: 05.05.2003
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Fr 07.10.2005 15:21
Titel

[PHP] Suchabfrage-Problem

Antworten mit Zitat Zum Seitenanfang

Hallo,

ich soll für einen Kumpel ein Minishop zusammenbasteln. Ich bin jetzt aber nicht der Programmiergott und habe einen einfach anzupassenden Shop (Php/MySql) von Hotscripts gezogen. Bisher war auch alles relativ schmerzfrei. Aber jetzt habe ich ein kleines Problem mit der Suche. Vielleicht kann mir jemand weiterhelfen. Das Problem ist, wenn ich einen Artikel suche (Eingabe Beschreibungstext, oder Name), dann wird dieser angezeigt. ABER: wenn der Suchtext in einem anderen Artikel ebenfalls drinsteht, dann erscheint der erste Artikel mit dem Suchtext doppelt in der Ausgabe und der zweite Artikel erscheint gar nicht?!? Hmmm...schwierig zu erklären Menno!

Die Abfrage lautet:
Code:
    <?
  }

  if (!isset($az)) $az = "0";

  $result = mysql_query("select name , beschreibung , artikelnummer, variante1 , variante2 , id , preis , status from ".$PREFIX."_Artikel where beschreibung like '%".strtolower($search)."%' OR artikelnummer like '%".strtolower($search)."%' OR name like '%".strtolower($search)."%' order by artikelnummer");
  while ($row = mysql_fetch_object($result))
     {
      $id           = $row->id;
      $name         = $row->name;
      $artikelnummer  = $row->artikelnummer;
      $beschreibung   = $row->beschreibung;
      $preis        = $row->preis;
      $status       = $row->status;
      $variante1       = $row->variante1;
      $variante2       = $row->variante2;

      if (!isset($id_a)) $id_a = array($id);
      else array_push($id_a,$id);

      if (!isset($name_a)) $name_a = array($name);
      else array_push($name_a,$name);

      if (!isset($beschreibung_a)) $beschreibung_a = array($beschreibung);
      else array_push($beschreibung_a,$beschreibung);

      if (!isset($artikelnummer_a)) $artikelnummer_a = array($artikelnummer);
      else array_push($artikelnummer_a,$artikelnummer);

      if (!isset($preis_a)) $preis_a = array($preis);
      else array_push($preis_a,$preis);

      if (!isset($status_a)) $status_a = array($status);
      else array_push($status_a,$status);

      if (!isset($variante1_a)) $variante1_a = array($variante1);
      else array_push($variante1_a,$variante1);

      if (!isset($variante2_a)) $variante2_a = array($variante2);
      else array_push($variante2_a,$variante2);

      $az++;
   }

  if (!$az)
     {

   ?>


Vielleicht kann mir jemand weiterhelfen, da ich irgendwie auf dem Schlauch stehe. Wenn nicht, wünsche ich trotzdem allen ein schönes Wochenende Lächel
  View user's profile Private Nachricht senden
beo

Dabei seit: 13.07.2005
Ort: -
Alter: -
Geschlecht: -
Verfasst Fr 07.10.2005 16:19
Titel

Antworten mit Zitat Zum Seitenanfang

kannst du denn noch den Code von der Ausgabe geben?

Ich denke ich kann mir denken woran es liegen könnte.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
tucow

Dabei seit: 25.11.2004
Ort: Düsseldorf
Alter: -
Geschlecht: Männlich
Verfasst Fr 07.10.2005 23:46
Titel

Antworten mit Zitat Zum Seitenanfang

jo kann beo nur recht geben, wird an der ausgabe liegen.. die for... anweisung wird einen fehler haben und nur einen artikel ausgeben und das so oft wie der such string gefunden wurde
  View user's profile Private Nachricht senden
Evil_RS
Threadersteller

Dabei seit: 05.05.2003
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mo 10.10.2005 13:19
Titel

Antworten mit Zitat Zum Seitenanfang

Erst mal vielen Dank für die schnellen Antworten! Lächel
Der restliche Code sieht so aus:
Code:
 if (!$az)
     {

   ?>
    <tr>
      <td bgcolor="<? echo $TABLE_COLOR2 ?>" height="50" colspan="2"><font size="<? echo $FONTSIZE_NORMAL ?>">&nbsp;&nbsp;Es
          wurde kein Produkt gefunden</font> </td>
    </tr>
    <?
  }
  else
  {
  ?>
    <tr>
      <td bgcolor="<? echo $TABLE_COLOR2 ?>" height="20" colspan="2">&nbsp;
          <table border="0" cellpadding="0" cellspacing="0" width="98%" align="center">
            <tr bgcolor="<? echo $TABLE_COLOR2 ?>">
              <td height="40" colspan="2"><b><font size="<? echo $FONTSIZE_NORMAL ?>">Artikel</font></b></td>
              <td width="120" height="40">
                <div align="right"><b><font size="<? echo $FONTSIZE_NORMAL ?>">Einzelpreis</font></b></div>
              </td>
              <td width="60" height="40">
                <div align="center"><b><font size="<? echo $FONTSIZE_NORMAL ?>">Menge</font></b></div>
              </td>
              <td width="45" height="40">
                <div align="center"><b></b></div>
              </td>
            </tr>
            <?
      $ds_anzahl_plus = $get_vars['start'] + $ds_anzahl;
      if ($ds_anzahl_plus > $az) $ds_anzahl_plus = $az;
        for ($i=$get_vars['start']; $i< $ds_anzahl_plus; $i++)
        {
        ?>
            <form name="form1" method="post" action="warenkorb_insert.php?id=<? echo $id_a[$i] ?>&search=<? echo $search ?>&start=<? echo $get_vars['start'] ?>&nr=<? echo $get_vars['nr'] ?>">
              <?php if ($IMAGE_KAT == 1) { ?>
              <tr bgcolor="<? echo $TABLE_COLOR2 ?>">
                <td height="24" width="60"> <a href="details.php?id=<? echo $id_a[$i] ?>&search=<? echo $search ?>&start=<? echo $get_vars['start'] ?>&nr=<? echo $get_vars['nr'] ?>"> <img src="images/artikel/<?php echo $id_a[$i] ?>.jpg" width="50" border="0"></a></td>
                <td height="24"> <font size="<? echo $FONTSIZE_NORMAL ?>"> <a href="details.php?id=<? echo $id_a[$i] ?>&search=<? echo $search ?>&start=<? echo $get_vars['start'] ?>&nr=<? echo $get_vars['nr'] ?>"> </a><a href="details.php?id=<? echo $id ?>&kategorie=<? echo $get_vars['kategorie'] ?>&main_kat=<? echo $get_vars['main_kat'] ?>&start=<? echo $get_vars['start'] ?>&nr=<? echo $get_vars['nr'] ?>"><? echo $name ?> </a> </font> <font size="<? echo $FONTSIZE_NORMAL ?>">&nbsp;</font> <br>
                  <span class="ueberschriften">Art.-Nr. <? echo $artikelnummer ?><br>
                  <? echo $beschreibung ?> </span><font size="<? echo $FONTSIZE_NORMAL ?>"><a href="details.php?id=<? echo $id_a[$i] ?>&search=<? echo $search ?>&start=<? echo $get_vars['start'] ?>&nr=<? echo $get_vars['nr'] ?>"><br>
                </a></font> </td>
                <td width="120" height="24" valign="top" bgcolor="<? echo $TABLE_COLOR2 ?>">
                  <div align="right"> <font size="<? echo $FONTSIZE_NORMAL ?>">
                    <input type="hidden" name="variante1" value="<? echo $variante1_a[$i]?>">
                    <input type="hidden" name="variante2" value="<? echo $variante2_a[$i] ?>">
                    <? echo number_format($preis_a[$i],2,",",".");?> <? echo $waehrung ?> &nbsp; &nbsp;&nbsp; </font></div>
                </td>
                <td width="60" height="24">
                  <div align="center">
                    <input name="menge" type="text" class="ueberschriften" value="1" size="3" maxlength="3">
                  </div>
                </td>
                <td width="45" height="24" valign="top" bgcolor="<? echo $TABLE_COLOR2 ?>">
                  <div align="center">
                    <input type=image src="images/kaufen.gif" border ="0" alt="bestellen" name="image2">
                  </div>
                </td>
              </tr>
              <tr bgcolor="<? echo $TABLE_COLOR2 ?>">
                <td height="15" colspan="5">&nbsp;</td>
              </tr>
              <?php } else { ?>
              <tr bgcolor="<? echo $TABLE_COLOR2 ?>">
                <td height="15" colspan="2"> <a href="details.php?id=<? echo $id_a[$i] ?>&search=<? echo $search ?>&start=<? echo $get_vars['start'] ?>&nr=<? echo $get_vars['nr'] ?>"> </a> <font size="<? echo $FONTSIZE_NORMAL ?>"> <a href="details.php?id=<? echo $id_a[$i] ?>&search=<? echo $search ?>&start=<? echo $get_vars['start'] ?>&nr=<? echo $get_vars['nr'] ?>"> <? echo $name_a[$i] ?> </a></font> </td>
                <td width="120" height="15" valign="top" bgcolor="<? echo $TABLE_COLOR2 ?>">
                  <div align="right"> <font size="<? echo $FONTSIZE_NORMAL ?>">
                    <input type="hidden" name="variante1" value="<? echo $variante1_a[$i]?>">
                    <input type="hidden" name="variante2" value="<? echo $variante2_a[$i] ?>">
                  <? echo number_format($preis_a[$i],2,",",".");?> <? echo $waehrung ?> &nbsp; &nbsp;&nbsp; </font></div>
                </td>
                <td width="60" height="15" valign="top" bgcolor="<? echo $TABLE_COLOR2 ?>">
                  <div align="center">
                    <input name="menge" type="text" class="ueberschriften" value="1" size="3" maxlength="3">
                  </div>
                </td>
                <td width="45" height="15" valign="top" bgcolor="<? echo $TABLE_COLOR2 ?>">
                  <div align="center">
                    <input type=image src="images/kaufen.gif" border ="0" alt="bestellen" name="image2">
                  </div>
                </td>
              </tr>
              <?php } ?>
            </form>
            <?php } ?>
            <tr bgcolor="<? echo $TABLE_COLOR2 ?>">
              <td height="10" colspan="5">&nbsp;</td>
            </tr>
            <tr bgcolor="<? echo $TABLE_COLOR2 ?>">
              <td height="10" colspan="3"> <font size="<? echo $FONTSIZE_NORMAL ?>">Seite:
                    <?php

         $num = $az;

         if ($num > $ds_anzahl)
         {
            $seiten = $num / $ds_anzahl;
            $seiten = ceil($seiten);

            $i = ($get_vars['start'] / $ds_anzahl) -1;
            if ($i < 1)
            {
               $i = 1;
               $get_vars['next_start'] = 0;
            }
            else $get_vars['next_start'] = $get_vars['start'] - (2 * $ds_anzahl);

            if (($seiten - $i) >= 5) $seiten1 = $i + 4 ;
            else $seiten1 = $seiten;
            if ($i >= 2)  echo "<a href='suche_details.php?search=$search&start=0&nr={$get_vars['nr']}'>1</a> &nbsp;...&nbsp; ";

               for ($i; $i<= $seiten1; $i++)
               {
                  if ($get_vars['next_start'] == $get_vars['start']) echo "<b><a href='suche_details.php?search=$search&start={$get_vars['next_start']}&nr={$get_vars['nr']}'>[ $i ]</a></b> ";
                  else echo "<a href='suche_details.php?search=$search&start={$get_vars['next_start']}&nr={$get_vars['nr']}'>$i</a> ";
                  $get_vars['next_start'] = $get_vars['next_start'] + $ds_anzahl;
               }
            $endstart = ($seiten - 1) * $ds_anzahl;
            if (($i-1) < $seiten)  echo " &nbsp;...&nbsp; <a href='suche_details.php?search=$search&start=$endstart&nr={$get_vars['nr']}'>$seiten</a>";

         }
         else echo "<b><a href='suche_details.php?search=$search&start=0&nr={$get_vars['nr']}'>[ 1 ]</a></b>";
         ?>
              </font> </td>
              <td height="10" colspan="2">
                <div align="right"><font size="<? echo $FONTSIZE_NORMAL ?>"> <? echo $num ?> Artikel</font></div>
              </td>
            </tr>
            <tr bgcolor="<? echo $TABLE_COLOR2 ?>">
              <td height="10" colspan="5">&nbsp;</td>
            </tr>
          </table>
      </td>
    </tr>
    <?
      }
      ?>


Wäre super, wenn mir da jemand weiterhelfen könnte. Danke schonmal im voraus.
  View user's profile Private Nachricht senden
Evil_RS
Threadersteller

Dabei seit: 05.05.2003
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Do 13.10.2005 15:30
Titel

Antworten mit Zitat Zum Seitenanfang

*hu hu huu* *schieb*
  View user's profile Private Nachricht senden
 
Ähnliche Themen Formmailer-Problem-neues problem
CSS & DIV Problem
IE 8 Problem
CMM Problem
css Problem mit dem IE
<div> Problem
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.