Sökfunktion och byta ut siffror mot text PHP/MySQL

Permalänk
Medlem

Sökfunktion och byta ut siffror mot text PHP/MySQL

Jag har idag en databas (bil_best) med en tabell (BestTable) där jag har följande information:

ID, ArtName, ArtNumber, CustName, CustContact, SupStatus, SupName, OrderOther och OrderDate.

Jag kommer återkomma till den här tråden, för jag lär vilja ha hjälp med en hel del angående det här.

Det jag börjar med att fråga är följande:

1. SupName har jag matat in siffror i. Jag vill att varje leverantör ska sparas som en siffra i databasen och det har jag lyckats med. Problemet är att när jag ska presentera innehållet i databasen så vill jag såklart formatera om siffrorna till ett namn. Exempel:

01 = 2020
02 = Order
03 = Brightpoint

Har kikat runt en hel del på nätet och det känns som att jag borde göra en array, men jag får villigt erkänna att jag inte har en aning om hur jag ska bygga upp den samt framförallt hur jag får den att fatta att jag ska hämta värdet ur databasen.

Idag ser det ut så här när jag presenterar listan:

<html> <head> <title>Lista ordrar</title> </head> <body> <table> <tr> <td>ID</td> <td>Artikelnummer</td> <td>Antal</td> <td>Namn</td> <td>Kontaktuppgifter</td> <td>Beställningsstatus</td> <td>Leverantör</td> <td>Datum</td> <td>Övrig information</td> </tr> <?php // Skapa kontakten till databasen mysql_connect ("localhost", "root", "losenord") or die ('Kan inte ansluta till databasen för att: ' . mysql_error()); mysql_select_db ("bil_best"); //Bygg query $query = mysql_query("SELECT * FROM BestTable"); if {$row['SupName'] = '01' //Visa resultat while ($row = mysql_fetch_array($query)) { echo "<tr> <td>".$row['ID']."</td> <td>".$row['ArtName']."</td> <td>".$row['ArtNumber']."</td> <td><a href='/singlepost.php=".$row['ID']."' title='Skriv ut ".$row['CustName']."'>".$row['CustName']."</a></td> <td>".$row['CustContact']."</td> <td>".$row['SupStatus']."</td> <td>".$row['SupName']."</td> <td>".$row['Date']."</td> <td>".$row['OrderOther']."</td></tr>";} ?> </table> </body> </html>

Så det jag vill göra är helt enkelt att byta ut $row['SupName'] mot ett faktiskt namn beroende på vilket värde som returneras från databasen.
Tycker ju att en sån sak vore väldigt enkel, men att hitta information om det för en ickeprogrammerare som jag är ju rena lögnen.

2. Sökfunktion/Sortering
Jag vill kunna söka i den här listan och enbart returnera resultat beroende på sökorden samt även kunna lista alla där t ex $SupStatus eller $SupName har ett givet värde.

Fritextsökningen bör söka i $ArtName, $CustName, $SupName, $Date och gärna $OrderOther.

Sen vill jag som sagt kunna lista via en dropdown enbart de som har t ex $SupStatus = 02 eller $SupName = 01.

Jag tror att det skulle räcka långt i det här fallet. Någon mer sortering ska nog inte behövas än så länge.

Problemet för mig är att hur mycket jag än söker så hittar jag nästan bara hur man ställer frågorna till databasen, men inte hur jag gör det dynamiskt via ett formulär. Det är som att man nästan når målet men inte kommer över mållinjen. Något störande.

EDIT: Det behöver INTE vara någon AJAX-lösning eller liknande. Det går alldeles utmärkt om det är ett helt vanligt formulär med en submit-knapp.

Permalänk
Inaktiv

1: Skapa en till tabell där du har två kolumner, en för siffran (supid) och namnet (supname) du vill byta ut den mot. Sen gör du något sånthär:

SELECT `BestTable`.*, `tb_supplier`.`supname` FROM `BestTable` INNER JOIN `tb_supplier` ON `BestTable`.`SupName` = `tb_supplier`.`supid`

Den kommer då lägga till kolumnen supname i resultatet. Supname är då namnet på suppliern (?) som har samma supid som SupName har i BestTable.

Hoppas det är förståeligt.

För 2an får du titta på LIKE.

Permalänk
Medlem
Skrivet av anon150287:

1: Skapa en till tabell där du har två kolumner, en för siffran (supid) och namnet (supname) du vill byta ut den mot. Sen gör du något sånthär:

SELECT `BestTable`.*, `tb_supplier`.`supname` FROM `BestTable` [b]INNER JOIN `tb_supplier` ON `BestTable`.`SupName` = `tb_supplier`.`supid`[b]

Den kommer då lägga till kolumnen supname i resultatet. Supname är då namnet på suppliern (?) som har samma supid som SupName har i BestTable.

Hoppas det är förståeligt.

För 2an får du titta på LIKE.

Hehe, ursäkta men: Say what now?

Ah... helt enkelt hämta in en ny tabell från servern? Det är ju smart iofs, då blir det mer dynamiskt om jag vill lägga till leverantörer.

Då skulle jag få nånting i stil med:

$SupRealName = mysql_query(SELECT `BestTable`.*, `tb_supplier`.`supname` FROM `BestTable` [b]INNER JOIN `tb_supplier` ON `BestTable`.`SupName` = `tb_supplier`.`supid`[b]);

Där BestTable egentligen borde vara SupTable... ska väl inte blanda in det där i min befintliga tabell, då blir det ju bökigt.

Och då borde jag kunna ersätta $row['SupName'] med $row['SupRealName'] eller snurrar jag till allting nu?

Vad är förresten [b]?

Permalänk
Inaktiv

[b] var till för att det skulle bli fet text, men det funkar visst inte i [code].
Ser inte SupRealName någonstans i querien, men om kolumnen har det namnet ja.

Permalänk
Medlem
Skrivet av anon150287:

1: Skapa en till tabell där du har två kolumner, en för siffran (supid) och namnet (supname) du vill byta ut den mot. Sen gör du något sånthär:

SELECT `BestTable`.*, `tb_supplier`.`supname` FROM `BestTable` INNER JOIN `tb_supplier` ON `BestTable`.`SupName` = `tb_supplier`.`supid`

Den kommer då lägga till kolumnen supname i resultatet. Supname är då namnet på suppliern (?) som har samma supid som SupName har i BestTable.

Hoppas det är förståeligt.

För 2an får du titta på LIKE.

Det blir en 1:1- relation. Är det inte bättre att lägga kolumnen i samma tabell som originalid tycker du?

Skickades från m.sweclockers.com

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Inaktiv
Skrivet av Teknocide:

Det blir en 1:1- relation. Är det inte bättre att lägga kolumnen i samma tabell som originalid tycker du?

Skickades från m.sweclockers.com

Så som jag förstod det så kan flera rader ha samma supplier. Men det är sant, beror ju lite på hur det ska användas.

Permalänk
Medlem

Ja, tanken är att varje rad ska kunna ha en supplier och de ska kunna ha samma supplier.

EDIT: Har haft grymma problem med att hitta var jag kan läsa om saker som t ex att skicka en förfrågan via en länk med php.

Säg t ex att jag vill att användaren när denne klickar på en länk skickar en förfrågan till en php-sida som sedan använder informationen i länken till att göra nånting.

T ex kommer jag vilja skapa länkar för varje rad. Om man klickar på en länk så ska man få upp innehållet i bara den posten på en ny sida med annan formatering. Men att hitta bra guider om sånt... förmodligen söker jag på helt fel saker. Så har ni några bra tips på länkar så tar jag gärna emot dem.