Ankündigung

Einklappen
Keine Ankündigung bisher.

Suche auf benutzer beschränken

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • amadeus75
    hat ein Thema erstellt Suche auf benutzer beschränken.

    Suche auf benutzer beschränken

    Hallo,

    habe folgendes script erstellt

    PHP-Code:

    <?php

    $host 
    "localhost";
    $user "*****";
    $password "*****";
    $database "*****";



    echo
    '<form id="form1" name="form1" method="post" action="'.$_SERVER['PHP_SELF'].'">
      <label>suche Beschreibung
        <input name="suchfeldcont" type="text" id="suchfeldcont" size="50" />
      </label>
          <input type="submit" name="suchen" id="suchen" value="Suchen" />

    </form>'
    ;

    $suche htmlspecialchars($_POST['suchfeldcont']);

    $db = new mysqli($host,$user,$password,$database);
    $sqlcont ="SELECT * FROM ***** WHERE cont LIKE '%$suche%' ORDER BY id DESC LIMIT 0,5";
    $resultcont $db->query($sqlcont);
    if(!
    $resultcont){
        die(
    $db->error);
    }
    while(
    $row $resultcont->fetch_assoc()){
        echo
    '<a href="index.php?d=login&id='.$row['id'].'">'.$row['id'].' - '.$row['titel'].' - '.$row['user'].' - '.$row['cont'].'</a>';
    }
    Wozu es dient erwähne ich kurz. Der User soll in einem Anzeigenscript seine eigenen Anzeigen wo er erstellt hat durch Eingabe bestimmter Suchbegriffe finden. Warum? Weil im moment alle anzeigen aufgelistet werden wenn man auf Anzeige bearbeiten klickt. Bei 300 Anzeigen ein kleines Problem. Ich habe es bisher soweit geschafft das der suchbgriff die Anzeige als Link erstellt und der kunde kann durch klick darauf in sein inserat rein gehen und das dann bearbeiten löschen etc.. kann das funktioiniert schon mal.

    Nun ist aber das Problem, das es wenn er wüsste/könnte/wollte auch alle anderen Anzeigen die in der DB drin sind durch die Suche finden kann. Ok er kann sie zwar nicht bearbeiten etc.. Aber trotzdem will ich net das er sie findet weil das könnte seine eigentliche suche beeinträchtigen und verwirren. Ich würde mich über ein paar Tipps freuen.

    Vielen Dank im Voraus

    Es gibt ein Problem, das wenn der User sich einloggt und dann eine Id seiner Anzeige eingibt um diese zu bearbeiten gibt keine Probleme nur im werden auch andere Suchbegriffe die die suche findet auch angezeigt. Er kann diese natürlich net ändern aber ich will das die überhaupt net ihm angezeigt werden, wie kann ich das machen ?

  • amadeus75
    antwortet
    Hallo,

    so habe nocheinmal daran getüfftelt. Habe nun das mit der $foo folgender maßen geregelt. Der user muss seine einen vorgegebenen Wert eingeben damit er nur seine Anzeigen sieht. Hier der code vorab.

    Da nun alle Anzeigen dieses users angezeigt werden, kann ich aber nicht mehr über die Suche in seinen Anzeigen suchen? Das verstehe ich nun widerrum nicht. Weiteres Problem ist wenn ich auf Suche klicke ist die variable $foo wieder weg und die angezeigten auch wieder, kann ich im Formular das value als Variable den wert zuweisen? oder gibt es eine andere Möglichkeit?

    Schln wäre es auch wenn die ergebnisse nach 30 anzeigen, diese nebeneinander angezeigt werden, weil wer will schon 300 zeilen oder mehr runter scrollen.

    Danke für die bisherigen antworten und wer kann bitte weiter helfen?

    PHP-Code:

    <?php

    $host 
    "localhost";
    $user "root_1";
    $password "";
    $database "db1";
    $foo $_POST['formlogin'];
    $foo1 $_POST['formlogin'];



    echo
    '<form id="form1" name="form1" method="post" action="inserieren.php">
      <label>email adresse eingeben
        <input name="formlogin" type="text" id="formlogin" size="50" value="dieser Wert sollte eine Variable sein ?!?"/>
      </label>
          <input type="submit" name="suchen" id="suchen" value="Suchen" />

    </form>'
    ;

    $suche htmlspecialchars($_POST['formlogin']);

    echo 
    $foo1;

    echo 
    $foo;

    echo
    '<form id="form1" name="form1" method="post" action="'.$_SERVER['inserieren.php'].'">
      <label>suche Beschreibung
        <input name="suchfeldcont" type="text" id="suchfeldcont" size="50" />
      </label>
          <input type="submit" name="suchen" id="suchen" />

    </form>'
    ;
    echo 
    $foo;



    $suche htmlspecialchars($_POST['suchfeldcont']);

    $db = new mysqli($host,$user,$password,$database);



    $sqlcont ="SELECT id, user, cont, kat, titel FROM markt_inserate_data WHERE user='$foo' && id LIKE '%$suche%' ORDER BY kat DESC LIMIT 0,250"
    $resultcont $db->query($sqlcont);
    if(!
    $resultcont){
        die(
    $db->error);
    }
    while(
    $row $resultcont->fetch_assoc()){
        echo
    '

    <table width="800" border="1">

      <tr>
        <td width="67"><ul><li><a href="index.php?d=login&id='
    .$row['id'].'">'.$row['id'].'</td>
        <td width="652">'
    .$row['titel'].'</td>

        
      </tr>
    </table>
        </a></li></ul>'
    ;
        }



    ?>

    Einen Kommentar schreiben:


  • mimomamu
    antwortet
    Zitat von amadeus75 Beitrag anzeigen
    in den DB ist der user in der spalte user und die Inserate id in der spalte id.
    Dann ist
    PHP-Code:
    $sqlcont ="
        SELECT id, title, user, cont
        FROM markt_inserate_data
        WHERE user='
    $foo'
        AND cont LIKE '%
    $suche%'
    "

    auf jeden Fall richtig und die einzige Frage, die noch bleibt, ist was soll für $foo eingesetzt werden. Dazu:

    Zitat von amadeus75 Beitrag anzeigen
    Der User soll ... seine eigenen Anzeigen ... finden.
    Woher weißt du, das eine Anzeige die eigene Anzeige des Users ist?

    Übirgens: SELECT * ist Scheiße.

    Einen Kommentar schreiben:


  • chorn
    antwortet
    Lass dir das Ding und die Fehlermeldung mal ausgeben
    Code:
    mysql_query( $sqlcont ) or die( $sqlcont . mysql_error() );
    Ist auch nicht klar was in dem Array überhaupt drinsteht.

    Einen Kommentar schreiben:


  • amadeus75
    antwortet
    hi

    PHP-Code:
    $sqlcont ="SELECT * FROM markt_inserate_data WHERE id='$usrd[id]' && cont LIKE '%$suche%' ORDER BY id DESC LIMIT 0,5"
    also hier bringt er zwar kein fehler, aber die suche spuckt keine ergebniss raus. in den DB ist der user in der spalte user und die Inserate id in der spalte id.

    Verstehe das grad irgendwie nicht?

    $usrd[id] - > auch so probiert $user auch so probiert user=$user id=$id

    Einen Kommentar schreiben:


  • BlackSpirit
    antwortet
    Hi,

    Ich denke mal du wirst jede Anzeige per ID o.ä. einen user zuweisen?
    Wenn ja, wieso nicht einfach:
    Code:
    SELECT * FROM ***** WHERE user='$user' && cont LIKE '%$suche%' ORDER BY id DESC LIMIT 0,5

    Einen Kommentar schreiben:

Lädt...
X