Permalänk

MySQL Vad är felet?

Har denna koden och meningen är att den ska söka i databasen men får inte fram något. Vad är felet????

<form action="byggdator.php" method="post"> Socket Krav: <input type="text" name="MoboKrav" /> <input type="submit" /> </for

m

<?php $con = mysql_connect("*******","*********","***"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("orienteraren_se", $con); $Mobokrav = $_POST['MoboKrav']; $row = mysql_query("SELECT * FROM Mobo WHERE Socket = '%$MoboKrav%'"); while($result = mysql_fetch_array($row)) { echo $result['Socket']; } ?>

Visa signatur

Chassi: FD Define R4 / Mobo: Gigabyte MSI Z87-G45 / CPU: Intel Core i7-4770K / RAM: 8GB Corsair Vengeance LP / HDD: 1TB WD Caviar Blue / SSD: 240GB Samsung 850 PRO / GPU: Sapphire R9 280X 3GB / Nätagg: FD Integra R2 650W

Permalänk

prova hårdkodat, t.ex

$row = mysql_query("SELECT * FROM Mobo WHERE Socket = 1156");

och prova att echo'a ut $Mobokrav

för att se om den variabeln faktiskt innehåller nått.

Visa signatur

| HAF932 | Ryzen 3700X @ 4,3 GHz | Gigabyte X570 Aorus Ultra | 32 GB G.Skill @ 3600 MHz | RTX 2070 @ 2 GHz | O2 + ODAC | MP600 1TB + 2x 2TB RAID 1 + 2x 2TB RAID 1 | Win10 Pro 64-bit |

Permalänk
Skrivet av Devildoll:

prova hårdkodat, t.ex

$row = mysql_query("SELECT * FROM Mobo WHERE Socket = 1156");

och prova att echo'a ut $Mobokrav

för att se om den variabeln faktiskt innehåller nått.

Japp, det finns i tabellen. Men när jag söker kommer det inget

Visa signatur

Chassi: FD Define R4 / Mobo: Gigabyte MSI Z87-G45 / CPU: Intel Core i7-4770K / RAM: 8GB Corsair Vengeance LP / HDD: 1TB WD Caviar Blue / SSD: 240GB Samsung 850 PRO / GPU: Sapphire R9 280X 3GB / Nätagg: FD Integra R2 650W

Permalänk
Medlem

ta bort % då det inte används vid = utan vid LIKE
t.ex:
select * from table where id = '123'
select * from table where id LIKE '%123%'

(Om nu inte det har ändrats sen jag använde mysql)

Permalänk
Medlem
Skrivet av jonke:

ta bort % då det inte används vid = utan vid LIKE
t.ex:
select * from table where id = '123'
select * from table where id LIKE '%123%'

(Om nu inte det har ändrats sen jag använde mysql)

Det låter helt korrekt. Bort med procenttecknen så borde det gå bättre.

Nu letar den nog efter "%värdetpåvariabeln%" istället för bara "värdetpåvariabeln".

Permalänk

Tack! Märkte det nu, så nu funkar det

Visa signatur

Chassi: FD Define R4 / Mobo: Gigabyte MSI Z87-G45 / CPU: Intel Core i7-4770K / RAM: 8GB Corsair Vengeance LP / HDD: 1TB WD Caviar Blue / SSD: 240GB Samsung 850 PRO / GPU: Sapphire R9 280X 3GB / Nätagg: FD Integra R2 650W

Permalänk
Medlem

Som notis kan tilläggas att ingen variabel ersättning sker inom '$minvariable' utan detta endast sker inom "$minvariable" till exempel.

<?PHP /* du skulle kunna göra så här */ $minVar = 'testa'; /* $minVar skrivs ut men ingen ersättning */ echo('$minVar'); /* innehållet i $minVar skrivs ut */ echo($minVar); /* här skrivs innehållet i $minVar ut på den plats där vi avser. */ echo('Jag vill bara ' . $minVar . ' denna kod!'); /* här sker ersättning som förväntat. */ echo("jag vill även $minVar att detta fungerar!"); ?>

Ta även en titt på dokumentationen:
http://www.php.net/manual/en/language.variables.basics.php

Det är för övrigt riktigt händigt att ha den till hands när man programmerar PHP.

Tillägg av kod exempel
Visa signatur

Fractal Design Arc Svart | MSI Z68A-GD55 G3 REV B3 | Intel® Core i7 2600K, 3.4GHz, 8MB | Corsair 16GB (4x4096MB) CL9 1600Mhz VENGEANCE LP | MSI GeForce GTX 670 | Phanteks PH-TC14PE CPU Cooler (vit) | Corsair Power Supply 650W TX M, Modular, ATX, PS/2 | SSD (okänd tillverkare) + 2 äldre SATA2 diskar på 750 Gb, 350 gb. | OS: Microsoft Windows 10 home.

Permalänk
Skrivet av BlueEyes:

Som notis kan tilläggas att ingen variabel ersättning sker inom '$minvariable' utan detta endast sker inom "$minvariable" till exempel.

<?PHP /* du skulle kunna göra så här */ $minVar = 'testa'; /* $minVar skrivs ut men ingen ersättning */ echo('$minVar'); /* innehållet i $minVar skrivs ut */ echo($minVar); /* här skrivs innehållet i $minVar ut på den plats där vi avser. */ echo('Jag vill bara ' . $minVar . ' denna kod!'); /* här sker ersättning som förväntat. */ echo("jag vill även $minVar att detta fungerar!"); ?>

Ta även en titt på dokumentationen:
http://www.php.net/manual/en/language.variables.basics.php

Det är för övrigt riktigt händigt att ha den till hands när man programmerar PHP.

Tack så mycket Tyvärr nytt problem nu Kan inte göra en dropdownlista. När jag gör den så kommer båda två sakerna i databasen på en, alltså efter varanda. Så skrivs inte ut var för sig. Vad gör man för fel?

Visa signatur

Chassi: FD Define R4 / Mobo: Gigabyte MSI Z87-G45 / CPU: Intel Core i7-4770K / RAM: 8GB Corsair Vengeance LP / HDD: 1TB WD Caviar Blue / SSD: 240GB Samsung 850 PRO / GPU: Sapphire R9 280X 3GB / Nätagg: FD Integra R2 650W

Permalänk
Medlem
Skrivet av jonataan.host:

Tack så mycket Tyvärr nytt problem nu Kan inte göra en dropdownlista. När jag gör den så kommer båda två sakerna i databasen på en, alltså efter varanda. Så skrivs inte ut var för sig. Vad gör man för fel?

Du får ge oss lite kod som har med problem området att göra så kan vi lättare försöka hjälpa dig

Klipp ut och lägg inom:

[php]
[/php ]

Utan mellanrummen i taggarna

Så vi ser bättre.

mvh, BlueEyes

Visa signatur

Fractal Design Arc Svart | MSI Z68A-GD55 G3 REV B3 | Intel® Core i7 2600K, 3.4GHz, 8MB | Corsair 16GB (4x4096MB) CL9 1600Mhz VENGEANCE LP | MSI GeForce GTX 670 | Phanteks PH-TC14PE CPU Cooler (vit) | Corsair Power Supply 650W TX M, Modular, ATX, PS/2 | SSD (okänd tillverkare) + 2 äldre SATA2 diskar på 750 Gb, 350 gb. | OS: Microsoft Windows 10 home.

Permalänk
Skrivet av BlueEyes:

Du får ge oss lite kod som har med problem området att göra så kan vi lättare försöka hjälpa dig

Klipp ut och lägg inom:

[php]
[/php ]

Utan mellanrummen i taggarna

Så vi ser bättre.

mvh, BlueEyes

mysql_select_db("orienteraren_se", $con); $MoboKrav = $_POST['MoboKrav']; $row = mysql_query("SELECT * FROM Mobo"); while($result = mysql_fetch_array($row)) { $options.= $result['Socket']; } ?> <SELECT NAME=thing> <OPTION VALUE=0> <?=$options?> </SELECT>

Visa signatur

Chassi: FD Define R4 / Mobo: Gigabyte MSI Z87-G45 / CPU: Intel Core i7-4770K / RAM: 8GB Corsair Vengeance LP / HDD: 1TB WD Caviar Blue / SSD: 240GB Samsung 850 PRO / GPU: Sapphire R9 280X 3GB / Nätagg: FD Integra R2 650W

Permalänk
Medlem

Du konstruerar din dropdown fel i HTML koden:

en basic dropdown ser ut så här:

<select name="namn" size=1> <option value="varde">Titel för värder</option> <option value="varde2">Titel för värder</option> <option value="varde3">Titel för värder</option> </select>

Läs mer om select taggen på Mozilla Developer som för övrigt är en bra referens till allt möjligt:
https://developer.mozilla.org/en-US/docs/HTML/Element/select
https://developer.mozilla.org/

Visa signatur

Fractal Design Arc Svart | MSI Z68A-GD55 G3 REV B3 | Intel® Core i7 2600K, 3.4GHz, 8MB | Corsair 16GB (4x4096MB) CL9 1600Mhz VENGEANCE LP | MSI GeForce GTX 670 | Phanteks PH-TC14PE CPU Cooler (vit) | Corsair Power Supply 650W TX M, Modular, ATX, PS/2 | SSD (okänd tillverkare) + 2 äldre SATA2 diskar på 750 Gb, 350 gb. | OS: Microsoft Windows 10 home.

Permalänk
Hedersmedlem

Du behöver ha varje grej inom en egen <option> tagg i htmlen

Man kan tex göra

echo "<select name=\"mobo\">"; $row = mysql_query("SELECT * FROM Mobo"); while($result = mysql_fetch_array($row)){ echo "<option>".$result['Socket']."</option>"; } echo "</select>";

[EDIT] Pucktvåa, men men..
Kan rekomenndera tizag för extremt bra tutorials.

Visa signatur

Dator, MOBO: Asus X99-A, CPU: Intel I7 6800k (3.4GHz), GPU: Geforce PNY 2070 Super, RAM: 4x8GB Corsair Vengeance LPX 2400MHz, OS-HDD: Intel 750 PCIe 400GB, PSU: EVGA SuperNOVA G2 850W

Permalänk

Tack så jättemycket

Visa signatur

Chassi: FD Define R4 / Mobo: Gigabyte MSI Z87-G45 / CPU: Intel Core i7-4770K / RAM: 8GB Corsair Vengeance LP / HDD: 1TB WD Caviar Blue / SSD: 240GB Samsung 850 PRO / GPU: Sapphire R9 280X 3GB / Nätagg: FD Integra R2 650W

Permalänk
Medlem

Lycka till och om det uppstår mer bekymmer så återkom

Visa signatur

Fractal Design Arc Svart | MSI Z68A-GD55 G3 REV B3 | Intel® Core i7 2600K, 3.4GHz, 8MB | Corsair 16GB (4x4096MB) CL9 1600Mhz VENGEANCE LP | MSI GeForce GTX 670 | Phanteks PH-TC14PE CPU Cooler (vit) | Corsair Power Supply 650W TX M, Modular, ATX, PS/2 | SSD (okänd tillverkare) + 2 äldre SATA2 diskar på 750 Gb, 350 gb. | OS: Microsoft Windows 10 home.

Permalänk
Medlem

Och du får nog läsa lite med om hur man skriver korrekt HTML, vi är inte på 90-talet längre

Skickades från m.sweclockers.com

Permalänk
Skrivet av Snacker:

Och du får nog läsa lite med om hur man skriver korrekt HTML, vi är inte på 90-talet längre

Skickades från m.sweclockers.com

Vad menar du? Och någon som vet hur man får hemsidan att stå stilla. Så när den uppdateras inte scollas up?

Visa signatur

Chassi: FD Define R4 / Mobo: Gigabyte MSI Z87-G45 / CPU: Intel Core i7-4770K / RAM: 8GB Corsair Vengeance LP / HDD: 1TB WD Caviar Blue / SSD: 240GB Samsung 850 PRO / GPU: Sapphire R9 280X 3GB / Nätagg: FD Integra R2 650W

Permalänk
Medlem
Skrivet av jonataan.host:

Vad menar du? Och någon som vet hur man får hemsidan att stå stilla. Så när den uppdateras inte scollas up?

Börja med att skriva alla taggar i lower caps, och inkapsla alla values med citattecken. Se till så det validerar med XHTML

Skickades från m.sweclockers.com

Permalänk
Skrivet av jonataan.host:

Vad menar du? Och någon som vet hur man får hemsidan att stå stilla. Så när den uppdateras inte scollas up?

Antar att du använder en <form> och submit. Då kommer värdena i formuläret postas till den sida du angivit så det blir en helt ny sidladdning. Och när sidan laddas är den uppscrollad. Alternativet är att använda ett ajax - dvs. javascript som postar värdena och uppdaterar det du vill visa istället för hela sidan. Eller fullösning med iframes, men det skulle jag inte rekommendera.

Edit: En ytterligare fullösning är ju att skapa en anchor på sidan där du vill att man ska hamna efter att formuläret har postats:

<a name='nedscrollat'></a> <form method='post' action='page.php#nedscrollat'> ... </form>

Permalänk
Medlem
Skrivet av Snacker:

Börja med att skriva alla taggar i lower caps, och inkapsla alla values med citattecken. Se till så det validerar med XHTML

Skickades från m.sweclockers.com

XHTML is so 2008.
Var ser du förresten taggar i uppercase? Jag ser knappt några taggar alls.. :\

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem
Skrivet av Teknocide:

XHTML is so 2008.
Var ser du förresten taggar i uppercase? Jag ser knappt några taggar alls.. :\

Här:

Citat:

<?php                     mysql_select_db("orienteraren_se", $con);                                          $MoboKrav = $_POST['MoboKrav'];                                          $row = mysql_query("SELECT * FROM Mobo");                     while($result = mysql_fetch_array($row))                       {                       $options.= $result['Socket'];                       }                 ?>                  <SELECT NAME=thing>         <OPTION VALUE=0> <?=$options?> </SELECT> 

Skickades från m.sweclockers.com

Permalänk
Medlem
Skrivet av Snacker:

Här:

Skickades från m.sweclockers.com

Jaså du menade där! Det var inte så jättevackert kanske.

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Sötast
Skrivet av Snacker:

Och du får nog läsa lite med om hur man skriver korrekt HTML, vi är inte på 90-talet längre

Skickades från m.sweclockers.com

Du kan ju börja hjälpa honom isåfall med t.ex länkar till instruktioner och exempel.

En lärare som säger "bli bättre" helt utan konstruktiv kritik är hyfsat värdelös

Permalänk
Medlem

Ett tips är att använda mysql_real_escape_string() för att undvika sql-injections

$MoboKrav = mysql_real_escape_string($_POST['MoboKrav']);

Visa signatur

MSI Z270I :: Intel Core i5 7600K :: Corsair Vengeance LP 16GB :: Samsung 960 EVO (m.2) :: MSI GeForce 1070 OC
Inet fraktfritt

Permalänk

while($menu = mysql_fetch_array($dropdown)){ $id=$menu["Socket"]; $options.= "<option name='SocketKrav' onClick='this.form.submit()' value='".$id."'>".$id."</option>";}?> <FORM method="post" action="test.php"> <SELECT> <OPTION VALUE=0>-Välj processor- <?=$options?> </SELECT> </FORM>

Ännu ett problem med min kod. DEn är drop down listan funkar inte så värst bra. Listan funkar men det blir inget i $_POST Vad är felet?

Visa signatur

Chassi: FD Define R4 / Mobo: Gigabyte MSI Z87-G45 / CPU: Intel Core i7-4770K / RAM: 8GB Corsair Vengeance LP / HDD: 1TB WD Caviar Blue / SSD: 240GB Samsung 850 PRO / GPU: Sapphire R9 280X 3GB / Nätagg: FD Integra R2 650W

Permalänk
Skrivet av jonataan.host:

while($menu = mysql_fetch_array($dropdown)){ $id=$menu["Socket"]; $options.= "<option name='SocketKrav' onClick='this.form.submit()' value='".$id."'>".$id."</option>";}?> <FORM method="post" action="test.php"> <SELECT> <OPTION VALUE=0>-Välj processor- <?=$options?> </SELECT> </FORM>

Ännu ett problem med min kod. DEn är drop down listan funkar inte så värst bra. Listan funkar men det blir inget i $_POST Vad är felet?

Du har inget name på din select. För övrigt så ser din kod hemsk ut, du har använt uppercase i html-taggar, blandat html, javascript och php hejvilt, saknar citationstecken runt nollan på option value, samt använder onclick. Tips är att kika på jQuery

Permalänk
Skrivet av Full Strike:

Du har inget name på din select. För övrigt så ser din kod hemsk ut, du har använt uppercase i html-taggar, blandat html, javascript och php hejvilt, saknar citationstecken runt nollan på option value, samt använder onclick. Tips är att kika på jQuery

Tack så hemskt mycket! har antagligen stirrat mig blind helt

Visa signatur

Chassi: FD Define R4 / Mobo: Gigabyte MSI Z87-G45 / CPU: Intel Core i7-4770K / RAM: 8GB Corsair Vengeance LP / HDD: 1TB WD Caviar Blue / SSD: 240GB Samsung 850 PRO / GPU: Sapphire R9 280X 3GB / Nätagg: FD Integra R2 650W

Permalänk

Nytt problem. Jag ska jämföra 2 tal. Om det är mindre än eller lika med det i databasen. Och det är det men det kommer fram och jag väljer större än eller lika med. Vad kan då felet vara?

mysql_query("SELECT * FROM Ram WHERE RamTyp = '$RamTyp' AND RamForm = '$RamForm' AND RamHastighet < '$RamHastighet'");

Visa signatur

Chassi: FD Define R4 / Mobo: Gigabyte MSI Z87-G45 / CPU: Intel Core i7-4770K / RAM: 8GB Corsair Vengeance LP / HDD: 1TB WD Caviar Blue / SSD: 240GB Samsung 850 PRO / GPU: Sapphire R9 280X 3GB / Nätagg: FD Integra R2 650W

Permalänk
Medlem
Skrivet av jonataan.host:

Nytt problem. Jag ska jämföra 2 tal. Om det är mindre än eller lika med det i databasen. Och det är det men det kommer fram och jag väljer större än eller lika med. Vad kan då felet vara?

mysql_query("SELECT * FROM Ram WHERE RamTyp = '$RamTyp' AND RamForm = '$RamForm' AND RamHastighet < '$RamHastighet'");

Svårt att förstå vad du menar exakt, men "mindre än eller lika med" får du utav operatorn "<=" och inte bara "<".

Skickades från m.sweclockers.com

Permalänk
Skrivet av simowewe:

Svårt att förstå vad du menar exakt, men "mindre än eller lika med" får du utav operatorn "<=" och inte bara "<".

Skickades från m.sweclockers.com

har testat den också men det funkar inte.

Visa signatur

Chassi: FD Define R4 / Mobo: Gigabyte MSI Z87-G45 / CPU: Intel Core i7-4770K / RAM: 8GB Corsair Vengeance LP / HDD: 1TB WD Caviar Blue / SSD: 240GB Samsung 850 PRO / GPU: Sapphire R9 280X 3GB / Nätagg: FD Integra R2 650W

Permalänk
Medlem
Skrivet av jonataan.host:

har testat den också men det funkar inte.

Finns många sätt att l ösa din query på, ta en titt på OR, BETWEEN kanske?

Visa signatur

Corsair 16GB (4x4096MB) CL9 1600Mhz | Asus P8Z77-V PRO |
Samsung SSD Basic 830-Series 256GB | Intel Core i7 3770K 3,5Ghz |
Asus Xonar Essence STX | Noctua NH-U9B SE2 | Antec Performance One P280 | Corsair HX 850W 80+ Gold Modulär | MSI GTX 770