Just nu i M3-nätverket
Gå till innehåll

Visa en lagutagning


Poj

Rekommendera Poster

Jag gör en sida till en bowlingklubb. Det finns en databas över medlemarna med en kolumn för spelnr där lagutagaren numrerar A-laget's spelare med 1 tillochmed 9 och B-laget 11-19.

 

Jag har en tabell på sidan med 9 rader och 2 kolumner där jag har text i första kolumnen (banpar1, banpar2 osv).

 

Nu vill jag visa spelnr 1 på första raden med namn och spelnr 2 på andra raden med namn osv.

 

Hur gör jag?

 

Databasen innehåller följande: id, namn, telefon, adress, spelnr.

 

 

Poj.

 

Länk till kommentar
Dela på andra webbplatser

Jag har lyckats välja alla med spelnr:

$query_Recordset1 = "SELECT namn, spelnr, bil, ansvarig FROM members WHERE spelnr >= '1' ORDER BY spelnr ASC";

men jag vet inte hur jag ska visa informationen i tabellen.

 

t.ex spelnr=1 <?php echo $row_Recordset1['namn']; ?>

spelnr=2 <?php echo $row_Recordset1['namn']; ?>

 

Poj.

 

Länk till kommentar
Dela på andra webbplatser

Gör en loop på värdet ifrån databasen.

 

räknare = 1
<table>
While...
{
echo "<tr><td>banpar".+räknare."<td>". echo namn."</td><tr>"
räknare = räknare+1
}
</table>

 

Ej vidgjort med fnuttar osv... utan det var enabrt så du kan få en idé om hur du kan göra. Prova själv att dela på html-koden och php-koden.

Kolla även på länken jag gav dig.

 

Vad är det för datatyp på spelnr?

Finns det spelar som har nummer under 1?

 

[inlägget ändrat 2007-09-27 21:24:58 av Micke_skane]

Länk till kommentar
Dela på andra webbplatser

Datatypen är VARCHAR kanske skulle vara INT istället.

Databasen innehåller ca 25 poster av dom kommer ca 18 att få nummer (a-laget 1-9, b-laget 11-19) resten kommer inte att ha någon information i den kolumnen.

 

Ditt förslag fungerar inte för mig då jag har en statisk tabell med 9 rader och statisk text i första kolumnen.

 

 

Poj.

 

Länk till kommentar
Dela på andra webbplatser

Kan du inte skapa tabellen dynamiskt?

 

Är det bara A-laget eller B-laget du vill hämta ut eftersom du bara har 9 rader?

Använd i så fall BETWEEN i din SELECT-fråga.

T ex a-laget:

SELECT ... BETWEEN 1 AND 10

Olika databaser hanterar sista positionen olika, vissa tar med den medan andra stannar precis innan. Testa och se.

 

Var kommer bil och ansvarig in i bilden?

Finns dem också i samma tabell som spelarnr osv...?

 

Eftersom det bara är tal som kommer att finnas där ska det vara int som datatyp för kolumnen.

Och för dem som inte har något nummer sätter du 0.

 

[inlägget ändrat 2007-09-28 09:52:10 av Micke_skane]

Länk till kommentar
Dela på andra webbplatser

Jag vill hämta både a och b laget men dom redovisas i varsin tabell med 9 rader.

Bil är kolumn för vilka som kör när det är bortamatch, ansvarig är den som ska skriva pappren.

Båda dom kolumnerna tänker jag använda kryssrutor men jag vet inte vilket dataformat som är bäst i databasen.

 

I databasen finns också en kolumn för licensnummer, när denna sidan fungerar som jag tänkt så ska jag skapa en sida till där den som är ansvarig för laget ska kunna logga in och skriva ut laguppstälningen med namn och licensnummer.

 

 

Poj.

 

Länk till kommentar
Dela på andra webbplatser

Detta borde du kunna göra dynamiskt och då kan du lägga in en avslutande table-tagg och en starttagg för en ny table efter du skrivit ut A-laget. Sen kommer B-laget skrivas ut, följ av en avslutande table-tagg.

 

Eller så lägg in värden i en Array och skriv ut därifrån(se ovan).

Då kan du ju själv bestämma om tabeller ska komma under varandra eller inte.

 

Länk till kommentar
Dela på andra webbplatser

Jag förstår inte riktigt vad jag skall göra. Så här ser min kod ut nu.

mysql_select_db($database_test, $test);
$query_Recordset1 = "SELECT namn, spelnr, bil, ansvarig FROM members WHERE spelnr >= '1' ORDER BY spelnr ASC";
$Recordset1 = mysql_query($query_Recordset1, $test) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);

