13. juli 2004 - 17:06
Der er
40 kommentarer og 1 løsning
ang. foreach eller while med php og mysql.
har brug for noget til at hive felter ud af mysql med php. altså som phpmyadmin gør. Hvis der er 18 felter, så laver den 18 felter med data'erne i. Nogle der ved hvordan jeg gør det?
Annonceindlæg tema
Cloud & AI
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.
Det her skulle vist kunne: <? $q = mysql_query("SELECT * FROM tabel") or die(mysql_error()); while($row = mysql_fetch_array($q)) { echo $row['felt']; } ?>
ja det plejer jeg at bruge, men der skal man vide hvad felterne hedder. skal bruge noget der selv kører alle felterne igennem, og tjekker typen på felterne, og så skriver dem ud, med data i.
Den her, som jeg lige lavede til et andet spørgsmål, finder ud af hvor mange felter der er og smider dem i tekstfelter: $q = mysql_query("SELECT * FROM tabel WHERE id = '1'"); $antal = mysql_num_fields($q); echo"<form action='update.php' method='post'>"; while($row = mysql_fetch_array($q)){ for($i = 0; $i < $antal; $i++) { echo"<input type='text' name='felt".$i."' value='".$row{$i}."'>"; } } dog finder den ikke typen af feltet... Men det gør: $query = ("DESC tabelnavn");
hmm det må kunne kombineres... bare noget skidt at skulle lave et kald til mysql hver gang den skal tjekke et felt. :( men finder ud af noget, og tester det lige, så vender jeg tilbage.
Yes sir ! :) Jeg kigger også lige en smule videre... Men du vil have det til at ligne phpmyadmin faktisk? Så feltnavnet øverst og værdierne nedenunder?
okey, den var ikke smuk... Ser næsten ud som om du får afsluttet php-tagget på en måde... Kan du ikke lige paste det? Og så bliver det her et svar når jeg nu glemte at skifte til svar i den forrige :)
13. juli 2004 - 17:21
#10
lad os sige du har en gæstebog, og du skal kunne redigere i den. $name: <input $type value="$dataer"> det er til et admin interface. hvor man skal kunne oprette poster, og redigere i de poster der allerede er.
13. juli 2004 - 17:21
#11
mig der dummede mig, er vant til <? og ?> skal bruge <?php og ?> *G*
13. juli 2004 - 17:22
#12
Er du med på hvor jeg vil hen?
13. juli 2004 - 17:23
#13
Ja, det tror jeg nok... Men så er det du har fået vist også det du leder efter, bortset fra, at den ikke lige skriver feltets navn...
13. juli 2004 - 17:23
#14
Det er sådan set dovenskab... for at slippe for at skulle lave alt html'en manuelt. at den så tjekker for data'er og felt type, og så genererer en form ud fra det.
13. juli 2004 - 17:24
#15
okey kigger på det.
13. juli 2004 - 17:26
#16
Yeps, den smider 18 felter ud, med data'er i. så skal jeg bare finde typen, og kombinere det, noget du vil hjælpe med?
13. juli 2004 - 17:27
#17
Jeg prøver, men hvorfor vil du absolut vide typen? Et <input> felt kan jo ikke skelne alligevel...
13. juli 2004 - 17:28
#18
nej, men skal vide om det er input eller text felt.
13. juli 2004 - 17:29
#19
$s = mysql_query("DESC $mysql_db_table"); while($row_desc = mysql_fetch_array($s)) { for($i = 0; $i < $antal; $i++) { echo $row{$i} . "<br>\n"; } } virker ikke.
13. juli 2004 - 17:29
#20
nej, det vil ikke virke... giv mig lige et par minutter, bliver lige nødt til at slå et par funktioner sammen og afprøve det...
13. juli 2004 - 17:31
#21
ahhh tror jeg har løst det. ;)
13. juli 2004 - 17:31
#22
samme her. *G*
13. juli 2004 - 17:35
#23
Så er den løst. ;)
13. juli 2004 - 17:35
#24
$q = mysql_query("SELECT * FROM $mysql_db_table WHERE id = '1'"); $antal = mysql_num_fields($q); echo"<form action='update.php' method='post'>"; while($row = mysql_fetch_array($q) && $s = mysql_query("DESC $mysql_db_table")){ for($i = 0; $i < $antal; $i++) { echo"<b>" . mysql_field_name($q, $i) . ":</b> <input type='" . mysql_field_type($q, $i) . "' name='" . mysql_field_name($q, $i) . "' value='".$row{$i}."'><br>\n"; } }
13. juli 2004 - 17:36
#25
Så skal den bare rettes til, så den skifter blob og text ud med tekst felter. ;)
13. juli 2004 - 17:37
#26
Ja, det ser jo fint ud... Også noget i den stil jeg var ved at være ude i :)
13. juli 2004 - 17:39
#27
...men forstår ikke lige hvad du mener bytte felterne ud med tekst-felter... De er jo tekst-felter nu?
13. juli 2004 - 17:40
#28
ja. og dem der så står som blob i databasen skal jo laves om til <textarea> felter. ;)
13. juli 2004 - 17:43
#29
ahh, det er det du vil... det kan du vel bare: if(mysql_field_type($q, $i) == "blob") { echo "<textarea>". $row{$i} ."</textarea>"; } else { echo "<input type="text" blahblah>"; } ?
13. juli 2004 - 17:47
#31
sådan hehe.
13. juli 2004 - 17:47
#32
Godt så kan jeg selv rette den til. Nu til næste problem hvis du er frisk?? kan godt afsætte flere point, hvis det er?
13. juli 2004 - 17:47
#33
Den skriver da fint? :)
13. juli 2004 - 17:49
#34
ja nu. mig der havde lavet en fejl. :P havde smidt en : && $s = mysql_query("DESC $mysql_db_table") i min while løkke, den er fjernet. *G*
13. juli 2004 - 17:50
#35
jeg skal også bruge et script, der kan tage imod den formular, og smide dem ind i databasen. og enten indsætte dem som nye, eller erstatte dem.
13. juli 2004 - 17:53
#36
Det nemmeste er at lave en UPDATE mysql_query("UPDATE `tabel` SET `felt` = '$variabel' WHERE `id` = '$id' LIMIT 1");
13. juli 2004 - 17:53
#37
hmmm jeg må kunne køre alle request felterne igennem, og hive dataerne ud der, og smide dem ind.. men hvordan fanden, får jeg lavet det, så den ikke laver et database kald for hvert request felt den laver.??
13. juli 2004 - 17:54
#38
ja men at skulle lave 18 updates, pr. post der skal rettes.
13. juli 2004 - 17:57
#39
Det kan du også: mysql_query("UPDATE `tabel` SET `felt1` = '$variabel1', `felt2` = '$variabel2' WHERE `id` = '$id'");
13. juli 2004 - 17:58
#40
...og tak for point :)
13. juli 2004 - 18:03
#41
hmmm kan jeg ikke lave en $sql = "UPDATE 'tabel' SET "; for($i = 0; $i<18; $i++) { $sql .= "felt = 'request['$i']"; } ??
Vi tilbyder markedets bedste kurser inden for webudvikling