Kom ihåg mig?
Home Menu

Menu


Skumt fel i PHP med PDO

Ämnesverktyg Visningsalternativ
Oläst 2010-11-24, 22:56 #1
overlake overlake är inte uppkopplad
Medlem
 
Reg.datum: Jul 2009
Inlägg: 116
overlake overlake är inte uppkopplad
Medlem
 
Reg.datum: Jul 2009
Inlägg: 116
Standard Skumt fel i PHP med PDO

Har ett skumt fel när jag ska skapa en dropdown-lista i ett formulär med fotbollslag.

Koden ser ut som följer:

<form name="placementStudents" method="post"><br />
<select name = 'studentrow'>
<?php
include("inc/db.php");
$getTeams= $dbh ->query("SELECT DISTINCT Home_Team FROM tbl_matches WHERE League = 'E0'");
$rowarray2 = $getTeams->fetchAll();
$teamrow = 0;
foreach($rowarray2 as $row)
{
echo "<option value = $row[Home_Team]>$row[Home_Team]</option>";
$teamrow++;
}
?>
</select>
<input type="submit" value="Select Student">
</form>
?>

Den skapar en dropdown med alla lagnamn korrekt MEN, kikar man i koden så ser man följande:

<select name="studentrow">

<option value="Arsenal">Arsenal</option>
<option villa="" value="Aston">Aston Villa</option>
<option value="Chelsea">Chelsea</option>
<option value="Liverpool">Liverpool</option>
<option city="" value="Man">Man City</option><option
</select>

Som ni ser så byter denut "value" mot det andra ordet om ett av lagnamnen består av två ord.
Aston Villa blir då:
<option villa="" value="Aston">Aston Villa</option>

Någon som ser något direkt fel i min kod?
overlake är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-11-24, 23:06 #2
overlake overlake är inte uppkopplad
Medlem
 
Reg.datum: Jul 2009
Inlägg: 116
overlake overlake är inte uppkopplad
Medlem
 
Reg.datum: Jul 2009
Inlägg: 116
Hittade felet:
<option value = $row[Home_Team]>$row[Home_Team]</option>
Ska vara:
<option value = '$row[Home_Team]'>$row[Home_Team]</option>
overlake är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-11-24, 23:12 #3
dotvoid dotvoid är inte uppkopplad
Medlem
 
Reg.datum: Apr 2006
Inlägg: 199
dotvoid dotvoid är inte uppkopplad
Medlem
 
Reg.datum: Apr 2006
Inlägg: 199
Ja. Det är konstigt att det fungerar alls om jag ska vara ärlig. Attribut till html-element ska alltid omges med dubbla citattecken. Dessutom ska man alltid ange enkla citattecken runt text-nycklar för associativa arrayer i PHP. Annars tror PHP först att det är en konstant och gör en del onödigt processande. Dessutom så bör du omge mer avancerade variabeluttryck i PHP-strängar med måsvingar för att undvika att PHP tolkar det fel.

Så din kod
Citat:
Ursprungligen postat av overlake Visa inlägg
PHP-kod:
foreach($rowarray2 as $row)
{
echo 
"<option value = $row[Home_Team]>$row[Home_Team]</option>";
$teamrow++;

borde vara
PHP-kod:
foreach ($rowarray2 as $row) {
  echo 
"<option value=\"{$row['Home_Team']}\">{$row['Home_Team']}</option>";
  
$teamrow++;

dotvoid är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-11-24, 23:25 #4
overlake overlake är inte uppkopplad
Medlem
 
Reg.datum: Jul 2009
Inlägg: 116
overlake overlake är inte uppkopplad
Medlem
 
Reg.datum: Jul 2009
Inlägg: 116
Tackar för tipsen.
Lade in dina ändringar.
overlake är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 23:06.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017