I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
og ret din mysq_query til: $result=mysql_query("select navn, pris, year from Bordeaux, Languedoc where navn like '%$_POST[search]%' OR pris like '%$_POST[search]%'") or die(mysql_error());
Kunne det evt. være fordi at tabelnavnene hedder det samme? Det vil være meget nemmere at sige, hvis du viser os den fejl som du får ved en udskrivning af mysql_error(), som Dennismp skriver.
Problemet er lige pt, at mysql kan ikke finde ud af om du mener "navn" fra den ene eller anden tabel. Men hvis vi skal slå dem sammen så kommer du uden om det problem.
og jeg er frisk på at slå dem sammen, men jeg er altså langt fra en haj. Jeg sætter gerne point op til 200 og du kan få de andre 200 fra det andet spørgsmål hvis du gerne vil have dem.
jeg kan ikke ændre den, da db'en bliver brugt. Så jeg laver en ny, men hvad bliver denne lini brugt til ALTER TABLE vine ADD type enum('Bordeaux','Languedoc') default 'Bordeaux';?
"ATLER TABLE ..." ændre på tabellen vine hvor den tilføjer en ny kolonne (der hedder type) som kan have to værdier; Bordeaux eller Languedoc.. Den defaulter til Bordeaux.
Det behøver heller ikke have en default. Du kan sætte den til hvad det nu skulle være - eller fjerne "default 'Bordeaux'" helt - så den ikke har en default.
ALTER TABLE `vine` ADD `type` ENUM NOT NULL , ADD `subtype` ENUM NOT NULL
MySQL returnerede:
#1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'NOT NULL, ADD `subtype` ENUM NOT NULL' at line 1
Enum er en felt der kun kan indeholder hvad du angiver.
ENUM('værdi1','værdi2')
altså værdi1 eller værdi2.
Men når du siger at du har 100+ vine så ville det være bøvlet. Så ville jeg nok lave en tabel der hed vintype (id og navn) og så i vine have et vin_type_id..
fx
vin_type: id=1 navn=Bordeaux id=2 navn=Languedoc
og så i vine har du så id=1 navn='Viné de smagergodt', pris=200 ... vin_type_id=1
Det kræver så at vine får et ekstra felt: ALTER TABLE `vine` ADD `vin_type_id` INT NOT NULL;
når du så skal vise vinenene så skrive du select i stil med SELECT vt.navn, v.* FROM vine_type vt, vine v WHERE vt.id = v.vin_type_id;
jeg vil gerne se koden (gerne den while-løkke som printer rækkerne ud til websiden) - jeg går ud fra at du ikke har rettet i sql'en udover det vi har snakket om her.
tilbage til det, det hele drejet sig om........søgning.
jeg har nu 2 tabeller, den ene med vin typer, og den anden med vine.
jeg har lavet en søgning som virker fint med navne. MEN jeg ville jo gerne kunne søge på typer og de så alle (under den type) blev listet på siden.
Denne her virker fint med navne og pris.
$result=mysql_query("select navn, pris, year from vine where navn like '%$_POST[search]%' OR pris like '%$_POST[search]%' " ) or die(mysql_error());; if(mysql_num_rows($result)>0){ while ($res=mysql_fetch_array($result)){ ?>
lidt ned kommer <tr> <td class="sortiment"><?php echo $res["navn"]; ?> </td> <td class="sortiment"><?php echo $res["year"]; ?></td> <td class="sortiment"><?php echo $res["pris"]; ?>,-</td> </tr><?}?>
Nu ville jeg så gerne have at hvis man søger på Alsace, så kom alle de vine der har Alsace's ID nummer frem på siden.
SELECT v.navn, v.pris, v.year FROM vine v, vine_type vt WHERE v.vin_type_id = vt.id AND vt.navn = 'Bordeaux' AND (v.navn LIKE '%$_POST[search]%' OR v.pris LIKE '%$_POST[search]%')
Rettet lidt til, men den viser intet hvis man søger på typer.
SELECT v.navn, v.pris, v.year FROM vine v, vintype vt WHERE v.vin_type_id = vt.Id AND vt.vin_type = 'Bordeaux' AND (v.navn LIKE '%$_POST[search]%' OR v.pris LIKE '%$_POST[search]%')
prøv at tilføje det.. nu burde den da vise en del række (hvis ikke alle).. Hvis det virker, så prøv at skrive en realistisk søgeord.. stadig phpmyadmin
<? $result=mysql_query("SELECT v.navn, v.pris, v.year FROM vine v, vintype vt WHERE v.vin_type_id = vt.Id AND vt.vin_type = 'Bordeaux' AND (v.navn LIKE '%$_POST[search]%' OR v.pris LIKE '%$_POST[search]%') " ) or die(mysql_error());; if(mysql_num_rows($result)>0){ while ($res=mysql_fetch_array($result)){
Ah. Nu tror jeg ved hvad du vil og hvad der går galt :)... Jeg har også
$search = $_POST['search']; // brug addslashes() hvis der er behov for det
$result=mysql_query("SELECT v.navn, v.pris, v.year FROM vine v, vintype vt WHERE v.vin_type_id = vt.Id AND vt.vin_type = '$search' AND (v.navn LIKE '%$search%' OR v.pris LIKE '%$search%') " ) or die(mysql_error());
AND vt.vin_type = '$search' kan du evt lave om til AND vt.vin_type LIKE '%$search%'
hvis du prøver at søge på "' og så se om du får en sql fejl. Hvis du gør, skal du bruge $search = addslashes($_POST['search']); .. hvis ikke, så er din php konfigureret til at gøre dette for dig.
engang at indsætte rette koden til: $result=mysql_query($sql="SELECT v.navn, v.pris, v.year FROM vine v, vintype vt WHERE v.vin_type_id = vt.Id AND vt.vin_type = '$search' AND (v.navn LIKE '%$search%' OR v.pris LIKE '%$search%') " ) or die(mysql_error()); print "SQL: $sql<br>";
prøv så at søge igen og skrive det SQL her, så vi kan se hvordan sql'en ser ud.
<? $result=mysql_query($sql="SELECT v.navn, v.pris, v.year FROM vine v, vintype vt WHERE v.vin_type_id = vt.Id AND vt.vin_type = '$search' AND (v.navn LIKE '%$search%' OR v.pris LIKE '%$search%') " ) or die(mysql_error()); print "SQL: $sql<br>";
if(mysql_num_rows($result)>0){ while ($res=mysql_fetch_array($result)){
SQL: SELECT v.navn, v.pris, v.year FROM vine v, vintype vt WHERE v.vin_type_id = vt.Id AND vt.vin_type = 'alsace' AND (v.navn LIKE '%alsace%' OR v.pris LIKE '%alsace%')
ret til: $result=mysql_query($sql="SELECT v.navn, v.pris, v.year FROM vine v, vintype vt WHERE v.vin_type_id = vt.Id AND (vt.vin_type = '$search' OR (v.navn LIKE '%$search%' OR v.pris LIKE '%$search%')) " ) or die(mysql_error());
har du/kender noget til en php email liste? Man skal kunne tilføje/framelde sig og sende email ud til dem der er på en liste.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.