Den plockar ut alla spelare från 1 och uppåt.

 

 

Poj.

 

Länk till kommentar
Dela på andra webbplatser

Orkar inte skriva koden så här på fredagsslutet men jag menar:

 

# Sätt två variabler(räknare) = 1

# echo "tabellstart"

# Börja loopa ut värden(<tr><td>värden...</tr>).

# Öka räknarna med 1 (variabel++)

# Kolla om räknare1 är = 9(är den det så skriv ut sluttagg för tabellen1 samt en ny start-tagg för tabell2 + sätt räknare2 till 1

# Loopen fortsätter till slut

# Efter slutet lägger du in en sluttagg för tabell2

 

Texten i första td:n kan du öka på med räknare2 för just detta.

Den sätts till 1 igen när räknare1 är 9.

 

Sen ska datatypen vara INTERGER(sätt 0 på dem som inte har spelarnummer) och då ska det vara:

WHERE spelnr > 0

 

[inlägget ändrat 2007-09-28 16:41:49 av Micke_skane]

Länk till kommentar
Dela på andra webbplatser

Skulle man inte kunna lägga en if sats för att skriva ut en rad i en statisk tabel. Jag vill inte ändra designen om det går,se bild.

 

Något så här för att skriva ut namn på spelare nr 2:

<?php if $row_Recordset1['spelnr'] =2 echo $row_Recordset1['namn']; ?>

koden fungerar inte, kanske någon kan hjälpa mig.

 

Poj.

 

[bild bifogad 2007-09-28 17:12:18 av Poj]

984636_thumb.jpg

Länk till kommentar
Dela på andra webbplatser

Så förstod inte jag att det skulle se ut :)

 

Då kan du även sätta en räknare som kollar när det blir "andra" körningen i loopen, när det sker så skriv ut första td med rowspan="2".

Nollställ räknaren igen och dem andra td skrivs ut och räknaren(na) ökar med ett. Nästa gång räknaren blir 2 igen så kommer en ny td med rowspan.

Du ska så klart ha kvar dem andra räknarna som jag berättade om innan.

Dem kontrollerna behöver du fortfarande.

 

Länk till kommentar
Dela på andra webbplatser

Vore väldigt tacksam om du ville hjälpa mej med koden.

Jag kan inte så mycket om php och mysql, jag har ideérna men inte kunskapen.

 

 

Poj.

 

Länk till kommentar
Dela på andra webbplatser

Jag kan inte så mycket om php

Du kan kolla lite här så får du mycket bra grundinfo om php!

http://www.w3schools.com/php/default.asp

http://www.w3schools.com/php/php_variables.asp

http://www.w3schools.com/php/php_operators.asp

http://www.w3schools.com/php/php_if_else.asp

http://www.w3schools.com/php/php_mysql_select.asp

 

Try and Error == bästa sättet att lära sig på ;)

 

Länk till kommentar
Dela på andra webbplatser

Jag har hålt på i nästan en månad med att få det att fungera, skriptet för att uppdatera alla poster fick jag igång förra veckan. Nu är det bara detta som återstår.

 

Det finns en enkel lösning.

$query_Recordset1 = "SELECT namn, spelnr, bil, ansvarig FROM members WHERE spelnr = 1 ";
$query_Recordset2 = "SELECT namn, spelnr, bil, ansvarig FROM members WHERE spelnr = 2 ";
$query_Recordset3 = "SELECT namn, spelnr, bil, ansvarig FROM members WHERE spelnr = 3 ";

osv.

 

Det är inte snyggt men det är en lösning på problemet.

 

Poj.

 

Länk till kommentar
Dela på andra webbplatser

Får se om jag orkar skriva fler koder just nu, sitter själv med .NET-tjosan och försöker lära mig det.

Annars hoppas jag någon annan orkar skriva något åt dig så länge!

 

Det verkar bättre i så fall att lägga in värdena i en array och sen skriva ut varje position i den på rätt plats.

 

Lycka till!

 

Länk till kommentar
Dela på andra webbplatser

Nu har jag nästan fått till det.

<?php $i=1;
?>
<p>&nbsp; </p>
<table class="table">
   <tr class="alternate">
   <th colspan="2" align="center" class="fet-text" scope="col">Spelare</th>
   <th width="47" align="center" scope="col">Bil</th>
   <th width="90" align="center" scope="col">Ansvarig</th>
 </tr>
       <?php do { ?>
         <tr>
           <td><?php echo "Banpar $i"; $i++;?></td>
           <td><?php echo $row_Recordset2['namn']; ?></td>
           <td><?php echo $row_Recordset2['bil']; ?></td>
           <td><?php echo $row_Recordset2['ansvarig']; ?></td>
         </tr>
         <?php } while ($row_Recordset2 = mysql_fetch_assoc($Recordset2)); ?>
