Som besökare på Hamsterpaj samtycker du till användandet av s.k. cookies för att förbättra din upplevelse hos oss. Jag förstår, ta bort denna ruta!
Annons

Displayid sökare

Skapad av tok124, 2014-04-17 09:36 i Webbutveckling & Programmering

3 287
11 inlägg
0 poäng
tok124
Visningsbild
P 35 Hjälte 258 inlägg
0
Hej,

Jag skulle behöva något php/jquery script som ska selecta 2 columns från min databas.

Databas Info:
host: 127.0.0.1
user: root
pass: ascent

Table:
item_template

Columns:
displayid
name

De mäst liknande de jag söker som jag hittat är detta http://jsfiddle.net/tugrulorhan/fd8KB/1/

Queryn som ska köras från php ska se ut såhär

SELECT displayid, name FROM item_template WHERE name LIKE '%randomname%'

Så de ska asså finnas en textbox på sidan. När jag skriver något i textboxen så ska de komma upp ett table under med de jag sökte efter. Table ska inte synas innan man skrivit något i textboxen.

Är reklamen ivägen? Logga in eller registrera dig så försvinner den!

Tvillingen
Visningsbild
P 31 Hjälte 3 117 inlägg
0
Lär väl inte vara några större problem att snickra ihop det själv annars. Gör ett PHP-skript som tar emot POST eller GET-data och gör en sökning mot databasen och skickar tillbaka resultatet i passande format.

Javascriptkoden lägger du bara till ett event för när någon skriver i sökrutan och då tar du texter därifrån skickar den till ditt PHP-skript och behandlar resultatet.

Jag är ond!

tok124
Visningsbild
P 35 Hjälte 258 inlägg
Trådskapare
0

Svar till Tvillingen [Gå till post]:
Okej men asså jag fattar inte riktigt.

Har denna html kod:
Ett stycke html-kod:
<form acti method="POST">
Item Name: <input type="text" name="dispname">
</form>


Och denna php kod:
Ett stycke php-kod:
<?php
// Make a MySQL Connection
mysql_connect("127.0.0.1", "root", "ascent") or die(mysql_error());
mysql_select_db("world") or die(mysql_error());

// Get all the data from the "example" table
$escaped_string = mysql_real_escape_string($_POST['dispname']);
$result = mysql_query("SELECT displayid, name FROM item_template WHERE name LIKE '%$escaped_string%'")
or die(mysql_error());

echo "<table border='1'>";
echo "<tr> <th>DisplayID</th> <th>name</th> </tr>";
// keeps getting the next row until there are no more to get
while($POST = mysql_fetch_array( $result )) {
// Print out the contents of each row into a table
echo "<tr><td>";
echo $POST['displayid'];
echo "</td><td>";
echo $POST['name'];
echo "</td></tr>";
}

echo "</table>";
?>


Hur gör jag härifrån?
Tvillingen
Visningsbild
P 31 Hjälte 3 117 inlägg
0

Svar till tok124 [Gå till post]:
Ser ut som en bra start. Nu tittar du jQuery post eller get beroende på vad du vill använda. Finns bra exempel på hur dessa används så ska nog inte vara några större problem.

https://api.jquery.com/jQuery.post/
https://api.jquery.com/jQuery.get/

Här är ett exempel på för att hantera att fältet behöver uppdateras allt eftersom användaren skriver. Orkar inte skriva mer exempelkod än så just nu, men dokumentationen för jQuery visar allting utmärkt vilket som så.
http://jsfiddle.net/7qGk7/

Ett sista förslag är att skicka tillbaka datan från ditt PHP skript som JSON istället för att skriva ut all HTML direkt. Använd istället javascript till att lägga till fixa till tabellen. Slipper du skicka lika mycket data mellan klienten och servern och får lite snabbare svarstider.

Jag är ond!

tok124
Visningsbild
P 35 Hjälte 258 inlägg
Trådskapare
0

