webForumDet fria alternativet

For-loop insert

11 svar · 241 visningar · startad av Melea

MeleaMedlem sedan juli 20033 147 inlägg
#1

Hejsan!

Har problem med en insert sats där jag vill sätta in X antal poster i databasen.

Såhär ser koden ut just nu:

<? if ($_GET['action'] == 1) { ?>

<form action="?show=match_add&action=2" method="post">
1on1: <input type="text" name="oneonone" class="input"><br>
<input type="submit" value="Next Step" class="submit">
</form>

<? } elseif ($_GET['action'] == 2) { ?>

<form action="admin/match_add.php" method="post">
<?
  $iCount1 = 0;

  for ($i=1; $i<=$_POST['oneonone']; $i++){
    $iCount1++; ?>
<input type="text" name="oneonone_own<?=$i?>" class="input"> 
<input type="text" name="oneonone_enemy<?=$i?>" class="input"> 
<input type="text" name="oneonone_result<?=$i?>" size="3" class="input"><br>
<?
  }
?>
<input type="hidden" name="oneonone_count" value="<?=iCount1?>">

<input type="submit" value="Insert" class="submit">
</form>

Detta funkar utmärkt, får ut antal poster som jag skriver in i action=1. Men när jag väl ska sätta in det i databasen strular det, insertkoden ser ut såhär:

for ($i = 1; $i<= $_POST['oneonone_count']; $i++) {
  $SQL = "INSERT INTO teamswe_matches (oneonone_own, oneonone_enemy, oneonone_result) VALUES ('".$_POST['oneonone_own'.$i]."', '".$_POST['oneonone_enemy'.$i]."', '".$_POST['oneonone_result'.$i]."')"; 
  mysql_query($SQL);
}

Någon som ser på rakt arm vad felet är? Koden ger alltså inget felmeddelande. Den kör sitt race men ingenting sätts in i databasen...

Tack på förhand!

Mvh

PeeerMedlem sedan mars 20025 907 inlägg
#2

Prova att skriva ut frågan istället för att köra den. Så ser du om det är något fel i den iaf.

MeleaMedlem sedan juli 20033 147 inlägg
#3

echo $sql; ?

MeleaMedlem sedan juli 20033 147 inlägg
#4

Man skriver ju
Response.Write SQL
Response.End
i ASP, hur gör man i PHP? :)

PeeerMedlem sedan mars 20025 907 inlägg
#5

echo $SQL;
die();

MeleaMedlem sedan juli 20033 147 inlägg
#6

Det händer inget när jag lägger in echo$SQL; die();

for ($i = 1; $i<= $_POST['oneonone_count']; $i++) {
  $SQL = "INSERT INTO teamswe_matches (oneonone_own, oneonone_enemy, oneonone_result) VALUES ('".$_POST['oneonone_own'.$i]."', '".$_POST['oneonone_enemy'.$i]."', '".$_POST['oneonone_result'.$i]."')"; 
  echo $SQL;
  die();
  mysql_query($SQL);
}

Mvh

MatteMedlem sedan aug. 20002 975 inlägg
#7

Testa med att ändra till

<input type="hidden" name="oneonone_count" value="<?=$iCount1 ?>">
MeleaMedlem sedan juli 20033 147 inlägg
#8

Yesh! Klantigt av mig, tack så mkt, funkar utmärkt nu! ;)

MatteMedlem sedan aug. 20002 975 inlägg
#9

Är det en lokal testserver du kör på, ändra i php.ini så du får med alla felmeddelande och varningar:

error_reporting = E_ALL

display_errors = On

Starta om webbservern efter ändring i php.ini

Annars kan du lägga följande överst i skript du vill felsöka

error_reporting(E_ALL);
ini_set("display_errors", "1");

Då hade du fått reda på var det spökade för dig.

MeleaMedlem sedan juli 20033 147 inlägg
#10

Ingen lokal, server hostar cs.nu nordichardware osv, så det är nog inga inställningar som strular...

Tack ändå

Mvh

MatteMedlem sedan aug. 20002 975 inlägg
#11

Jag menade inte att du hade felaktiga inställningar, utan vad jag menade var att när man håller på att utveckla så är det bra om man får alla felmeddelande och notiser utskrivna. Då hade du direkt fått besked om var någonstans du hade ditt fel.

Du kan göra detta genom att i skriptets början lägga följande:

error_reporting(E_ALL);
ini_set("display_errors", "1");

När allt fungerar som det ska kan du ta bort dessa rader.

MeleaMedlem sedan juli 20033 147 inlägg
#12

Aha, wow :) Det hjälpte mig något enormt, tack tack!!

136 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)