</table>

$i skriver ut siffran 1 -4 på banpar.

 

Det som är kvar är:

1/ Jag vill slå ihop 2 rader i första kolumnen med följande kod

<td width="87" rowspan="2" align="center" class="fet-text">Banpar $i</td>

 

2/ Tills jag fått fram banpar 4 efter det skall texten ändras till Reserv.

 

3/Banpar 2 och 4 skall följande class användas <tr class="alternate">

 

Jag får bara internt server fel 500 vad jag än gör.

Jag behöver hjälp att få till det.

 

 

 

Poj.

 

Länk till kommentar
Dela på andra webbplatser

Hade jag bara orkat hade jag skrivet det åt dig.

Hoppas någon annan känner sig manad.

 

Du kan iof stänga av egna felmeddelanden i din webbläsare så får du bättre felmeddelande om var felet mest troligen är i koden.

Verktyg -> Internetalternativ -> Avancerat - > Bocka av "Visa egna http-felmeddelanden" -> Klicka på Ok

 

En tanke är att lägga in tabellens olika byggstenar i varsin constant och sen i loopen skriva ut rätt constant baserat på räknarnas värden.

 

[inlägget ändrat 2007-09-30 13:21:28 av Micke_skane]

Länk till kommentar
Dela på andra webbplatser

Jag har löst det .:):thumbsup:

 

Men upptäckte ett nytt, när jag hämtar hem 'spelnr' 1-10 och plockar ut dom i tabellen så hamnar spelnr 10 före spelnr 2, 10 är en reserv och 2'an ska spela från start.

 

Vad är felet?

Poj.

 

Länk till kommentar
Dela på andra webbplatser

Är kolumnen med spelarnr av datatypen INT?

Sorterar du på den kolumnen i Select-frågan i stigande ordning?

 

Länk till kommentar
Dela på andra webbplatser

Jag sorterar efter spelnr.

Jag har testat i ett par dagar nu, och kommit fram till följande, om datatypen är VARCHAR så fungerar uppdateringen men jag får fel ordning när jag sorterar (10 kommer före 2) om datatypen är TINYINT så får jag felmeddelande så fort jag kommer till en tom kolumn spelnr (när jag inte fyllt i någon siffra i kolumnen)

 

Jag vet inte vad jag gör fel i inställningen av databasen?

 

Har ett liknande problem med telefonnr kolumnen i databasen, skriver jag in 0450-652236 så ser jag 450 när jag tittar på resultatet. Jag kör VARCHAR.

 

 

Poj.

 

Länk till kommentar
Dela på andra webbplatser

Eftersom du bara ska ha numeriska värden i spelnt-kolumnen så är det taltyp du ska ha som datatyp.

I dem posterna som inte är någon som är med i A- resp B-laget ska ha värdet 0!

 

Sen får vi ta det där ifrån för att lösa dem andra problemen.

 

så får jag felmeddelande så fort jag kommer till en tom kolumn spelnr
Vad säger felmeddelandet? Och vad är det du försöker göra då det kommer?

 

Förklara hur din datasbastabell ser ut och vilka värden där är satt på dem olika kolumnerna.

 

Länk till kommentar
Dela på andra webbplatser

Jag bifogar en bild på databasen.

Felet när man använder tal typ i spelnr kolumnen är nog att man måste ha en siffra i alla rader när man uppdaterar.

 

Jag får inte telefon och mobil kolumnerna att fungera heller. Inledande 0'or och allt från bindestrecket försvinner.

 

 

Poj.

 

[bild bifogad 2007-10-06 17:53:34 av Poj]

986969_thumb.jpg

Länk till kommentar
Dela på andra webbplatser

Jag hittade felet med telefonnr, jag ändrade datatypen i databasen till varchar men den hjälpe inte, skriptet skickade som heltal när jag ändrade till text fungerade det.

 

Går det verkligen att lära sig detta? ;)

 

Har 2 kolumner i databasen namn =förnamn, enamn =efternamn

<td><?php echo $row_Recordset1['namn'], $row_Recordset1['enamn'];$banpar++; ?></td>

det blir så här namnefternamn jag vill ha ett mellanrum mellan namn och efternamn men jag får inte till det.

 

Några förslag någon?

Poj.

 

Länk till kommentar
Dela på andra webbplatser

<?php echo $row_Recordset1['namn'] ." ". $row_Recordset1['enamn'];$banpar++; ?>

 

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...