Svar till Tvillingen [Gå till post]:
Kan tyvär inte få detta att fungera :( Har försökt nu i minst 10 timmar. Har googlat och kollat runt och försökt hitta en lösning men får de endå inte att fungera. Om jag laddar upp min hemsida till min host skulle du då kunna logga in på min host och fixa det åt mig?

Jag gillar egentligen inte att be folk göra saker åt mig och speciellt inte gratis. Jag får själv hjälpa många gratis med SQL Scripts för sql är jag bra på och jag tycker själv att de är jobbigt att inte få betalat för de man gör. Så om du vill så kan jag skicka en liten donation åt dig så får du iaf något för det.

Tvillingen
Visningsbild
P 31 Hjälte 3 117 inlägg
0
Det här borde fungera och någon ersättning behövs då inte, det är lugnt.

Här är PHP-skriptet (handler.php), får du fixa till så att den tittar om det blir något fel i databasförfrågningarna också. Nu ändrade jag bara så den skickade tillbaka resultatet i JSON-format.
http://pastebin.com/pDi39s30

Här är javascript/jQuery delen. Bara byta ut handler.php till något annat namn på det skriptet.
http://pastebin.com/U7xJ5X0f

HTML, bara hur tabellen och sökfältet ser ut.
http://pastebin.com/Cw35E09n

Jag är ond!

tok124
Visningsbild
P 35 Hjälte 258 inlägg
Trådskapare
0

Svar till Tvillingen [Gå till post]:
Tack ! Jag tror att de funkar. Men sidan hakar typ upp sig när man börjar skriva nu. Vet inte om de beror på att de är för måna resultat. Men de kommer iaf en lista nu med alla displayID's men jag använder scroll på de fönstret och när man skriver så kan man inte scrolla. allt hakar upp sig typ. Men de måste vara på grund av att de är för många resultat. De är 38685 resultat som finns i hela databasen. Så de kanske inte är så konstigt att sidan hakar upp sig :P

tok124
Visningsbild
P 35 Hjälte 258 inlägg
Trådskapare
0
Men ah ^^ De funkar iaf nu. Resultaten kommer upp om man väntar en stund

Tillägg av tok124 2014-04-18 14:58

Kom på att de kanske blir bättre om man använder typ LIMIT 1000 i SQL Queryn i php koden så borde de inte haka upp sig

enthess
Visningsbild
P 35 Hjälte 2 inlägg
0

Svar till tok124 [Gå till post]:
Varför kör du en sökning på "LIKE" i din databas??
LIKE = '".$escaped_string."' ??

tok124
Visningsbild
P 35 Hjälte 258 inlägg
Trådskapare
0

Svar till enthess [Gå till post]:
De använder jag för att slippa skriva ett helt 100 % korrect namn. Använder man LIKE "%Name%"; i en SQL Query så kommer de upp resultat även om man bara skriver en bokstav

enthess
Visningsbild
P 35 Hjälte 2 inlägg
0

Svar till tok124 [Gå till post]:
Ok.
Du borde väl inte sätta in en limit . Vad händer om du får mer än 1000 i svar?

Gör det asynkront och en paging så blir det snabbare :)


Forum » Datorer & IT » Webbutveckling & Programmering » Displayid sökare

Ansvariga ordningsvakter:

Användare som läser i den här tråden just nu

1 utloggad

Skriv ett nytt inlägg

Hej! Innan du skriver om ett potentiellt problem så vill vi påminna dig om att du faktiskt inte är ensam. Du är inte onormal och världen kommer inte att gå under, vi lovar! Så slappna av och gilla livet i några minuter - känns det fortfarande hemskt? Skriv gärna ner dina tankar och frågor, vi älskar att hjälpa just dig!

Den här tråden är äldre än Rojks drömtjej!

Det senaste inlägget i den här tråden skrevs för över tre månader sedan. Är du säker på att du vill återuppliva diskussionen? Har du något vettigt att tillföra eller passar din fråga i en ny tråd? Onödiga återupplivningar kommer att låsas så tänk efter en extra gång!

Hjälp

Det här är en hjälpruta

Här får du korta tips och förklaringar om forumet. Välj kapitel i rullningslisten här ovanför.

Rutan uppdateras automagiskt

När du använder funktioner i forumet så visas bra tips här.


Annons
Annons
Annons
Annons